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

Hive als ETL- und Data-Warehousing-Tool darüber hinaus Hadoop ecosystem 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

Auf dem obigen Screenshot können wir Folgendes beobachtenwing,

  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 die in dieser Tabelle gespeicherten Inhalte mit dem Befehl „Auswählen“ an. Wir können den Tabelleninhalt im Folgenden beobachtenwing Bildschirmfoto.

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 in Hadoop aus ecosSystem, indem es als fungiert ETL-Tool. In manchen Anwendungen kann es schwierig sein, eine Kartenreduzierung durchzuführen. Hive kann den Aufwand reduzierenplexity und bietet die beste Lösung für IT-Anwendungen im Bereich Data Warehousing.

Halbstrukturierte Daten wie XML und JSON können mit weniger Aufwand verarbeitet werdenplexity mit Hive. Zuerst werden wir sehen, wie wir Hive nutzen können 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

Auf dem obigen Screenshot können wir Folgendes beobachtenwing

  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

Auf dem obigen Screenshot können wir Folgendes beobachtenwing

  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

Auf dem obigen Screenshot können wir Folgendes beobachtenwing

  • 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 (JavaScript-Objektnotation)

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

Auf dem obigen Screenshot können wir Folgendes beobachtenwing

  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 erkennenwing

  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;

Mitplex JSON TO HIVE-TABELLE

Hier laden wir Complex JSON-Daten in Hive-Tabellen, und wir rufen die im JSON-Schema gespeicherten Werte ab

Schritt 1) Com erstellenplexjson_guru mit einspaltigem Feld

Mitplex Json zur Hive-Tabelle

Auf dem obigen Screenshot können wir Folgendes beobachtenwing

  1. Kreation auf Tisch complexjson_guru mit einem einspaltigen Feld als String-Datentyp
  2. Daten werden in com geladenplexjson_guru von emp.json complex JSON-Datei

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

Aus dem Following Im Screenshot können wir die Ausgabe der in com gespeicherten Daten sehenplexjson_guru.

Mitplex Json zur Hive-Tabelle

Schritt 3) In diesem Schritt können wir mithilfe des Befehls „Auswählen“ tatsächlich com sehenplex JSON-Daten werden in der Tabelle „complexjson_guru“

Mitplex Json zur 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 man Hive auf Hadoop verwenden sollte EcosSystem:

Wann

  • Bei der Arbeit mit starken und leistungsstarken statistischen Funktionen auf Hadoop ecosystem
  • 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