Hive ETL: Laddar JSON, XML, textdataexempel

Hive som ett ETL och data warehousing verktyg ovanpå Hadoop ekosystemet tillhandahåller funktioner som datamodellering, datamanipulation, databehandling och dataförfrågning. Dataextraktion i Hive innebär att man skapar tabeller i Hive och laddar strukturerad och semistrukturerad data samt frågar efter data baserat på kraven.

För batchbearbetning kommer vi att skriva anpassade definierade skript med hjälp av en anpassad karta och minska skript med ett skriptspråk. Det ger SQL som miljö och support för enkel fråga.

Arbeta med strukturerad data med hjälp av Hive

Strukturerad data betyder att data har rätt format av rader och kolumner. Det här är mer som RDBMS data med korrekta rader och kolumner.

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

Steg 1) I det här steget skapar vi tabellen "anställda_guru" med kolumnnamn som Id, Namn, Ålder, Adress, Lön och Avdelning för de anställda med datatyper.

Arbeta med strukturerad data med hjälp av Hive

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

  1. Skapande av tabellen "anställda_guru"
  2. Laddar data från Employees.txt till tabellen ”employees_guru”

Steg 2) I det här steget visar vi innehållet som är lagrat i den här tabellen genom att använda kommandot "Select". Vi kan observera tabellinnehållet i följande skärmdump.

Arbeta med strukturerad data med hjälp av Hive

– Exempel på kodavsnitt

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 agera som ETL-verktyg. Det kan vara svårt att utföra kartreducering i någon typ av applikationer, Hive kan minska komplexiteten och ger den bästa lösningen till IT-applikationerna vad gäller datalagersektorn.

Semistrukturerad data som XML och JSON kan bearbetas med mindre komplexitet med hjälp av Hive. Först ska vi se hur vi kan använda Hive för XML.

XML TO HIVE TABELL

I detta kommer vi att ladda XML-data till Hive-tabeller, och vi kommer att hämta värdena som är lagrade inuti XML-taggarna.

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

Arbeta med semistrukturerad data med hjälp av Hive

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

  1. Skapande av tabellen "xmlsample_guru"
  2. Laddar data från test.xml till tabellen "xmlsample_guru"

Steg 2) Använda XPath () metod vi kommer att kunna hämta data som lagras inuti XML-taggar.

Arbeta med semistrukturerad data med hjälp av Hive

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

  1. Med metoden XPATH( ) hämtar vi värdena lagrade 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 kommer vi att hämta och visa Raw XML för tabellen "xmlsample_guru."

Arbeta med semistrukturerad data med hjälp av Hive

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

  • Den faktiska XML-data som visas med taggar
  • Om vi ​​observerar en enda tagg är det med "emp" som förälder 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 Object Notation)

Twitter och webbplatsdata lagras i JSON-format. När vi försöker hämta data från onlineservrar kommer det att returnera JSON-filer. Genom att använda Hive som datalager kan vi ladda JSON-data till Hive-tabeller genom att skapa scheman.

JSON TO HIVE TABELL

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

Steg 1) I det här steget kommer vi att skapa JSON-tabellnamnet "json_guru". När du har skapat laddar och visar innehållet i det faktiska schemat.

Json To Hive-tabell

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

  1. Skapande av tabellen "json_guru"
  2. Laddar data från test.json till tabellen "json_guru"
  3. Visar det faktiska schemat för JSON-filen lagrad i json_guru-tabeller

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

Json To Hive-tabell

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

  1. Genom att använda get_json_object (str,'$.ecode) kan den hämta ekodvärden från tabellen json_guru. På liknande sätt genom att använda get_json_object (str,'$.ename), get_json_object (str,'$.Sali) kommer det att hämta ename sal-värden från tabellen json_guru
  2. Värden lagrade i JSON-hierarkin 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 TABELL

I det här kommer vi att ladda komplexa JSON-data till Hive-tabeller, och vi kommer att hämta värdena lagrade i JSON-schemat

Steg 1) Skapar complexjson_guru med ett enda kolumnfält

Komplext Json To Hive-bord

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

  1. Skapande på tabell complexjson_guru med ett enda kolumnfält som strängdatatyp
  2. Laddar data till complexjson_guru från emp.json komplexa JSON-fil

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

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

Komplext Json To Hive-bord

Steg 3) I det här steget, genom att använda kommandot "Select" kan vi faktiskt se komplexa JSON-data lagrade i tabellen "complexjson_guru"

Komplext Json To Hive-bord

- 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 in realtidsprojekt – när och var du kan använda dem

När och var ska man använda Hive på Hadoop Ecosystem:

När

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

Var

  • För enkel användning av ETL och datalagerverktyg
  • För att tillhandahålla miljö av SQL-typ och att fråga som SQL med HIVEQL
  • Att använda och distribuera anpassade specificerade kart- och reducerskript för de specifika klientkraven