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.

Arbeide med strukturerte data ved hjelp av Hive

Fra skjermbildet ovenfor kan vi observere følgende,

  1. Oppretting av tabellen "ansatte_guru"
  2. 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.

Arbeide med strukturerte data ved hjelp av Hive

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

Arbeide med semistrukturerte data ved hjelp av Hive

Fra skjermbildet ovenfor kan vi observere følgende

  1. Oppretting av tabellen "xmlsample_guru"
  2. 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.

Arbeide med semistrukturerte data ved hjelp av Hive

Fra skjermbildet ovenfor kan vi observere følgende

  1. Ved å bruke XPATH( )-metoden henter vi verdiene lagret under /emp/esal/ og /emp/ename/
  2. 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."

Arbeide med semistrukturerte data ved hjelp av Hive

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.

Json To Hive-tabell

Fra skjermbildet ovenfor kan vi observere følgende

  1. Oppretting av tabellen "json_guru"
  2. Laster data fra test.json til tabellen "json_guru"
  3. 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

Json To Hive-tabell

Fra skjermbildet ovenfor kan vi observere følgende

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

Kompleks Json To Hive-tabell

Fra skjermbildet ovenfor kan vi observere følgende

  1. Oppretting på tabell complexjson_guru med enkelt kolonnefelt som strengdatatype
  2. 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.

Kompleks Json To Hive-tabell

Trinn 3) I dette trinnet, ved å bruke "Select"-kommandoen, kan vi faktisk se komplekse JSON-data lagret i tabellen "complexjson_guru"

Kompleks Json To Hive-tabell

- 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