Hive ETL: Indlæser JSON, XML, tekstdataeksempler

Hive som et ETL og data warehousing værktøj oveni Hadoop økosystem leverer funktioner som datamodellering, datamanipulation, databehandling og dataforespørgsel. Dataudtræk i Hive betyder oprettelse af tabeller i Hive og indlæsning af strukturerede og semistrukturerede data samt forespørgsel efter data baseret på kravene.

Til batchbehandling vil vi skrive brugerdefinerede scripts ved hjælp af et brugerdefineret kort og reducere scripts ved hjælp af et scriptsprog. Det giver SQL som miljø og support for nem forespørgsel.

Arbejde med strukturerede data ved hjælp af Hive

Strukturerede data betyder, at data er i det korrekte format af rækker og kolonner. Dette er mere ligesom RDBMS data med rigtige rækker og kolonner.

Her skal vi indlæse strukturerede data, der findes i tekstfiler i Hive

Trin 1) I dette trin opretter vi tabellen "employees_guru" med kolonnenavne som Id, Navn, Alder, Adresse, Løn og Afdeling for de ansatte med datatyper.

Arbejde med strukturerede data ved hjælp af Hive

Fra ovenstående skærmbillede kan vi observere følgende,

  1. Oprettelse af tabellen "employees_guru"
  2. Indlæser data fra Employees.txt til tabellen "employees_guru"

Trin 2) I dette trin viser vi indholdet, der er gemt i denne tabel, ved at bruge kommandoen "Vælg". Vi kan se tabelindholdet i det følgende skærmbillede.

Arbejde med strukturerede data ved hjælp af Hive

– Eksempel på kodestykke

Forespørgsler, der skal udfø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;

Arbejde med semistrukturerede data ved hjælp af Hive (XML, JSON)

Hive udfører ETL-funktioner i Hadoop-økosystemet ved at fungere som ETL værktøj. Det kan være svært at udføre kortreduktion i nogle typer applikationer, Hive kan reducere kompleksiteten og giver den bedste løsning til IT-applikationerne med hensyn til data warehousing sektor.

Semistrukturerede data som XML og JSON kan behandles med mindre kompleksitet ved hjælp af Hive. Først vil vi se, hvordan vi kan bruge Hive til XML.

XML TIL HIVE-TABEL

I dette skal vi indlæse XML-data i Hive-tabeller, og vi vil hente værdierne gemt inde i XML-tags.

Trin 1) Oprettelse af tabel "xmlsample_guru" med str kolonne med streng datatype.

Arbejde med semistrukturerede data ved hjælp af Hive

Fra ovenstående skærmbillede kan vi observere følgende

  1. Oprettelse af tabellen "xmlsample_guru"
  2. Indlæser data fra test.xml til tabellen "xmlsample_guru"

Trin 2) Ved brug af XPath () metode vil vi være i stand til at hente de data, der er gemt i XML-tags.

Arbejde med semistrukturerede data ved hjælp af Hive

Fra ovenstående skærmbillede kan vi observere følgende

  1. Ved hjælp af XPATH()-metoden henter vi værdierne gemt under /emp/esal/ og /emp/ename/
  2. Værdier til stede inde i XML-tags. I dette trin viser vi faktiske værdier gemt under XML-tags i tabellen "xmlsample_guru"

Trin 3) I dette trin henter og viser vi den rå XML fra tabellen "xmlsample_guru."

Arbejde med semistrukturerede data ved hjælp af Hive

Fra ovenstående skærmbillede kan vi observere følgende

  • De faktiske XML-data vises med tags
  • Hvis vi observerer enkelt tag, er det med "emp" som overordnet tag med "ename" og "esal" som underordnede tags.

Kodestykke:

Forespørgsler, der skal udfø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 (JavaScriptobjektnotation)

Twitter og webstedsdata gemmes i JSON-format. Hver gang vi forsøger at hente data fra online-servere, vil det returnere JSON-filer. Ved at bruge Hive som datalager kan vi indlæse JSON-data i Hive-tabeller ved at oprette skemaer.

JSON TIL HIVE TABEL

I dette vil vi indlæse JSON-data i Hive-tabeller, og vi henter de værdier, der er gemt i JSON-skemaet.

Trin 1) I dette trin skal vi oprette JSON-tabelnavnet "json_guru". Når det er oprettet, indlæser og viser indholdet af det faktiske skema.

Json To Hive Tabel

Fra ovenstående skærmbillede kan vi observere følgende

  1. Oprettelse af tabellen "json_guru"
  2. Indlæser data fra test.json til tabellen "json_guru"
  3. Viser faktisk skema for JSON-fil gemt i json_guru-tabeller

Trin 2) Ved at bruge get_json_object()-metoden kan vi hente dataværdierne gemt i JSON-hierarkiet

Json To Hive Tabel

Fra ovenstående skærmbillede kan vi observere følgende

  1. Ved at bruge get_json_object (str,'$.ecode) kan den hente ecode-værdier fra tabellen json_guru. På samme måde ved at bruge get_json_object (str,'$.ename), get_json_object (str,'$.Sali), vil det hente ename sal-værdier fra tabellen json_guru
  2. Værdier gemt inde i JSON Hierarchy i json_guru

Kodestykke

Forespørgsler, der skal udfø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 TIL HIVE-TABEL

I dette skal vi indlæse komplekse JSON-data i Hive-tabeller, og vi henter værdierne gemt i JSON-skemaet

Trin 1) Oprettelse af complexjson_guru med enkelt kolonnefelt

Kompleks Json To Hive Tabel

Fra ovenstående skærmbillede kan vi observere følgende

  1. Oprettelse på tabel complexjson_guru med enkelt kolonne felt som streng datatype
  2. Indlæser data i complexjson_guru fra emp.json kompleks JSON-fil

Trin 2) Ved at bruge get_json_object kan vi hente det faktiske indhold, der er gemt inde i JSON-filhierarkiet.

Fra følgende skærmbillede kan vi se outputtet af de data, der er gemt i complexjson_guru.

Kompleks Json To Hive Tabel

Trin 3) I dette trin, ved at bruge "Select"-kommandoen, er vi faktisk i stand til at se komplekse JSON-data gemt i tabellen "complexjson_guru"

Kompleks Json To Hive Tabel

- Eksempel på kodestykke,

Forespørgsler, der skal udfø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 realtidsprojekter – Hvornår og hvor skal du bruge dem

Hvornår og hvor skal man bruge Hive på Hadoop Ecosystem:

Hvornår

  • Når du arbejder med stærke og kraftfulde statistiske funktioner på Hadoop-økosystemet
  • Når du arbejder med struktureret og semistruktureret databehandling
  • Som datavarehusværktøj med Hadoop
  • Realtidsdataindtagelse med HBASE, Hive kan bruges

Hvor

  • For nem brug af ETL og data warehousing værktøj
  • At levere et SQL-miljø og at forespørge som SQL ved hjælp af HIVEQL
  • At bruge og implementere brugerdefinerede kort- og reduceringsscripts til de specifikke klientkrav