Hive ETL: učitavanje JSON, XML, primjeri tekstualnih podataka
Hive kao ETL i alat za skladištenje podataka povrh toga Hadoop ekosustav pruža funkcionalnosti kao što su modeliranje podataka, manipulacija podacima, obrada podataka i upit za podatke. Ekstrakcija podataka u Hiveu znači stvaranje tablica u Hiveu i učitavanje strukturiranih i polustrukturiranih podataka, kao i postavljanje upita podacima na temelju zahtjeva.
Za skupnu obradu, pisat ćemo prilagođeno definirane skripte pomoću prilagođene karte i smanjiti skripte pomoću skriptnog jezika. Pruža SQL poput okruženja i podrške za jednostavno postavljanje upita.
Rad sa strukturiranim podacima pomoću Hive-a
Strukturirani podaci znače da su podaci u ispravnom formatu redaka i stupaca. Ovo je više kao RDBMS podatke s odgovarajućim redovima i stupcima.
Ovdje ćemo učitati strukturirane podatke prisutne u tekstualnim datotekama u Hive
Korak 1) U ovom koraku stvaramo tablicu "employees_guru" s nazivima stupaca kao što su Id, Ime, Dob, Adresa, Plaća i Odjel zaposlenika s tipovima podataka.
Iz gornje snimke zaslona možemo vidjeti sljedeće,
- Izrada tablice “employees_guru”
- Učitavanje podataka iz Employees.txt u tablicu”employees_guru”
Korak 2) U ovom koraku prikazujemo sadržaj pohranjen u ovoj tablici pomoću naredbe “Select”. Sadržaj tablice možemo vidjeti na sljedećoj snimci zaslona.
– Primjer isječka koda
Upiti koje treba izvršiti
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;
Rad s polu strukturiranim podacima pomoću Hive (XML, JSON)
Hive izvodi ETL funkcionalnosti u Hadoop ekosustavu djelujući kao ETL alat. Može biti teško izvršiti smanjenje karte u nekim vrstama aplikacija, Hive može smanjiti složenost i pružiti najbolje rješenje za IT aplikacije u smislu sektora skladištenja podataka.
Polustrukturirani podaci kao što su XML i JSON mogu se obrađivati s manje složenosti pomoću Hive-a. Prvo ćemo vidjeti kako možemo koristiti Hive za XML.
XML DO HIVE TABLICE
U ovom ćemo učitati XML podatke u Hive tablice i dohvatit ćemo vrijednosti pohranjene unutar XML oznaka.
Korak 1) Stvaranje tablice “xmlsample_guru” sa stupcem str s tipom podataka string.
Iz gornje snimke zaslona možemo vidjeti sljedeće
- Izrada tablice “xmlsample_guru”
- Učitavanje podataka iz test.xml u tablicu “xmlsample_guru”
Korak 2) Korištenje XPath () metodom moći ćemo dohvatiti podatke pohranjene unutar XML oznaka.
Iz gornje snimke zaslona možemo vidjeti sljedeće
- Pomoću metode XPATH( ) dohvaćamo vrijednosti pohranjene pod /emp/esal/ i /emp/ename/
- Vrijednosti prisutne unutar XML oznaka. U ovom koraku prikazujemo stvarne vrijednosti pohranjene pod XML oznakama u tablici “xmlsample_guru”
Korak 3) U ovom koraku ćemo dohvatiti i prikazati neobrađeni XML tablice "xmlsample_guru."
Iz gornje snimke zaslona možemo vidjeti sljedeće
- Stvarni XML podaci koji se prikazuju s oznakama
- Ako promatramo jednu oznaku, ona je s "emp" kao roditeljskom oznakom s "ename" i "esal" kao podređenim oznakama.
Isječak koda:
Upiti koje treba izvršiti
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 (Javazapis objekta skripte)
Podaci Twittera i web stranica pohranjuju se u JSON formatu. Kad god pokušamo dohvatiti podatke s mrežnih poslužitelja, vratit će JSON datoteke. Koristeći Hive kao pohranu podataka možemo učitavati JSON podatke u Hive tablice stvaranjem shema.
JSON DO HIVE TABLICE
U ovom ćemo učitati JSON podatke u Hive tablice i dohvatit ćemo vrijednosti pohranjene u JSON shemi.
Korak 1) U ovom koraku stvorit ćemo JSON tablicu naziva "json_guru". Jednom stvoreno učitavanje i prikazivanje sadržaja stvarne sheme.
Iz gornje snimke zaslona možemo vidjeti sljedeće
- Izrada tablice “json_guru”
- Učitavanje podataka iz test.json u tablicu “json_guru”
- Prikaz stvarne sheme JSON datoteke pohranjene u json_guru tablicama
Korak 2) Pomoću metode get_json_object() možemo dohvatiti vrijednosti podataka pohranjene u JSON hijerarhiji
Iz gornje snimke zaslona možemo vidjeti sljedeće
- Korištenjem get_json_object (str,'$.ecode) može dohvatiti ecode vrijednosti iz tablice json_guru. Slično upotrebom get_json_object (str,'$.ename) ,get_json_object (str,'$.Sali) dohvatit će ename sal vrijednosti iz tablice json_guru
- Vrijednosti pohranjene unutar JSON hijerarhije u json_guru
Isječak koda
Upiti koje treba izvršiti
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;
Složeni JSON TO HIVE TABLE
U ovom ćemo učitati složene JSON podatke u Hive tablice i dohvatit ćemo vrijednosti pohranjene u JSON shemi
Korak 1) Stvaranje complexjson_guru s poljem jednog stupca
Iz gornje snimke zaslona možemo vidjeti sljedeće
- Stvaranje na tablici complexjson_guru s poljem jednog stupca kao vrstom podataka niza
- Učitavanje podataka u complexjson_guru iz emp.json složene JSON datoteke
Korak 2) Korištenjem get_json_objecta možemo dohvatiti stvarni sadržaj koji je pohranjen unutar hijerarhije JSON datoteka.
Na sljedećoj snimci zaslona možemo vidjeti izlaz podataka pohranjenih u complexjson_guru.
Korak 3) U ovom koraku, pomoću naredbe “Select” zapravo možemo vidjeti složene JSON podatke pohranjene unutar tablice “complexjson_guru”
-Uzorak isječka koda,
Upiti koje treba izvršiti
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;
Košnica u projektima u stvarnom vremenu – kada i gdje koristiti
Kada i gdje koristiti Hive na Hadoop ekosustavu:
Kada
- Kada radite s jakim i snažnim statističkim funkcijama na Hadoop ekosustavu
- Pri radu sa strukturiranom i polustrukturiranom obradom podataka
- Kao alat za skladištenje podataka s Hadoopom
- Može se koristiti unos podataka u stvarnom vremenu s HBASE, Hive
Gdje
- Za jednostavno korištenje ETL-a i alata za skladištenje podataka
- Osigurati okruženje tipa SQL i postavljati upite poput SQL-a koristeći HIVEQL
- Za korištenje i implementaciju prilagođenih mapa i reduktorskih skripti za specifične zahtjeve klijenta