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.

Práce se strukturovanými daty pomocí Hive

Z výše uvedeného snímku obrazovky můžeme pozorovat následující,

  1. Vytvoření tabulky „employees_guru“
  2. 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.

Práce se strukturovanými daty pomocí Hive

– 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.

Práce s polostrukturovanými daty pomocí Hive

Z výše uvedeného snímku obrazovky můžeme pozorovat následující

  1. Vytvoření tabulky „xmlsample_guru“
  2. 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.

Práce s polostrukturovanými daty pomocí Hive

Z výše uvedeného snímku obrazovky můžeme pozorovat následující

  1. Pomocí metody XPATH() načítáme hodnoty uložené v /emp/esal/ a /emp/ename/
  2. 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“.

Práce s polostrukturovanými daty pomocí Hive

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.

Json To Hive Table

Z výše uvedeného snímku obrazovky můžeme pozorovat následující

  1. Vytvoření tabulky „json_guru“
  2. Načítání dat z test.json do tabulky „json_guru“
  3. 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

Json To Hive Table

Z výše uvedeného snímku obrazovky můžeme pozorovat následující

  1. 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
  2. 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

Komplexní tabulka Json To Hive

Z výše uvedeného snímku obrazovky můžeme pozorovat následující

  1. Vytvoření na tabulce complexjson_guru s jedním sloupcovým polem jako řetězcový datový typ
  2. 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.

Komplexní tabulka Json To Hive

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“

Komplexní tabulka Json To Hive

-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