Hive ETL: Beispiele für das Laden von JSON-, XML- und Textdaten
⚡ Intelligente Zusammenfassung
Hive ETL wandelt Text-, XML- und JSON-Dateien in abfragefähige Tabellen um, indem es sie in Hive lädt und anschließend weiterleitet.tracWerte werden mit xpath() und get_json_object() verglichen, wodurch Analysten eine SQL-Schnittstelle für semistrukturierte Hadoop-Daten erhalten.

Hive als ETL- und Data-Warehousing-Tool zusätzlich zu Hadoop Das Ökosystem bietet Funktionalitäten wie Datenmodellierung, Datenmanipulation, Datenverarbeitung und Datenabfrage.traction in Hive bedeutet das Erstellen von Tabellen in Hive und das Laden strukturierter und semistrukturierter Daten sowie das Abfragen von Daten auf der Grundlage der Anforderungen.
Für die Stapelverarbeitung werden wir benutzerdefinierte Skripte mithilfe von Map- und Reduce-Skripten in einer Skriptsprache schreiben. Dies bietet eine SQL wie Umgebung und Unterstützung für einfache Abfragen.
Arbeiten mit strukturierten Daten mit Hive
Strukturierte Daten bedeuten, dass die Daten im richtigen Format mit Zeilen und Spalten vorliegen. Das ist eher so etwas wie RDBMS Daten mit den richtigen Zeilen und Spalten.
Hier laden wir strukturierte Daten aus Textdateien in Hive.
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.
Aus dem obigen Screenshot lässt sich Folgendes erkennen:
- Erstellung der Tabelle „employees_guru“
- Daten aus Employees.txt in die Tabelle „employees_guru“ laden
Schritt 2) In diesem Schritt zeigen wir die in dieser Tabelle gespeicherten Inhalte mithilfe des Befehls „Select“ an. Die Tabelleninhalte sind im folgenden Screenshot zu sehen.
Beispielcode-Ausschnitt
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 semistrukturierten Daten mithilfe von Hive (XML, JSON)
Hive führt ETL-Funktionalitäten im Hadoop-Ökosystem aus, indem es als … fungiert. ETL-ToolDie Durchführung von MapReduce kann in manchen Anwendungsbereichen schwierig sein; Hive kann diese Komplexität reduzieren und bietet die beste Lösung für IT-Anwendungen im Bereich Data Warehousing.
Semistrukturierte Daten wie XML und JSON lassen sich mit Hive einfacher verarbeiten. Zunächst sehen wir uns an, wie wir Hive für Folgendes verwenden können: XML.
XML zu 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 einer str-Spalte vom Datentyp String.
Aus dem obigen Screenshot lässt sich Folgendes erkennen:
- Erstellung der Tabelle „xmlsample_guru“
- Daten aus der test.xml in die Tabelle „xmlsample_guru“ laden
Schritt 2) Verwendung der XPath Mit der Methode xpath() können wir die in XML-Tags gespeicherten Daten abrufen.
Aus dem obigen Screenshot lässt sich Folgendes erkennen:
- Mithilfe der xpath()-Methode rufen wir die unter /emp/esal/ und /emp/ename/ gespeicherten Werte ab.
- Werte innerhalb von XML-Tags. In diesem Schritt zeigen wir die tatsächlichen Werte an, die in der Tabelle „xmlsample_guru“ unter den XML-Tags gespeichert sind.
Beachten Sie, dass xpath() ein Array von Zeichenketten zurückgibt; xpath_string(), xpath_int() und xpath_double() geben einen einzelnen typisierten Wert zurück.
Schritt 3) In diesem Schritt rufen wir das unformatierte XML der Tabelle „xmlsample_guru“ ab und zeigen es an.
Aus dem obigen Screenshot lässt sich Folgendes erkennen:
- Die tatsächlichen XML-Daten werden mit Tags angezeigt
- Wenn wir ein einzelnes Tag betrachten, dann ist es das „emp“ als übergeordnetes Tag mit „ename“ und „esal“ als untergeordneten Tags.
Code Ausschnitt:
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)
Daten aus sozialen Medien und von Websites werden üblicherweise im JSON-Format gespeichert. Beim Abrufen von Daten von Online-Servern werden JSON-Dateien zurückgegeben. Mithilfe von Hive als Datenspeicher können wir JSON-Daten durch die Erstellung von Schemas in Hive-Tabellen laden.
JSON zu Hive-Tabelle
Hierbei 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“. Sobald diese erstellt ist, laden und zeigen wir den Inhalt des eigentlichen Schemas an.
Aus dem obigen Screenshot lässt sich Folgendes erkennen:
- Erstellung der Tabelle „json_guru“
- Daten aus test.json in die Tabelle „json_guru“ laden
- Anzeige des tatsächlichen Schemas der in der Tabelle json_guru gespeicherten JSON-Datei
Schritt 2) Mit der Methode get_json_object() können wir die in der JSON-Hierarchie gespeicherten Datenwerte abrufen.
Aus dem obigen Screenshot lässt sich Folgendes erkennen:
- Mit `get_json_object(str,'$.ecode')` lassen sich die Werte für `ecode` aus der Tabelle `json_guru` abrufen. Analog dazu können mit `get_json_object(str,'$.ename')` und `get_json_object(str,'$.sal')` die Werte für `ename` und `sal` aus derselben Tabelle abgerufen werden.
- Werte, die innerhalb der JSON-Hierarchie in json_guru gespeichert sind
Da get_json_object() das Dokument einmal pro Aufruf analysiert, ist json_tuple() günstiger, wenn mehrere Schlüssel benötigt werden, und ein JSON SerDe ordnet das Dokument zur Ladezeit typisierten Spalten zu.
Code Schnipsel
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 json_guru; 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-Daten in Hive-Tabelle
Hierbei laden wir komplexe JSON-Daten in Hive-Tabellen und rufen die im JSON-Schema gespeicherten Werte ab.
Schritt 1) Erstellung von complexjson_guru mit einem einzelnen Spaltenfeld.
Aus dem obigen Screenshot lässt sich Folgendes erkennen:
- Erstellung der Tabelle complexjson_guru mit einem einzelnen Spaltenfeld vom Datentyp String
- Daten aus der komplexen JSON-Datei emp.json in complexjson_guru laden
Schritt 2) Mit get_json_object können wir den eigentlichen Inhalt abrufen, der in der JSON-Dateihierarchie gespeichert ist.
Im folgenden Screenshot ist die Ausgabe der in complexjson_guru gespeicherten Daten zu sehen.
Schritt 3) In diesem Schritt können wir mithilfe des Befehls „Select“ die in der Tabelle „complexjson_guru“ gespeicherten komplexen JSON-Daten anzeigen.
Beispielcode-Ausschnitt
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 man es einsetzt
Wann und wo sollte Hive im Hadoop-Ökosystem eingesetzt werden?
Wenn die Funktion
- Bei der Arbeit mit leistungsstarken statistischen Funktionen im Hadoop-Ökosystem
- Bei der Verarbeitung strukturierter und semistrukturierter Daten
- Als Data-Warehouse-Tool mit Hadoop
- Echtzeit-Datenerfassung mit HBase, wobei Hive verwendet werden kann
COHO Expo bei der
- Für einfache Bedienbarkeit als ETL- und Data-Warehousing-Tool
- Um eine SQL-ähnliche Umgebung bereitzustellen und Abfragen wie mit SQL mithilfe von HiveQL durchzuführen
- Um benutzerdefinierte Map- und Reducer-Skripte für spezifische Kundenanforderungen zu verwenden und bereitzustellen










