Top Hive-Befehle mit Beispielen in HQL



In diesem Blog werden Hive-Befehle anhand von Beispielen in HQL erläutert. CREATE, DROP, TRUNCATE, ALTER, SHOW, DESCRIBE, USE, LOAD, INSERT, JOIN und viele weitere Hive-Befehle

In diesem Blog-Beitrag werden die wichtigsten Hive-Befehle anhand von Beispielen erläutert. Diese Hive-Befehle sind sehr wichtig, um die Grundlage für zu schaffen .

Der Edureka 2019 Tech Career Guide ist da! Die heißesten Jobrollen, präzisen Lernpfade, Branchenaussichten und mehr im Leitfaden. Herunterladen jetzt.

Was ist Hive?

Apache Hive ist ein Data Warehouse-System, das für Hadoop entwickelt wurde. Es wird zum Abfragen und Verwalten großer Datenmengen verwendet, die sich im verteilten Speicher befinden. Bevor Hive ein Open-Source-Projekt von Apache Hadoop wurde, wurde es von Facebook entwickelt. Es bietet einen Mechanismus zum Projizieren der Struktur auf die Daten in Hadoop und zum Abfragen dieser Daten mithilfe einer SQL-ähnlichen Sprache namens HiveQL (HQL).





Hive wird verwendet, da die Tabellen in Hive Tabellen in einer relationalen Datenbank ähneln. Wenn Sie mit SQL vertraut sind, ist es ein Kinderspiel. Viele Benutzer können die Daten gleichzeitig mit Hive-QL abfragen.

Was ist HQL?

Hive definiert eine einfache SQL-ähnliche Abfragesprache zum Abfragen und Verwalten großer Datenmengen mit dem Namen Hive-QL (HQL). Es ist einfach zu verwenden, wenn Sie mit SQL Language vertraut sind. Mit Hive können Programmierer, die mit der Sprache vertraut sind, das benutzerdefinierte MapReduce-Framework schreiben, um komplexere Analysen durchzuführen.



Verwendung von Hive:

1. Der verteilte Apache Hive-Speicher.

2. Hive bietet Tools zum einfachen Extrahieren / Transformieren / Laden von Daten (ETL).

3. Es bietet die Struktur für eine Vielzahl von Datenformaten.



4. Mit Hive können wir auf Dateien zugreifen, die im verteilten Hadoop-Dateisystem (HDFS wird zum Abfragen und Verwalten großer Datenmengen verwendet) oder in anderen Datenspeichersystemen wie Apache HBase gespeichert sind.

Einschränkungen von Hive:

& bull Hive ist nicht für die Online-Transaktionsverarbeitung (OLTP) konzipiert, sondern wird nur für die Online-Analyseverarbeitung verwendet.

& bull Hive unterstützt das Überschreiben oder Erfassen von Daten, jedoch nicht das Aktualisieren und Löschen.

& bull In Hive werden Unterabfragen nicht unterstützt.

Warum wird Hive trotz Pig verwendet?

Die folgenden Gründe sprechen dafür, dass Hive trotz der Verfügbarkeit von Pig verwendet wird:

  • Hive-QL ist eine deklarative Sprachzeile SQL, PigLatin ist eine Datenflusssprache.
  • Pig: Eine Datenflusssprache und -umgebung zum Erkunden sehr großer Datenmengen.
  • Hive: ein verteiltes Data Warehouse.

Komponenten von Hive:

Metastore:

Hive speichert das Schema der Hive-Tabellen in einem Hive-Metastore. Der Metastore wird verwendet, um alle Informationen zu den Tabellen und Partitionen im Warehouse zu speichern. Standardmäßig wird der Metastore im selben Prozess wie der Hive-Dienst ausgeführt, und der Standard-Metastore ist DerBy-Datenbank.

SerDe:

Serializer, Deserializer gibt Anweisungen zum Verarbeiten eines Datensatzes.

Hive-Befehle:

Datendefinitionssprache (DDL)

DDL-Anweisungen werden zum Erstellen und Ändern der Tabellen und anderer Objekte in der Datenbank verwendet.

DDL-Befehl Funktion
ERSTELLEN Es wird verwendet, um eine Tabelle oder Datenbank zu erstellen
SHOW Es wird verwendet, um Datenbank, Tabelle, Eigenschaften usw. Anzuzeigen
ALTER Es wird verwendet, um Änderungen an der vorhandenen Tabelle vorzunehmen
BESCHREIBEN Es beschreibt die Tabellenspalten
KÜRZEN Wird verwendet, um die Tabellenzeilen dauerhaft abzuschneiden und zu löschen
LÖSCHEN Löscht die Tabellendaten, kann aber wiederhergestellt werden

Gehen Sie zur Hive-Shell, indem Sie den Befehl sudo hive eingeben, und geben Sie den Befehl ein 'erstellen Datenbank Name> ’ um die neue Datenbank im Hive zu erstellen.

Erstellen Sie eine Hive-Datenbank mit Hive-Befehlen

Geben Sie den Befehl ‘ Datenbanken anzeigen “.

Die Datenbank wird an einem Standardspeicherort des Hive-Lagers erstellt. In Cloudera speichert die Hive-Datenbank in einem / user / hive / warehouse.

Der Befehl zur Verwendung der Datenbank lautet VERWENDEN

Kopieren Sie die Eingabedaten von local mit dem Befehl copy From Local nach HDFS.

Wenn wir eine Tabelle in Hive erstellen, wird diese am Standardspeicherort des Hive Warehouse erstellt. - '/ user / hive / warehouse', nach dem Erstellen der Tabelle können wir die Daten von HDFS in die Hive-Tabelle verschieben.

Der folgende Befehl erstellt eine Tabelle mit dem Speicherort '/user/hive/warehouse/retail.db'.

Hinweis : Retail.db ist die Datenbank, die im Hive-Warehouse erstellt wurde.

Beschreiben bietet Informationen zum Schema der Tabelle.

Datenmanipulationssprache (DML)

DML-Anweisungen werden zum Abrufen, Speichern, Ändern, Löschen, Einfügen und Aktualisieren von Daten in der Datenbank verwendet.

Beispiel:

LOAD, INSERT-Anweisungen.

Syntax :

LADE Datenpfad in Tabelle [Tabellenname]

Die Ladeoperation wird verwendet, um die Daten in die entsprechende Hive-Tabelle zu verschieben. Wenn das Schlüsselwort lokal angegeben wird, gibt dann im Ladebefehl der lokale Dateisystempfad an. Wenn das Schlüsselwort local nicht angegeben ist, müssen wir den HDFS-Pfad der Datei verwenden.

wie man in Java typisiert

Hier einige Beispiele für den Befehl LOAD data LOCAL

Nach dem Laden der Daten in die Hive-Tabelle können wir die Datenmanipulationsanweisungen anwenden oder Aggregatfunktionen, die die Daten abrufen.

Beispiel zum Zählen der Anzahl von Datensätzen:

Die Zählaggregatfunktion wird verwendet, um die Gesamtzahl der Datensätze in einer Tabelle zu zählen.

Tabelle 'Externe erstellen':

Das extern erstellen Das Schlüsselwort wird zum Erstellen einer Tabelle verwendet und gibt einen Speicherort an, an dem die Tabelle erstellt wird, sodass Hive keinen Standardspeicherort für diese Tabelle verwendet. Ein EXTERN Die Tabelle verweist auf einen beliebigen HDFS-Speicherort für den Speicher und nicht auf den Standardspeicher.

Befehl einfügen:

Das einfügen Befehl wird verwendet, um die Daten-Hive-Tabelle zu laden. Einfügungen können in eine Tabelle oder eine Partition erfolgen.

& bull INSERT OVERWRITE wird verwendet, um die vorhandenen Daten in der Tabelle oder Partition zu überschreiben.

& bull INSERT INTO wird verwendet, um die Daten an vorhandene Daten in einer Tabelle anzuhängen. (Hinweis: Die INSERT INTO-Syntax funktioniert ab Version 0.8.)

Beispiel für den Befehl 'Partitioniert von' und 'Clustered von'::

Partitioniert von Wird verwendet, um die Tabelle in die Partition zu unterteilen, und kann mithilfe von Clustered By ' Befehl.

Wenn wir die Fehler beim Auslösen von Data Hive einfügen, ist der dynamische Partitionsmodus streng und die dynamische Partition nicht aktiviert (von Jeff beim Dresshead-Website ). Daher müssen wir die folgenden Parameter in der Hive-Shell festlegen.

setze hive.exec.dynamic.partition = true

Um dynamische Partitionen zu aktivieren, ist dies standardmäßig falsch

setze hive.exec.dynamic.partition.mode = nonstrict

Die Partitionierung erfolgt nach Kategorien und kann mithilfe des Befehls 'Clustered By' in Buckets unterteilt werden.

Die Anweisung 'Tabelle löschen' löscht die Daten und Metadaten für eine Tabelle. Bei externen Tabellen werden nur die Metadaten gelöscht.

Die Anweisung 'Tabelle löschen' löscht die Daten und Metadaten für eine Tabelle. Bei externen Tabellen werden nur die Metadaten gelöscht.

Laden Sie den lokalen Datenpfad 'aru.txt' in den Tabellennamen der Tabelle und überprüfen Sie dann die Tabelle employee1 mit dem Befehl Select * from table name

So zählen Sie die Anzahl der Datensätze in der Tabelle mit Select Anzahl(*) von txnrecords

Anhäufung :

Wählen Sie unter Tabellenname die Anzahl (DISTINCT-Kategorie) aus

Dieser Befehl zählt die verschiedenen Kategorien der Cate-Tabelle. Hier gibt es 3 verschiedene Kategorien.

Angenommen, es gibt eine andere Tabelle, in der f1 der Feldname der Kategorie ist.

Gruppierung:

Der Befehl Gruppe wird verwendet, um die Ergebnismenge nach einer oder mehreren Spalten zu gruppieren.

Wählen Sie Kategorie, Summe (Betrag) aus txt-Datensätzen, gruppiert nach Kategorie

Es berechnet den Betrag derselben Kategorie.

Das Ergebnis einer Tabelle wird in einer anderen Tabelle gespeichert.

Erstellen Sie die Tabelle newtablename als select * from oldtablename

Join-Befehl:

Hier wird eine weitere Tabelle im Namen erstellt 'Mails'

Operation beitreten ::

Eine Verknüpfungsoperation wird ausgeführt, um Felder aus zwei Tabellen unter Verwendung der jeweils gemeinsamen Werte zu kombinieren.

Linke äußere Verbindung ::

Das Ergebnis eines linken äußeren Joins (oder einfach eines linken Joins) für die Tabellen A und B enthält immer alle Datensätze der 'linken' Tabelle (A), auch wenn die Join-Bedingung keinen passenden Datensatz in der 'rechten' Tabelle findet (B).

Right Outer Join ::

Eine rechte äußere Verknüpfung (oder rechte Verknüpfung) ähnelt stark einer linken äußeren Verknüpfung, außer dass die Behandlung der Tabellen umgekehrt ist. Jede Zeile aus der „rechten“ Tabelle (B) wird mindestens einmal in der verknüpften Tabelle angezeigt.

Vollständige Teilnahme ::

Die verknüpfte Tabelle enthält alle Datensätze aus beiden Tabellen und gibt NULL-Werte für fehlende Übereinstimmungen auf beiden Seiten ein.

Was sind Namespaces in C ++?

Sobald wir mit Hive fertig sind, können wir den Befehl quit verwenden, um die Hive-Shell zu verlassen.

Hive verlassen

Hive ist nur ein Teil des großen Puzzles namens Big Data und Hadoop. Hadoop ist viel mehr als nur Hive. Klicken Sie unten, um zu sehen, welche anderen Fähigkeiten Sie in Hadoop beherrschen sollten.

Hast du eine Frage an uns? Bitte erwähnen Sie es in den Kommentaren und wir werden uns bei Ihnen melden.

Zusammenhängende Posts:

7 Möglichkeiten, wie Big Data-Schulungen Ihre Organisation verändern können

Hive-Datenmodelle