Hive ETL: JSON-, XML- en tekstgegevensvoorbeelden laden

Hive als ETL- en datawarehousing-tool bovenop Hadoop ecossysteem biedt functionaliteiten zoals gegevensmodellering, gegevensmanipulatie, gegevensverwerking en gegevensquery's. Gegevensextractie in Hive betekent het maken van tabellen in Hive en het laden van gestructureerde en semi-gestructureerde gegevens, evenals het opvragen van gegevens op basis van de vereisten.

Voor batchverwerking gaan we op maat gedefinieerde scripts schrijven met behulp van een aangepaste kaart en scripts verminderen met behulp van een scripttaal. Het zorgt voor SQL zoals omgeving en ondersteuning voor eenvoudig opvragen.

Werken met gestructureerde gegevens met behulp van Hive

Gestructureerde gegevens betekent dat gegevens de juiste indeling van rijen en kolommen hebben. Dit is meer zoiets RDBMS gegevens met de juiste rijen en kolommen.

Hier gaan we gestructureerde gegevens laden die aanwezig zijn in tekstbestanden in Hive

Stap 1) In deze stap maken we de tabel “employees_guru” met kolomnamen zoals Id, Naam, Leeftijd, Adres, Salaris en Afdeling van de werknemers met gegevenstypen.

Werken met gestructureerde gegevens met behulp van Hive

Uit de bovenstaande schermafbeelding kunnen we het volgende waarnemenwing,

  1. Aanmaak van tabel “employees_guru”
  2. Gegevens uit Employees.txt laden in tabel “employees_guru”

Stap 2) In deze stap geven we de inhoud weer die in deze tabel is opgeslagen met behulp van de opdracht "Selecteren". We kunnen de inhoud van de tabel in het volgende bekijkenwing schermafdruk.

Werken met gestructureerde gegevens met behulp van Hive

– Voorbeeldcodefragment

Uit te voeren query's

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;

Werken met semi-gestructureerde gegevens met behulp van Hive (XML, JSON)

Hive voert ETL-functionaliteiten uit in Hadoop ecossysteem door op te treden als ETL-tool. Het kan moeilijk zijn om kaartverkleining uit te voeren in sommige soorten toepassingen. Hive kan de complexen biedt de beste oplossing voor de IT-toepassingen op het gebied van datawarehousing.

Semi-gestructureerde gegevens zoals XML en JSON kunnen met minder moeite worden verwerktplexgebruik Hive. Eerst gaan we kijken waar we Hive voor kunnen gebruiken XML.

XML NAAR HIVE-TABEL

Hierin gaan we XML-gegevens in Hive-tabellen laden en halen we de waarden op die zijn opgeslagen in de XML-tags.

Stap 1) Creatie van tabel “xmlsample_guru” met str-kolom met stringgegevenstype.

Werken met semi-gestructureerde gegevens met behulp van Hive

Uit de bovenstaande schermafbeelding kunnen we het volgende waarnemenwing

  1. Aanmaak van tabel “xmlsample_guru”
  2. Gegevens uit test.xml laden in tabel “xmlsample_guru”

Stap 2) gebruik XPath () methode kunnen we de gegevens ophalen die zijn opgeslagen in XML-tags.

Werken met semi-gestructureerde gegevens met behulp van Hive

Uit de bovenstaande schermafbeelding kunnen we het volgende waarnemenwing

  1. Met behulp van de XPATH() methode halen we de waarden op die zijn opgeslagen onder /emp/esal/ en /emp/ename/
  2. Waarden aanwezig in XML-tags. In deze stap geven we werkelijke waarden weer die zijn opgeslagen onder XML-tags in tabel "xmlsample_guru"

Stap 3) In deze stap zullen we de Raw XML van tabel “xmlsample_guru” ophalen en weergeven.

Werken met semi-gestructureerde gegevens met behulp van Hive

Uit de bovenstaande schermafbeelding kunnen we het volgende waarnemenwing

  • De daadwerkelijke XML-gegevens die met tags worden weergegeven
  • Als we een enkele tag waarnemen, is dit met “emp” als bovenliggende tag met “ename” en “esal” als onderliggende tags.

Codefragment:

Uit te voeren query's

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-objectnotatie)

Twitter- en websitegegevens worden opgeslagen in JSON-formaat. Telkens wanneer we gegevens van online servers proberen op te halen, worden JSON-bestanden geretourneerd. Door Hive als gegevensarchief te gebruiken, kunnen we JSON-gegevens in Hive-tabellen laden door schema's te maken.

JSON NAAR HIVE-TABEL

Hierin gaan we JSON-gegevens in Hive-tabellen laden en halen we de waarden op die zijn opgeslagen in het JSON-schema.

Stap 1) In deze stap gaan we de JSON-tabelnaam “json_guru” maken. Eenmaal gemaakt, wordt de inhoud van het daadwerkelijke schema geladen en weergegeven.

Json naar Hive-tabel

Uit de bovenstaande schermafbeelding kunnen we het volgende waarnemenwing

  1. Aanmaak van tabel “json_guru”
  2. Gegevens uit test.json laden in tabel “json_guru”
  3. Het werkelijke schema weergeven van het JSON-bestand dat is opgeslagen in json_guru-tabellen

Stap 2) Met behulp van de get_json_object()-methode kunnen we de gegevenswaarden ophalen die zijn opgeslagen in de JSON-hiërarchie

Json naar Hive-tabel

Uit de bovenstaande schermafbeelding kunnen we het volgende zienwing

  1. Met behulp van get_json_object (str,'$.ecode) kan het ecodewaarden ophalen uit tabel json_guru. Op dezelfde manier zal het gebruik van get_json_object (str,'$.ename) ,get_json_object (str,'$.Sali) de ename sal-waarden ophalen uit tabel json_guru
  2. Waarden opgeslagen in de JSON-hiërarchie in json_guru

Codefragment

Uit te voeren query's

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;

complex JSON NAAR HIVE-TABEL

Hierin gaan we Complex JSON-gegevens in Hive-tabellen, en we halen de waarden op die zijn opgeslagen in het JSON-schema

Stap 1) Com creërenplexjson_guru met een veld met één kolom

complex Json naar Hive-tabel

Uit de bovenstaande schermafbeelding kunnen we het volgende waarnemenwing

  1. Creatie op tafel complexjson_guru met een veld met één kolom als tekenreeksgegevenstype
  2. Gegevens laden in complexjson_guru van emp.json complex JSON-bestand

Stap 2) Door get_json_object te gebruiken, kunnen we de daadwerkelijke inhoud ophalen die is opgeslagen in de JSON-bestandshiërarchie.

Van de volgendewing screenshot, kunnen we de uitvoer zien van de gegevens die zijn opgeslagen in complexjson_guru.

complex Json naar Hive-tabel

Stap 3) In deze stap kunnen we, door het commando "Selecteren" te gebruiken, complex JSON-gegevens opgeslagen in tabel “complexjson_guru”

complex Json naar Hive-tabel

-Voorbeeldcodefragment,

Uit te voeren query's

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 realtime projecten – wanneer en waar te gebruiken

Wanneer en waar Hive op Hadoop te gebruiken Ecossysteem:

.

  • Bij het werken met strong en krachtige statistische functies op Hadoop ecosystem
  • Bij het werken met gestructureerde en semi-gestructureerde gegevensverwerking
  • Als datawarehouse-tool met Hadoop
  • Realtime gegevensopname met HBASE, Hive kan worden gebruikt

Waar

  • Voor eenvoudig gebruik van ETL en datawarehousingtool
  • Om een ​​SQL-type omgeving te bieden en om query's uit te voeren zoals SQL met behulp van HIVEQL
  • Om op maat gespecificeerde kaart- en reducer-scripts te gebruiken en te implementeren voor de specifieke klantvereisten