Hive ETL: Načítání JSON, XML, příklady textových dat
Hive jako nástroj ETL a datového skladu navíc Hadoop ekosystém poskytuje funkce jako datové modelování, manipulace s daty, zpracování dat a dotazování na data. Extrakce dat v Hive znamená vytváření tabulek v Hive a načítání strukturovaných a polostrukturovaných dat a také dotazování na data na základě požadavků.
Pro dávkové zpracování budeme psát vlastní definované skripty pomocí vlastní mapy a redukovat skripty pomocí skriptovacího jazyka. Poskytuje SQL jako prostředí a podpora snadného dotazování.
Práce se strukturovanými daty pomocí Hive
Strukturovaná data znamenají, že data jsou ve správném formátu řádků a sloupců. Tohle je spíš jako RDBMS data se správnými řádky a sloupci.
Zde načteme strukturovaná data přítomná v textových souborech v Hive
Krok 1) V tomto kroku vytváříme tabulku „employees_guru“ s názvy sloupců jako ID, Jméno, Věk, Adresa, Plat a Oddělení zaměstnanců s datovými typy.
Z výše uvedeného snímku obrazovky můžeme pozorovat následující,
- Vytvoření tabulky „employees_guru“
- Načítání dat z Employees.txt do tabulky “employees_guru”
Krok 2) V tomto kroku zobrazujeme obsah uložený v této tabulce pomocí příkazu „Vybrat“. Obsah tabulky můžeme pozorovat na následujícím snímku obrazovky.
– Ukázkový úryvek kódu
Dotazy, které mají být provedeny
1) Create table employees_guru(Id INT, Name STRING, Age INT, Address STRING, Salary FLOAT, Department STRING) > Row format delimited > Fields terminated by ','; 2) load data local inpath '/home/hduser/Employees.txt' into TABLE employees_guru; 3) select * from employees_guru;
Práce s polostrukturovanými daty pomocí Hive (XML, JSON)
Hive provádí funkce ETL v ekosystému Hadoop tím, že jedná jako ETL nástroj. U některých typů aplikací může být obtížné provést redukci map, Hive může snížit složitost a poskytuje nejlepší řešení pro IT aplikace z hlediska sektoru datových skladů.
Polostrukturovaná data, jako jsou XML a JSON, lze zpracovávat s menší složitostí pomocí Hive. Nejprve uvidíme, jak můžeme Hive využít XML.
XML TO HIVE TABULKA
V tomto načteme data XML do tabulek Hive a načteme hodnoty uložené uvnitř značek XML.
Krok 1) Vytvoření tabulky „xmlsample_guru“ se sloupcem str s datovým typem string.
Z výše uvedeného snímku obrazovky můžeme pozorovat následující
- Vytvoření tabulky „xmlsample_guru“
- Načítání dat z test.xml do tabulky „xmlsample_guru“
Krok 2) Použití XPath () budeme schopni načíst data uložená uvnitř značek XML.
Z výše uvedeného snímku obrazovky můžeme pozorovat následující
- Pomocí metody XPATH() načítáme hodnoty uložené v /emp/esal/ a /emp/ename/
- Hodnoty představují uvnitř značek XML. V tomto kroku zobrazujeme skutečné hodnoty uložené pod XML tagy v tabulce „xmlsample_guru“
Krok 3) V tomto kroku načteme a zobrazíme nezpracované XML tabulky „xmlsample_guru“.
Z výše uvedeného snímku obrazovky můžeme pozorovat následující
- Skutečné zobrazení XML dat se značkami
- Pokud pozorujeme jeden tag, je to s „emp“ jako nadřazeným tagem s „ename“ a „esal“ jako podřízenými tagy.
Úryvek kódu:
Dotazy, které mají být provedeny
1) create table xmlsample_guru(str string); 2) load data local inpath '/home/hduser/test.xml' overwrite into table xmlsample_guru; 3) select xpath(str,'emp/ename/text()'), xpath(str,'emp/esal/text()') from xmlsample_guru;
JSON (JavaZápis objektu skriptu)
Data Twitteru a webových stránek jsou uložena ve formátu JSON. Kdykoli se pokusíme načíst data z online serverů, vrátí soubory JSON. Pomocí Hive jako úložiště dat můžeme načíst data JSON do tabulek Hive vytvořením schémat.
JSON TO HIVE TABULKA
V tomto načteme data JSON do tabulek Hive a načteme hodnoty uložené ve schématu JSON.
Krok 1) V tomto kroku vytvoříme JSON tabulku s názvem „json_guru“. Po vytvoření se načítá a zobrazuje obsah skutečného schématu.
Z výše uvedeného snímku obrazovky můžeme pozorovat následující
- Vytvoření tabulky „json_guru“
- Načítání dat z test.json do tabulky „json_guru“
- Zobrazení aktuálního schématu souboru JSON uloženého v tabulkách json_guru
Krok 2) Pomocí metody get_json_object() můžeme načíst hodnoty dat uložené v hierarchii JSON
Z výše uvedeného snímku obrazovky můžeme pozorovat následující
- Pomocí get_json_object (str,'$.ecode) může načíst hodnoty ecode z tabulky json_guru. Podobně pomocí get_json_object (str,'$.ename) ,get_json_object (str,'$.Sali) načte hodnoty ename sal z tabulky json_guru
- Hodnoty uložené uvnitř hierarchie JSON v json_guru
Úryvek kódu
Dotazy, které mají být provedeny
1) create table json_guru(str string); 2) load data inpath 'home/hduser/test.json' into table json_guru; 3) select * from json1; 4) select get_json_object(str,'$.ecode') as ecode, get_json_object(str,'$.ename') as ename ,get_json_object(str,'$.sal') as salary from json_guru;
Komplexní JSON TO HIVE TABLE
V tomto načteme komplexní data JSON do tabulek Hive a načteme hodnoty uložené ve schématu JSON
Krok 1) Vytváření complexjson_guru s jedním sloupcovým polem
Z výše uvedeného snímku obrazovky můžeme pozorovat následující
- Vytvoření na tabulce complexjson_guru s jedním sloupcovým polem jako řetězcový datový typ
- Načítání dat do complexjson_guru z komplexního souboru JSON emp.json
Krok 2) Pomocí get_json_object můžeme načíst skutečný obsah uložený v hierarchii souborů JSON.
Z následujícího snímku obrazovky můžeme vidět výstup dat uložených v complexjson_guru.
Krok 3) V tomto kroku pomocí příkazu „Select“ skutečně můžeme vidět složitá data JSON uložená v tabulce „complexjson_guru“
-Ukázkový úryvek kódu,
Dotazy, které mají být provedeny
1) create table complexjson_guru(json string); 2) load data inpath 'home/hduser/emp.json' into table complexjson_guru; 3) select get_json_object(json,'$.ecode') as ecode ,get_json_object(json,'$.b') as code, get_json_object(json,'$.c') from complexjson_guru; 4) select * from complexjson_guru;
Projekty Úl v reálném čase – kdy a kde je použít
Kdy a kde použít úl v ekosystému Hadoop:
Kdy
- Při práci se silnými a výkonnými statistickými funkcemi v ekosystému Hadoop
- Při práci se strukturovaným a polostrukturovaným zpracováním dat
- Jako nástroj datového skladu s Hadoopem
- Lze použít příjem dat v reálném čase pomocí HBASE, Hive
Kde
- Pro snadné použití ETL a nástroje pro datové sklady
- Poskytovat prostředí typu SQL a dotazovat jako SQL pomocí HIVEQL
- Použití a nasazení vlastních specifikovaných mapových a redukčních skriptů pro specifické požadavky klienta