Hive als ETL- und Data Warehousing-Tool über dem Hadoop-Ö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 Zuordnung schreiben und Skripts mithilfe einer Skriptsprache reduzieren. Es bietet eine SQL-ähnliche Umgebung und Unterstützung für einfaches Abfragen.
In diesem Tutorial lernen Sie:
- Arbeiten mit strukturierten Daten mit Hive
- Arbeiten mit halbstrukturierten Daten mit Hive (XML, JSON)
- Hive in Echtzeitprojekten - Wann und wo verwendet
Arbeiten mit strukturierten Daten mit Hive
Strukturierte Daten bedeutet, dass die Daten das richtige Format für Zeilen und Spalten haben. Dies ähnelt eher RDBMS-Daten mit richtigen Zeilen und Spalten.
Hier werden strukturierte Daten geladen, die in Textdateien in Hive vorhanden sind
Schritt 1) In diesem Schritt erstellen wir die Tabelle "employee_guru" mit Spaltennamen wie ID, Name, Alter, Adresse, Gehalt und Abteilung der Mitarbeiter mit Datentypen.
Aus dem obigen Screenshot können wir Folgendes beobachten:
- Erstellung der Tabelle "employee_guru"
- Laden von Daten aus Employees.txt in die Tabelle "employee_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 beobachten.
- 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-Funktionen im Hadoop-Ökosystem aus, indem es als ETL-Tool fungiert. Bei einigen Arten von Anwendungen kann es schwierig sein, eine Kartenreduzierung durchzuführen. Hive kann die Komplexität reduzieren und bietet die beste Lösung für die IT-Anwendungen im Hinblick auf den Data Warehousing-Sektor.
Halbstrukturierte Daten wie XML und JSON können mit Hive weniger komplex verarbeitet werden. Zuerst werden wir sehen, wie wir Hive für XML verwenden können.
XML TO HIVE TABLE
In diesem Fall 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 str-Spalte mit dem String-Datentyp.
Aus dem obigen Screenshot können wir Folgendes beobachten
- Erstellung der Tabelle "xmlsample_guru"
- Laden von Daten aus der Datei test.xml in die Tabelle "xmlsample_guru"
Schritt 2) Mit der XPath () -Methode können wir die in XML-Tags gespeicherten Daten abrufen.
Aus dem obigen Screenshot können wir Folgendes beobachten
- Mit der XPATH () -Methode rufen wir die unter / emp / esal / und / emp / ename / gespeicherten Werte ab
- In XML-Tags vorhandene Werte. In diesem Schritt zeigen wir die tatsächlichen Werte an, die unter XML-Tags in der Tabelle "xmlsample_guru" gespeichert sind.
Schritt 3) In diesem Schritt rufen wir das Raw-XML der Tabelle "xmlsample_guru" ab und zeigen es an.
Aus dem obigen Screenshot können wir Folgendes beobachten
- Die tatsächlichen XML-Daten werden mit Tags angezeigt
- Wenn wir ein einzelnes Tag beobachten, ist es mit "emp" als übergeordnetem 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 Schemas erstellen.
JSON TO HIVE TABLE
In diesem Fall laden wir JSON-Daten in Hive-Tabellen und rufen die im JSON-Schema gespeicherten Werte ab.
Schritt 1) In diesem Schritt erstellen wir den JSON-Tabellennamen "json_guru". Einmal erstellt, wird der Inhalt des eigentlichen Schemas geladen und angezeigt.
Aus dem obigen Screenshot können wir Folgendes beobachten
- Erstellung der Tabelle "json_guru"
- Laden von Daten aus test.json in die Tabelle "json_guru"
- Anzeigen des tatsächlichen Schemas der in json_guru-Tabellen 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 können wir Folgendes beobachten
- 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) und get_json_object (str,' $. Sali) ename sal-Werte aus der Tabelle json_guru abgerufen
- In der JSON-Hierarchie in json_guru gespeicherte Werte
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 TO HIVE-TABELLE
In diesem Fall werden komplexe JSON-Daten in Hive-Tabellen geladen und die im JSON-Schema gespeicherten Werte abgerufen
Schritt 1) Erstellen von complexjson_guru mit einem einzelnen Spaltenfeld
Aus dem obigen Screenshot können wir Folgendes beobachten
- Erstellung in der Tabelle complexjson_guru mit einem einzelnen Spaltenfeld als Zeichenfolgendatentyp
- Laden von Daten aus der komplexen JSON-Datei emp.json in complexjson_guru
Schritt 2) Mit get_json_object können wir den tatsächlichen Inhalt abrufen, der in der JSON-Dateihierarchie gespeichert ist.
Auf dem folgenden Screenshot können wir die Ausgabe der in complexjson_guru gespeicherten Daten sehen.
Schritt 3) In diesem Schritt können wir mit dem Befehl "Select" tatsächlich komplexe JSON-Daten sehen, die in der Tabelle "complexjson_guru" gespeichert sind.
- 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 verwendet
Wann und wo Hive im Hadoop-Ökosystem verwendet werden soll:
Wann
- Bei der Arbeit mit starken und leistungsfähigen statistischen Funktionen im Hadoop-Ökosystem
- Bei der Arbeit mit strukturierter und halbstrukturierter Datenverarbeitung
- Als Data Warehouse Tool mit Hadoop
- Echtzeitdatenerfassung mit HBASE, Hive kann verwendet werden
Wo
- Zur einfachen Verwendung von ETL und Data Warehousing
- Bereitstellung einer SQL-Umgebung und Abfrage wie SQL mit HIVEQL
- Verwenden und Bereitstellen von benutzerdefinierten Map- und Reducer-Skripten für die spezifischen Clientanforderungen
- Nächster