Hive ETL: Laster inn JSON, XML, tekstdataeksempler
Hive som et ETL og datavarehusverktรธy pรฅ toppen av Hadoop รธkosystemet tilbyr funksjoner som datamodellering, datamanipulering, databehandling og dataspรธrring. Datautvinning i Hive betyr รฅ lage tabeller i Hive og laste inn strukturerte og semistrukturerte data samt spรธrre etter data basert pรฅ kravene.
For batchbehandling skal vi skrive tilpassede definerte skript ved รฅ bruke et tilpasset kart og redusere skript ved รฅ bruke et skriptsprรฅk. Det gir SQL som miljรธ og stรธtte for enkel spรธrring.
Arbeide med strukturerte data ved hjelp av Hive
Strukturerte data betyr at data er i riktig format for rader og kolonner. Dette er mer som RDBMS data med riktige rader og kolonner.
Her skal vi laste inn strukturerte data som finnes i tekstfiler i Hive
Trinn 1) I dette trinnet lager vi tabell "ansatte_guru" med kolonnenavn som Id, Navn, Alder, Adresse, Lรธnn og Avdeling for de ansatte med datatyper.
Fra skjermbildet ovenfor kan vi observere fรธlgende,
- Oppretting av tabellen "ansatte_guru"
- Laster data fra Employees.txt til tabellen "employees_guru"
Trinn 2) I dette trinnet viser vi innholdet som er lagret i denne tabellen ved รฅ bruke "Velg"-kommandoen. Vi kan se tabellinnholdet i fรธlgende skjermbilde.
โ Eksempelkodebit
Spรธrsmรฅl som skal utfรธres
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;
Arbeide med semistrukturerte data ved hjelp av Hive (XML, JSON)
Hive utfรธrer ETL-funksjoner i Hadoop-รธkosystemet ved รฅ fungere som ETL-verktรธy. Det kan vรฆre vanskelig รฅ utfรธre kartreduksjon i noen type applikasjoner, Hive kan redusere kompleksiteten og gir den beste lรธsningen til IT-applikasjonene nรฅr det gjelder datavarehussektoren.
Semistrukturerte data som XML og JSON kan behandles med mindre kompleksitet ved รฅ bruke Hive. Fรธrst skal vi se hvordan vi kan bruke Hive til XML.
XML TO HIVE TABELL
I dette skal vi laste XML-data inn i Hive-tabeller, og vi vil hente verdiene som er lagret inne i XML-taggene.
Trinn 1) Oppretting av tabell "xmlsample_guru" med str kolonne med strengdatatype.
Fra skjermbildet ovenfor kan vi observere fรธlgende
- Oppretting av tabellen "xmlsample_guru"
- Laster data fra test.xml til tabellen ยซxmlsample_guruยป
Trinn 2) Ved hjelp av XPath () metoden vil vi kunne hente dataene som er lagret i XML-koder.
Fra skjermbildet ovenfor kan vi observere fรธlgende
- Ved รฅ bruke XPATH( )-metoden henter vi verdiene lagret under /emp/esal/ og /emp/ename/
- Verdier til stede i XML-koder. I dette trinnet viser vi faktiske verdier lagret under XML-koder i tabellen "xmlsample_guru"
Trinn 3) I dette trinnet vil vi hente og vise rรฅ XML-en til tabellen "xmlsample_guru."
Fra skjermbildet ovenfor kan vi observere fรธlgende
- De faktiske XML-dataene vises med tagger
- Hvis vi observerer enkelt tag, er det med "emp" som overordnet tag med "ename" og "esal" som underordnede tags.
Kodebit:
Spรธrsmรฅl som skal utfรธres
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 (JavaSkriptobjektnotasjon)
Twitter og nettstedsdata lagres i JSON-format. Hver gang vi prรธver รฅ hente data fra nettservere vil det returnere JSON-filer. Ved รฅ bruke Hive som datalager kan vi laste JSON-data inn i Hive-tabeller ved รฅ lage skjemaer.
JSON TO HIVE TABELL
I dette skal vi laste JSON-data inn i Hive-tabeller, og vi vil hente verdiene som er lagret i JSON-skjemaet.
Trinn 1) I dette trinnet skal vi lage JSON-tabellnavnet "json_guru". Nรฅr den er opprettet, laster og viser innholdet i det faktiske skjemaet.
Fra skjermbildet ovenfor kan vi observere fรธlgende
- Oppretting av tabellen "json_guru"
- Laster data fra test.json til tabellen "json_guru"
- Viser faktisk skjema for JSON-fil lagret i json_guru-tabeller
Trinn 2) Ved รฅ bruke get_json_object()-metoden kan vi hente dataverdiene som er lagret i JSON-hierarkiet
Fra skjermbildet ovenfor kan vi observere fรธlgende
- Ved รฅ bruke get_json_object (str,'$.ecode) kan den hente ecode-verdier fra tabellen json_guru. Pรฅ samme mรฅte ved รฅ bruke get_json_object (str,'$.ename), get_json_object (str,'$.Sali) vil det hente ename sal-verdier fra tabellen json_guru
- Verdier lagret inne i JSON-hierarkiet i json_guru
Kodebit
Spรธrsmรฅl som skal utfรธres
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;
Kompleks JSON TO HIVE TABELL
I dette skal vi laste komplekse JSON-data inn i Hive-tabeller, og vi vil hente verdiene som er lagret i JSON-skjemaet
Trinn 1) Opprette complexjson_guru med enkelt kolonnefelt
Fra skjermbildet ovenfor kan vi observere fรธlgende
- Oppretting pรฅ tabell complexjson_guru med enkelt kolonnefelt som strengdatatype
- Laster data inn i complexjson_guru fra emp.json kompleks JSON-fil
Trinn 2) Ved รฅ bruke get_json_object kan vi hente det faktiske innholdet som er lagret i JSON-filhierarkiet.
Fra fรธlgende skjermbilde kan vi se utdataene som er lagret i complexjson_guru.
Trinn 3) I dette trinnet, ved รฅ bruke "Select"-kommandoen, kan vi faktisk se komplekse JSON-data lagret i tabellen "complexjson_guru"
- Eksempel pรฅ kodebit,
Spรธrsmรฅl som skal utfรธres
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 in sanntidsprosjekter โ nรฅr og hvor du kan bruke dem
Nรฅr og hvor du skal bruke Hive pรฅ Hadoop Ecosystem:
Nรฅr
- Nรฅr du jobber med sterke og kraftige statistiske funksjoner pรฅ Hadoop-รธkosystemet
- Nรฅr du arbeider med strukturert og semistrukturert databehandling
- Som datavarehusverktรธy med Hadoop
- Sanntidsdatainntak med HBASE, Hive kan brukes
Hvor
- For enkel bruk av ETL og datavarehusverktรธy
- For รฅ tilby et miljรธ av typen SQL og รฅ spรธrre som SQL ved hjelp av HIVEQL
- For รฅ bruke og distribuere egendefinerte kart- og reduseringsskript for de spesifikke klientkravene










