Hive ETL: Indlæser eksempler på JSON, XML, tekstdata

Indholdsfortegnelse:

Anonim

Hive som et ETL- og datalageringsværktøj oven på Hadoop-økosystemet giver funktionaliteter som datamodellering, datamanipulation, databehandling og dataforespørgsel. Dataekstraktion i Hive betyder oprettelse af tabeller i Hive og indlæsning af strukturerede og semistrukturerede data samt forespørgsel på data baseret på kravene.

Til batchbehandling skal vi skrive specialdefinerede scripts ved hjælp af et brugerdefineret kort og reducere scripts ved hjælp af et scriptingsprog. Det giver SQL-lignende miljø og support til nem forespørgsel.

I denne vejledning lærer du-

  • Arbejde med strukturerede data ved hjælp af Hive
  • Arbejde med semistrukturerede data ved hjælp af Hive (XML, JSON)
  • Hive i realtidsprojekter - Hvornår og hvor man skal bruge

Arbejde med strukturerede data ved hjælp af Hive

Strukturerede data betyder, at data er i det korrekte format for rækker og kolonner. Dette ligner mere RDBMS-data med korrekte rækker og kolonner.

Her skal vi indlæse strukturerede data til stede i tekstfiler i Hive

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

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

  1. Oprettelse af tabel "medarbejdere_guru"
  2. Indlæser data fra ansatte.txt i tabellen "medarbejdere_guru"

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

- Prøvekodestykke

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-funktionaliteter i Hadoop-økosystemet ved at fungere som ETL-værktøj. Det kan være vanskeligt at udføre kortreduktion i nogle typer applikationer, Hive kan reducere kompleksiteten og giver den bedste løsning til it-applikationerne med hensyn til datalagringssektoren.

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 henter de værdier, der er gemt inde i XML-tags.

Trin 1) Oprettelse af tabel "xmlsample_guru" med str-kolonne med strengdatatype.

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

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

Trin 2) Ved hjælp af XPath () -metoden kan vi hente de data, der er gemt inde i XML-tags.

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

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

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

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

  • De faktiske XML-data, der vises med tags
  • Hvis vi observerer et enkelt tag, er det med "emp" som overordnet tag med "ename" og "esal" som underordnet 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 (JavaScript-objektnotation)

Twitter- og webstedsdata gemmes i JSON-format. Når vi prøver at hente data fra online servere, returnerer det JSON-filer. Ved hjælp af Hive som datalager kan vi indlæse JSON-data i Hive-tabeller ved at oprette skemaer.

JSON TIL HIVE-BORD

I dette skal 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-tabelnavn "json_guru". Når det er oprettet, indlæses og vises indholdet af det aktuelle skema.

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

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

Trin 2) Ved hjælp af get_json_object () -metoden kan vi hente de dataværdier, der er gemt i JSON-hierarki

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

  1. Ved hjælp af get_json_object (str, '$. Ecode) kan det hente ecode-værdier fra tabellen json_guru. På samme måde bruger get_json_object (str, '$. Ename), get_json_object (str,' $. Sali), det henter 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-BORD

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

Trin 1) Oprettelse af complexjson_guru med et enkelt kolonnefelt

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

  1. Oprettelse på tabel complexjson_guru med enkelt kolonnefelt som strengdatatype
  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 det følgende skærmbillede kan vi se output af de data, der er gemt i complexjson_guru.

Trin 3) I dette trin kan vi faktisk bruge komplekse JSON-data, der er gemt inde i tabellen "complexjson_guru" ved hjælp af "Vælg" -kommandoen.

-Eksempel 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 i realtidsprojekter - Hvornår og hvor man skal bruge

Hvornår og hvor skal du bruge bikuben på Hadoop-økosystemet:

Hvornår

  • Når man arbejder med stærke og stærke statistiske funktioner på Hadoop økosystem
  • Når man arbejder med struktureret og semistruktureret databehandling
  • Som værktøj til datalager med Hadoop
  • Realtidsdataindtagelse med HBASE, Hive kan bruges

Hvor

  • For nem brug af ETL og datalagerværktøj
  • At levere SQL-type miljø og forespørgsel som SQL ved hjælp af HIVEQL
  • At bruge og implementere brugerdefinerede kort- og reduceringsskripter til de specifikke klientkrav