Hive ETL: Beispiele für das Laden von JSON-, XML- und Textdaten

Hive als ETL- und Data-Warehousing-Tool darüber hinaus Hadoop Das Ökosystem bietet Funktionen wie Datenmodellierung, Datenmanipulation, Datenverarbeitung und Datenabfrage. Datenextraktion in Hive bedeutet das Erstellen von Tabellen in Hive und das Laden strukturierter und halbstrukturierter Daten sowie das Abfragen von Daten basierend auf den Anforderungen.

Für die Stapelverarbeitung werden wir benutzerdefinierte Skripte mithilfe einer benutzerdefinierten Karte schreiben und Skripte mithilfe einer Skriptsprache reduzieren. Es bietet SQL wie Umgebung und Unterstützung für einfache Abfragen.

Arbeiten mit strukturierten Daten mit Hive

Strukturierte Daten bedeuten, dass die Daten im richtigen Zeilen- und Spaltenformat vorliegen. Das ist eher so RDBMS Daten mit den richtigen Zeilen und Spalten.

Hier laden wir strukturierte Daten, die in Textdateien in Hive vorliegen

Schritt 1) In diesem Schritt erstellen wir die Tabelle „employees_guru“ mit Spaltennamen wie ID, Name, Alter, Adresse, Gehalt und Abteilung der Mitarbeiter mit Datentypen.

Arbeiten mit strukturierten Daten mit Hive

Aus dem obigen Screenshot können wir Folgendes erkennen:

  1. Erstellung der Tabelle „employees_guru“
  2. Laden von Daten aus Employees.txt in die Tabelle „employees_guru“

Schritt 2) In diesem Schritt zeigen wir den in dieser Tabelle gespeicherten Inhalt mit dem Befehl „Auswählen“ an. Wir können den Tabelleninhalt im folgenden Screenshot sehen.

Arbeiten mit strukturierten Daten mit Hive

– Beispielcode-Snippet

Durchzuführende Abfragen

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;

Arbeiten mit halbstrukturierten Daten mit Hive (XML, JSON)

Hive führt ETL-Funktionalitäten im Hadoop-Ökosystem durch und fungiert als ETL-Tool. Bei manchen Anwendungstypen kann es schwierig sein, eine Map-Reduzierung durchzuführen. Hive kann die Komplexität reduzieren und bietet im Hinblick auf den Data-Warehousing-Sektor die beste Lösung für IT-Anwendungen.

Halbstrukturierte Daten wie XML und JSON können mit Hive mit weniger Komplexität verarbeitet werden. Zuerst werden wir sehen, wie wir Hive verwenden können für XML.

XML-TO-HIVE-TABELLE

Dabei laden wir XML-Daten in Hive-Tabellen und rufen die in den XML-Tags gespeicherten Werte ab.

Schritt 1) Erstellung der Tabelle „xmlsample_guru“ mit der Spalte „str“ mit dem Datentyp „string“.

Arbeiten mit halbstrukturierten Daten mit Hive

Aus dem obigen Screenshot können wir Folgendes erkennen:

  1. Erstellung der Tabelle „xmlsample_guru“
  2. Laden von Daten aus der test.xml in die Tabelle „xmlsample_guru“

Schritt 2) Die richtigen XPath ()-Methode können wir die in XML-Tags gespeicherten Daten abrufen.

Arbeiten mit halbstrukturierten Daten mit Hive

Aus dem obigen Screenshot können wir Folgendes erkennen:

  1. Mit der XPATH( )-Methode rufen wir die unter /emp/esal/ und /emp/ename/ gespeicherten Werte ab.
  2. In XML-Tags vorhandene Werte. In diesem Schritt zeigen wir tatsächliche Werte an, die unter XML-Tags in der Tabelle „xmlsample_guru“ gespeichert sind.

Schritt 3) In diesem Schritt rufen wir das Roh-XML der Tabelle „xmlsample_guru“ ab und zeigen es an.

Arbeiten mit halbstrukturierten Daten mit Hive

Aus dem obigen Screenshot können wir Folgendes erkennen:

  • Die tatsächlichen XML-Daten werden mit Tags angezeigt
  • Wenn wir ein einzelnes Tag beobachten, ist es „emp“ als übergeordnetes Tag mit „ename“ und „esal“ als untergeordneten Tags.

Code-Auszug:

Durchzuführende Abfragen

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 (JavaSkriptobjektnotation)

Twitter- und Website-Daten werden im JSON-Format gespeichert. Immer wenn wir versuchen, Daten von Online-Servern abzurufen, werden JSON-Dateien zurückgegeben. Mit Hive als Datenspeicher können wir JSON-Daten in Hive-Tabellen laden, indem wir Schemata erstellen.

JSON TO HIVE-TABELLE

Dabei laden wir JSON-Daten in Hive-Tabellen und rufen die im JSON-Schema gespeicherten Werte ab.

Schritt 1) In diesem Schritt erstellen wir eine JSON-Tabelle mit dem Namen „json_guru“. Nach der Erstellung wird der Inhalt des tatsächlichen Schemas geladen und angezeigt.

Json zur Hive-Tabelle

Aus dem obigen Screenshot können wir Folgendes erkennen:

  1. Erstellung der Tabelle „json_guru“
  2. Laden von Daten aus test.json in die Tabelle „json_guru“
  3. Zeigt das tatsächliche Schema der in json_guru-Tabellen gespeicherten JSON-Datei an

Schritt 2) Mit der Methode get_json_object() können wir die in der JSON-Hierarchie gespeicherten Datenwerte abrufen

Json zur Hive-Tabelle

Aus dem obigen Screenshot können wir Folgendes erkennen:

  1. Mit get_json_object (str,'$.ecode) können Ecode-Werte aus der Tabelle json_guru abgerufen werden. In ähnlicher Weise werden mit get_json_object (str,'$.ename) ,get_json_object (str,'$.Sali) Ename-Sal-Werte aus der Tabelle json_guru abgerufen
  2. Werte, die innerhalb der JSON-Hierarchie in json_guru gespeichert sind

Code-Auszug

Durchzuführende Abfragen

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;

Komplexe JSON-ZU-HIVE-TABELLE

Dabei laden wir komplexe JSON-Daten in Hive-Tabellen und holen die im JSON-Schema gespeicherten Werte ab.

Schritt 1) Erstellen von complexjson_guru mit einem einspaltigen Feld

Komplexe JSON-zu-Hive-Tabelle

Aus dem obigen Screenshot können wir Folgendes erkennen:

  1. Erstellung auf der Tabelle complexjson_guru mit einem einspaltigen Feld als Zeichenfolgendatentyp
  2. Laden von Daten in complexjson_guru aus der komplexen JSON-Datei emp.json

Schritt 2) Durch die Verwendung von get_json_object können wir den tatsächlichen Inhalt abrufen, der in der JSON-Dateihierarchie gespeichert ist.

Im folgenden Screenshot können wir die Ausgabe der in complexjson_guru gespeicherten Daten sehen.

Komplexe JSON-zu-Hive-Tabelle

Schritt 3) In diesem Schritt können wir mit dem Befehl „Auswählen“ tatsächlich komplexe JSON-Daten anzeigen, die in der Tabelle „complexjson_guru“ gespeichert sind.

Komplexe JSON-zu-Hive-Tabelle

-Beispielcode-Snippet,

Durchzuführende Abfragen

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 Echtzeitprojekten – wann und wo zu verwenden

Wann und wo Sie Hive im Hadoop-Ökosystem verwenden können:

Wann

  • Bei der Arbeit mit starken und leistungsstarken statistischen Funktionen im Hadoop-Ökosystem
  • Bei der Arbeit mit strukturierter und halbstrukturierter Datenverarbeitung
  • Als Data-Warehouse-Tool mit Hadoop
  • Echtzeit-Datenerfassung mit HBASE, Hive kann verwendet werden

Wo

  • Zur einfacheren Verwendung von ETL und Data Warehousing-Tools
  • Bereitstellung einer SQL-ähnlichen Umgebung und Abfragen wie SQL mithilfe von HIVEQL
  • Zur Verwendung und Bereitstellung benutzerdefinierter Map- und Reducer-Skripte für die spezifischen Clientanforderungen