Hive ETL: Läser in exempel på JSON, XML, textdata

Innehållsförteckning:

Anonim

Hive som ett ETL- och datalagerverktyg ovanpå Hadoop-ekosystemet erbjuder funktioner som datamodellering, datamanipulation, databehandling och datafråga. Dataextraktion i Hive betyder skapande av tabeller i Hive och laddning av strukturerad och halvstrukturerad data samt frågeställning av data baserat på kraven.

För batchbearbetning ska vi skriva anpassade definierade skript med hjälp av en anpassad karta och minska skript med hjälp av ett skriptspråk. Det ger SQL-liknande miljö och stöd för enkel fråga.

I den här handledningen lär du dig-

  • Arbeta med strukturerad data med hjälp av Hive
  • Arbeta med semistrukturerad data med hjälp av Hive (XML, JSON)
  • Hive i realtidsprojekt - När och var man ska använda

Arbeta med strukturerad data med hjälp av Hive

Strukturerad data betyder att data har rätt format för rader och kolumner. Detta är mer som RDBMS-data med rätt rader och kolumner.

Här ska vi ladda strukturerad data som finns i textfiler i Hive

Steg 1) I detta steg skapar vi tabellen "medarbetare_guru" med kolumnnamn som Id, Namn, Ålder, Adress, Lön och avdelning för de anställda med datatyper.

Från ovanstående skärmdump kan vi observera följande,

  1. Skapande av bord "medarbetare_guru"
  2. Läser in data från anställda.txt i tabellen "medarbetare_guru"

Steg 2) I det här steget visar vi innehållet som är lagrat i denna tabell med kommandot "Välj". Vi kan observera tabellinnehållet i följande skärmdump.

- Exempelkodavsnitt

Frågor som ska utföras

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;

Arbeta med semistrukturerad data med hjälp av Hive (XML, JSON)

Hive utför ETL-funktioner i Hadoop-ekosystemet genom att fungera som ETL-verktyg. Det kan vara svårt att utföra kartreducering i vissa typer av applikationer, Hive kan minska komplexiteten och ger den bästa lösningen för IT-applikationerna när det gäller datalagringssektorn.

Semistrukturerade data som XML och JSON kan bearbetas med mindre komplexitet med Hive. Först får vi se hur vi kan använda Hive för XML.

XML TILL HIVE TABELL

I detta ska vi ladda XML-data i Hive-tabeller, och vi hämtar de värden som är lagrade i XML-taggarna.

Steg 1) Skapande av tabell "xmlsample_guru" med str-kolumn med strängdatatyp.

Från ovanstående skärmdump kan vi observera följande

  1. Skapande av tabell "xmlsample_guru"
  2. Läser in data från test.xml i tabellen "xmlsample_guru"

Steg 2) Med XPath () -metoden kommer vi att kunna hämta data som lagras i XML-taggar.

Från ovanstående skärmdump kan vi observera följande

  1. Med XPATH () -metoden hämtar vi de värden som lagras under / emp / esal / och / emp / ename /
  2. Värden som finns inuti XML-taggar. I det här steget visar vi faktiska värden lagrade under XML-taggar i tabellen "xmlsample_guru"

Steg 3) I det här steget hämtar och visar vi Raw XML i tabellen "xmlsample_guru."

Från ovanstående skärmdump kan vi observera följande

  • Den faktiska XML-data som visas med taggar
  • Om vi ​​observerar enstaka tagg är det med "emp" som överordnad tagg med "ename" och "esal" som underordnade taggar.

Kodavsnitt:

Frågor som ska utföras

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- och webbplatsdata lagras i JSON-format. När vi försöker hämta data från onlineservrar returnerar den JSON-filer. Med hjälp av Hive som datalager kan vi ladda JSON-data i Hive-tabeller genom att skapa scheman.

JSON TILL HIVE BORD

I detta kommer vi att ladda JSON-data i Hive-tabeller, och vi hämtar värdena lagrade i JSON-schemat.

Steg 1) I det här steget ska vi skapa JSON-tabellnamn "json_guru". När du väl har skapat laddar och visar innehållet i det aktuella schemat.

Från ovanstående skärmdump kan vi observera följande

  1. Skapande av bord "json_guru"
  2. Läser in data från test.json i tabellen "json_guru"
  3. Visar det aktuella schemat för JSON-fil lagrat i json_guru-tabeller

Steg 2) Med hjälp av get_json_object () -metoden kan vi hämta datavärdena lagrade i JSON-hierarkin

Från ovanstående skärmdump kan vi observera följande

  1. Med get_json_object (str, '$. Ecode) kan det hämta ecode-värden från tabellen json_guru. På samma sätt använder get_json_object (str, '$. Ename), get_json_object (str,' $. Sali) det hämtar ename sal-värden från tabellen json_guru
  2. Värden lagrade inne i JSON Hierarchy i json_guru

Kodavsnitt

Frågor som ska utföras

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;

Komplex JSON TO HIVE BORD

I detta kommer vi att ladda komplexa JSON-data i Hive-tabeller, och vi hämtar värdena lagrade i JSON-schemat

Steg 1) Skapa complexjson_guru med enstaka kolumnfält

Från ovanstående skärmdump kan vi observera följande

  1. Skapande på tabellen complexjson_guru med enstaka kolumnfält som strängdatatyp
  2. Läser in data i complexjson_guru från emp.json komplex JSON-fil

Steg 2) Genom att använda get_json_object kan vi hämta det faktiska innehållet som lagras i JSON-filhierarkin.

Från följande skärmdump kan vi se utdata från de data som lagras i complexjson_guru.

Steg 3) I detta steg, med hjälp av "Välj" -kommandot kan vi faktiskt se komplexa JSON-data lagrade i tabellen "complexjson_guru"

-Exempel på kodavsnitt,

Frågor som ska utföras

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 realtidsprojekt - När och var man ska använda

När och var ska bikupor användas på Hadoop-ekosystemet:

När

  • När du arbetar med starka och kraftfulla statistiska funktioner på Hadoop ekosystem
  • När du arbetar med strukturerad och halvstrukturerad databehandling
  • Som datalagerverktyg med Hadoop
  • Realtidsdataintag med HBASE, Hive kan användas

Var

  • För enkel användning av ETL och datalagerverktyg
  • Att tillhandahålla SQL-typmiljö och att fråga som SQL med HIVEQL
  • Att använda och distribuera anpassade specificerade kart- och reduceringsskript för specifika klientkrav