Apache Hive für das Daten-Engineering

Inhalt

Überblick

  • Comprender la arquitectura de Apache Bienenstock y su funcionamiento.
  • Wir werden lernen, einige grundlegende Operationen in Apache Hive auszuführen.

Einführung

Die meisten Data Scientists verwenden SQL-Abfragen, um die Daten zu untersuchen und Erkenntnisse daraus zu gewinnen.. Jetzt, da das Datenvolumen so schnell wächst, wir brauchen neue dedizierte Tools, um große Datenmengen zu verarbeiten.

Anfänglich, Hadoop entstand und wurde zu einem der beliebtesten Tools für die Verarbeitung und Speicherung von Big Data. Aber Entwickler mussten komplexen Code zur Kartenreduktion schreiben, um mit Hadoop zu arbeiten. Dies ist Facebooks Apache Hive, zu dessen Rettung er gekommen ist. Es ist ein weiteres Tool, das für die Arbeit mit Hadoop entwickelt wurde. Wir können SQL-ähnliche Abfragen im Hive schreiben und im Backend wandelt es sie in Map-Reduction-Jobs um.

Erste-Schritte-mit-Apache-Hive-1789784

In diesem Artikel, Wir werden die Architektur des Bienenstocks und seinen Betrieb sehen. También aprenderemos cómo realizar operaciones simples como crear una Datenbank y una tabla, lade Daten, die Tabelle ändern.

Inhaltsverzeichnis

  1. Was ist Apache Hive??
  2. Arquitectura Apache Hive
  3. Apache Hive-Job
  4. Datentypen in Apache Hive
  5. Datenbank erstellen und löschen
  6. Tabelle erstellen und löschen
  7. Daten in Tabelle laden
  8. Tabelle ändern
  9. Vorteil / Nachteile von Hive

Was ist Apache Hive??

Bienenstock-Logo-2732441

Apache Hive ist ein von Facebook entwickeltes Datenspeichersystem zur Verarbeitung einer großen Menge an Strukturdaten in Hadoop. Wir wissen, dass die Verarbeitung der Daten mit Hadoop, wir müssen komplexe Kartenreduktionsfunktionen reparieren, was für die meisten Entwickler keine leichte Aufgabe ist. Hive macht uns diese Arbeit sehr leicht.

Es verwendet eine Skriptsprache namens HiveQL, die SQL fast ähnlich ist. Dann, wir müssen nur SQL-ähnliche Befehle schreiben und im Hive-Backend werden sie automatisch in Map-Reduction-Jobs umgewandelt.

Arquitectura Apache Hive

Schauen wir uns das folgende Diagramm an, das die Architektur zeigt.

screenshot-from-2020-10-25-20-47-32-8903294

  • Hive-Kunden: Es ermöglicht uns, Hive-Anwendungen mit verschiedenen Arten von Clients zu schreiben, als rettender Server, der JDBC-Treiber für Java- und Hive-Anwendungen, und es ist auch mit Anwendungen kompatibel, die das ODBC-Protokoll verwenden.
  • Bienenstockdienste: Als ein Entwickler, wenn wir Daten verarbeiten wollen, wir müssen hive-Dienste wie hive CLI . verwenden (Befehlszeilenschnittstelle). Abgesehen von diesem Bienenstock, bietet auch eine webbasierte Schnittstelle zum Ausführen der Hive-Anwendungen.
  • Bienenstockfahrer: Es ist in der Lage, Anfragen von mehreren Ressourcen wie thrift . zu empfangen, JDBC und ODBS mit Hive-Server und direkt über die Hive-CLI und die webbasierte Benutzeroberfläche. Nach Erhalt von Anfragen, überträgt sie an den Compiler.
  • HiveQL-Engine: Empfängt die Abfrage vom Compiler und konvertiert die SQL-ähnliche Abfrage in Map-Reduction-Jobs.
  • Meta-Shop: Hier speichert Hive die Metainformationen zu den Datenbanken als Tabellenschema, die Datentypen der Spalten, la ubicación en el HDFS, etc.
  • HDFS: Es simplemente el Verteiltes Dateisystem de Hadoop que se utiliza para almacenar los datos. Ich empfehle Ihnen dringend, diesen Artikel zu lesen, um mehr über HDFS zu erfahren: Einführung in das Hadoop-Ökosystem

Apache Hive-Job

Jetzt, Sehen wir uns an, wie Hive im Hadoop-Framework funktioniert.

screenshot-from-2020-10-25-18-57-51-5645793

  1. Im ersten Schritt, Wir schreiben die Abfrage über das Webinterface oder die Kommandozeilenschnittstelle des Bienenstocks. Sendet es an den Controller, um die Abfrage auszuführen.
  2. Im nächsten Schritt, der Controller sendet die empfangene Anfrage an den Compiler, wo der Compiler die Syntax überprüft.
  3. Und wenn die Syntaxprüfung abgeschlossen ist, Metadaten vom Meta-Store anfordern.
  4. Jetzt, Metadaten liefern Informationen wie die Datenbank, Bretter, Spaltendatentypen als Antwort auf eine Compiler-Abfrage.
  5. Der Compiler prüft erneut alle vom Metaspeicher empfangenen Anforderungen und sendet den Ausführungsplan an die Steuerung.
  6. Jetzt, der Controller sendet den Ausführungsplan an die HiveQL-Prozess-Engine, wobei die Engine die Abfrage in den Map-Reduction-Job umwandelt.
  7. Sobald die Abfrage zum Kartenreduktionsjob wird, sendet die Aufgabeninformationen an Hadoop, wo die Abfrageverarbeitung beginnt und, zur selben Zeit, aktualisiert Metadaten zum Kartenreduktionsjob im Metaspeicher.
  8. Sobald die Verarbeitung abgeschlossen ist, die Laufzeit empfängt die Abfrageergebnisse.
  9. Die Runtime überträgt die Ergebnisse an die Steuerung und, Schließlich, sendet sie an die Hive-Benutzeroberfläche, von der aus wir die Ergebnisse sehen können.

Datentypen in Apache Hive

Hive-Datentypen sind in folgende unterteilt: 5 verschiedene Kategorien:

  1. numerischer Typ: TINYINT, SMALLINT, INT, BIGINT
  2. Datumstypen / Zeit: STUNDE, DATUM, BRECHEN
  3. Arten von Saiten: STRING, VARCHAR, VERKOHLEN
  4. Komplexe Typen: STRUKTUR, KARTE, UNION, ARRAY
  5. Verschiedene Typen: BOOLEO, SPUREN

Hier ist eine kleine Beschreibung von einigen von ihnen.

screenshot-from-2020-10-25-22-41-47-8165741

Datenbank erstellen und löschen

Das Erstellen und Löschen einer Datenbank ist sehr einfach und ähnelt SQL. Wir müssen jeder der Hive-Datenbanken einen eindeutigen Namen zuweisen. Wenn die Datenbank bereits existiert, wird eine Warnung anzeigen und um diese Warnung zu unterdrücken, können Sie die Schlüsselwörter hinzufügen WENN ES NICHT EXISTIERT nach dem Datenbank-Schlüsselwort.

DATENBANK ERSTELLEN <<Name der Datenbank>> ;

Auch das Löschen einer Datenbank ist ganz einfach, du musst nur a schreiben Datenbank und Datenbankname löschen verlassen sein. Wenn Sie versuchen, die nicht vorhandene Datenbank zu löschen, gibt Ihnen den SemanticException-Fehler.

DATENBANK VERLIEREN <<Name der Datenbank>> ;

Tabelle erstellen

Wir verwenden die create table-Anweisung, um eine Tabelle zu erstellen, und die vollständige Syntax lautet wie folgt.

TABELLE ERSTELLEN, WENN NICHT EXISTIERT <<Name der Datenbank.>><<Tabellenname>> 
                           (column_name_1 data_type_1, 
                            Spaltenname_2 Datentyp_2,
                            .
                            .
                            column_name_n data_type_n)
                            ROW FORMAT DELIMITED FIELDS 
                            TERMINATED BY 't'
                            LINES TERMINATED BY 'n'
                            STORED AS TEXTFILE;

Wenn Sie die Datenbank bereits verwenden, du musst nicht schreiben database_name.table_name. Dann, Sie können nur den Tabellennamen eingeben. Im Fall von Big Data, Meistens importieren wir die Daten aus externen Dateien, damit wir hier das in der Datei verwendete Trennzeichen vordefinieren können, Zeilenabschluss und wir können auch definieren, wie wir die Tabelle speichern wollen.

Es gibt 2 verschiedene Arten von Bienenstockbrettern Interne und externe Bretter. In diesem Artikel erfahren Sie mehr über das Konzept: Tabellentypen in Apache Hive: ein schneller Überblick

Daten in Tabelle laden

Jetzt, die Tabellen sind erstellt. Zeit, die Daten hineinzuladen. Wir können die Daten aus jeder lokalen Datei auf unserem System mit der folgenden Syntax laden.

DATEN LADEN LOKALER EINGANG <<Pfad der Datei auf Ihrem lokalen System>> 
                       IN TABELLEN
                       <<Name der Datenbank.>><<Tabellenname>> ;

Wenn wir mit großen Datenmengen arbeiten, Es besteht die Möglichkeit, dass in einigen Zeilen nicht übereinstimmende Datentypen vorhanden sind. Dann, der Bienenstock wirft keine Fehler aus, stattdessen werden stattdessen Nullwerte ausgefüllt. Dies ist eine sehr nützliche Funktion, da das Hochladen von Big-Data-Dateien in den Bienenstock ein teurer Prozess ist und wir nicht den gesamten Datensatz hochladen möchten, nur weil wir nur wenige Dateien haben.

Tabelle ändern

Im Bienenstock, Wir können verschiedene Änderungen an bestehenden Tabellen vornehmen, wie man Tabellen umbenennt, füge der Tabelle weitere Spalten hinzu. Die Befehle zum Ändern der Tabelle sind den SQL-Befehlen sehr ähnlich.

Hier ist die Syntax zum Umbenennen der Tabelle:

ALTER TABLE <<Tabellenname>> UMBENENNEN IN <<neuer Name>> ;

Syntax zum Hinzufügen weiterer Tabellenspalten:

## um weitere Spalten hinzuzufügen
ALTER TABLE <<Tabellenname>> SÄULEN HINZUFÜGEN 
                           (new_column_name_1 data_type_1,
                            new_column_name_2 data_type_2,
                            . 
                            .
                            new_column_name_n data_type_n) ;

Vorteil / Nachteile von Apache Hive

  • Verwendet SQL als Abfragesprache, die den meisten Entwicklern bereits vertraut ist, so ist es einfach zu bedienen.
  • Es ist hoch skalierbar, Sie können damit jede Datengröße verarbeiten.
  • Unterstützt mehrere Datenbanken wie MySQL, Derby, Postgres und Oracle für Ihren Metadatenspeicher.
  • Unterstützt mehrere Datenformate und ermöglicht auch die Indizierung, Partition und Gruppe zur Optimierung von Abfragen.
  • Es kann nur kalte Daten verarbeiten und ist nutzlos, wenn es um Echtzeit-Datenverarbeitung geht.
  • Es ist vergleichsweise langsamer als einige seiner Konkurrenten. Wenn es in Ihrem Anwendungsfall hauptsächlich um die Stapelverarbeitung geht, Bienenstock ist in Ordnung.

Abschließende Anmerkungen

In diesem Artikel, Wir haben die Apache Hive-Architektur und ihre Funktionsweise sowie einige der grundlegenden Operationen gesehen, um loszulegen. Im nächsten Artikel dieser Serie, veremos algunos de los conceptos más complejos e importantes de partición y Gruppierung en una colmena.

Bei Fragen zu diesem Artikel, lass es mich im Kommentarbereich unten wissen.

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.

Datenlautsprecher