Taru ETL: JSON-i, XML-i, tekstiandmete näidete laadimine
⚡ Nutikas kokkuvõte
Hive ETL laadib teksti-, XML- ja JSON-failid päringutabeliteks, laadides need Hive'i ja ex-i.tracväärtuste määramine xpath() ja get_json_object() abil, andes analüütikutele SQL-liidese poolstruktureeritud Hadoopi andmete kaudu.
Hive kui ETL ja andmeladustamise tööriist hadoop ökosüsteem pakub selliseid funktsioone nagu andmete modelleerimine, andmetega manipuleerimine, andmetöötlus ja andmepäringud. Andmete extracHive'is tähendab tabelite loomist Hive'is ning struktureeritud ja poolstruktureeritud andmete laadimist ja andmete päringute tegemist vastavalt nõuetele.
Pakktöötluse jaoks kirjutame kohandatud skripte, kasutades kohandatud kaarti ja vähendame skripte skriptikeeles. See pakub SQL nagu keskkond ja tugi hõlpsaks päringute tegemiseks.
Struktureeritud andmetega töötamine Hive'i abil
Struktureeritud andmed tähendavad, et andmed on ridade ja veergude õiges vormingus. See on pigem selline RDBMS andmed õigete ridade ja veergudega.
Siin laadime Hive'i tekstifailides olevaid struktureeritud andmeid.
Step 1) Selles etapis loome tabeli “employees_guru” veergude nimedega nagu Id, Nimi, Vanus, Aadress, Palk ja Osakond töötajate andmetüüpidega.
Ülaltoodud ekraanipildilt näeme järgmist.
- Tabeli “employees_guru” loomine
- Laadime andmeid failist Employees.txt tabelisse „employees_guru”
Step 2) Selles etapis kuvame tabelisse salvestatud sisu käsu „Vali“ abil. Tabeli sisu näeme järgmisel ekraanipildil.
Näidiskoodilõik
Päringud, mis tuleb täita
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;
Poolstruktureeritud andmetega töötamine Hive'i abil (XML, JSON)
Hive täidab Hadoopi ökosüsteemis ETL-funktsioone, toimides järgmiselt: ETL tööriistMapReduce'i rakendamine võib teatud tüüpi rakendustes olla keeruline; Hive suudab seda keerukust vähendada ja pakub andmeladustamise sektori IT-rakendustele parimat lahendust.
Poolstruktureeritud andmeid, näiteks XML-i ja JSON-i, saab Hive'i abil töödelda väiksema keerukusega. Esmalt vaatame, kuidas me saame Hive'i selleks kasutada XML.
XML-ist taru tabelisse
Selle käigus laadime XML-andmed Hive tabelitesse ja hangime XML-märgendite sees salvestatud väärtused.
Step 1) Tabeli „xmlsample_guru” loomine string-andmetüübiga string-veeruga.
Ülaltoodud ekraanipildilt näeme järgmist.
- Tabeli “xmlsample_guru” loomine
- Andmete laadimine failist test.xml tabelisse „xmlsample_guru”
Step 2) kasutades XPath meetodi xpath() abil saame hankida XML-siltide sees talletatud andmed.
Ülaltoodud ekraanipildilt näeme järgmist.
- Kasutades xpath() meetodit, hangime /emp/esal/ ja /emp/ename/ kaustadesse salvestatud väärtused.
- XML-siltide sees olevad väärtused. Selles etapis kuvame tabelis „xmlsample_guru” XML-siltide all salvestatud tegelikke väärtusi.
Pane tähele, et xpath() tagastab stringide massiivi; xpath_string(), xpath_int() ja xpath_double() tagastavad ühe tüüpitud väärtuse.
Step 3) Selles etapis toome ja kuvame tabeli „xmlsample_guru” toore XML-i.
Ülaltoodud ekraanipildilt näeme järgmist.
- Tegelikud XML-andmed, mis kuvatakse koos siltidega
- Kui vaatleme ühte silti, on selle vanemsildiks „emp“ ning alamsiltideks „ename“ ja „esal“.
Code katkend:
Päringud, mis tuleb täita
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 (JavaSkriptiobjekti tähistus)
Sotsiaalmeedia ja veebisaitide andmeid salvestatakse tavaliselt JSON-vormingus. Alati, kui proovime andmeid veebiserveritest hankida, tagastatakse JSON-faile. Hive'i andmesalvestusena kasutades saame JSON-andmeid Hive'i tabelitesse laadida, luues skeeme.
JSON-ist taru tabelisse
Selles laadime JSON-andmed Hive'i tabelitesse ja toome JSON-skeemis talletatud väärtused.
Step 1) Selles etapis loome JSON-tabeli nimega „json_guru“. Kui see on loodud, laadime ja kuvame tegeliku skeemi sisu.
Ülaltoodud ekraanipildilt näeme järgmist.
- Tabeli “json_guru” loomine
- Andmete laadimine failist test.json tabelisse „json_guru”
- Json_guru tabelisse salvestatud JSON-faili tegeliku skeemi kuvamine
Step 2) Meetodi get_json_object() abil saame hankida JSON-hierarhias talletatud andmeväärtused.
Ülaltoodud ekraanipildilt näeme järgmist.
- Funktsiooni get_json_object(str,'$.ecode') abil saab see hankida eCode'i väärtused tabelist json_guru. Samamoodi, kasutades funktsioone get_json_object(str,'$.ename') ja get_json_object(str,'$.sal'), saab see ename ja sal väärtused tabelist json_guru.
- JSON-hierarhias json_guru failis talletatud väärtused
Kuna get_json_object() parsib dokumenti iga kutse jooksul üks kord, on json_tuple() odavam, kui on vaja mitut võtit, ja JSON SerDe kaardistab dokumendi laadimise ajal tüüpitud veergudele.
Code väljalõige
Päringud, mis tuleb täita
1) create table json_guru(str string); 2) load data inpath 'home/hduser/test.json' into table json_guru; 3) select * from json_guru; 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;
Kompleksne JSON taru tabelisse
Selles laadime Hive'i tabelitesse keerulisi JSON-andmeid ja toome JSON-skeemis talletatud väärtused.
Step 1) Ühe veeruväljaga complexjson_guru loomine.
Ülaltoodud ekraanipildilt näeme järgmist.
- Tabeli complexjson_guru loomine ühe veeruväljaga stringandmetüübina
- Andmete laadimine emp.json komplekssest JSON-failist complexjson_guru'sse
Step 2) Funktsiooni get_json_object abil saame kätte JSON-failihierarhias talletatud tegeliku sisu.
Järgmiselt ekraanipildilt näeme complexjson_guru faili salvestatud andmete väljundit.
Step 3) Selles etapis näeme käsu „Select“ abil tabelis „complexjson_guru“ talletatud keerulisi JSON-andmeid.
Näidiskoodilõik
Päringud, mis tuleb täita
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;
Hive reaalajas projektides – millal ja kus kasutada
Millal ja kus Hive'i Hadoopi ökosüsteemis kasutada:
Kui
- Hadoopi ökosüsteemis tugevate ja võimsate statistiliste funktsioonidega töötades
- Struktureeritud ja poolstruktureeritud andmetöötlusega töötamisel
- Andmelao tööriistana Hadoopiga
- Reaalajas andmete sisestamine HBase'i abil, kus saab kasutada Hive'i
Kus
- ETL-i ja andmeladustamise tööriistana kasutamise lihtsuse tagamiseks
- SQL-tüübi keskkonna pakkumiseks ja SQL-i sarnaste päringute tegemiseks HiveQL-i abil
- Kohandatud kaardi- ja reduktoriskriptide kasutamiseks ja juurutamiseks vastavalt kliendi vajadustele











