HiveQL-Tutorial (Hive Query Language): Integrierte Operatoren

Inhaltsverzeichnis:

Anonim

Was ist HiveQL (Hive Query Language)?

Hive bietet eine CLI zum Schreiben von Hive-Abfragen mit Hive Query Language (HiveQL). Im Allgemeinen ähnelt die HQL-Syntax der SQL-Syntax, mit der die meisten Datenanalysten vertraut sind.

Die von SQL inspirierte Sprache von Hive unterscheidet den Benutzer von der Komplexität der Map Reduce-Programmierung. Es verwendet vertraute Konzepte aus der relationalen Datenbankwelt wie Tabellen, Zeilen, Spalten und Schemas, um das Lernen zu erleichtern.

Die meisten Interaktionen finden in der Regel über eine Befehlszeilenschnittstelle (Command Line Interface, CLI) statt. Hive bietet eine CLI zum Schreiben von Hive-Abfragen mit Hive Query Language (Hive-QL).

Im Allgemeinen ähnelt die HiveQL-Syntax der SQL-Syntax, mit der die meisten Datenanalysten vertraut sind. Hive unterstützt vier Dateiformate: TEXTFILE, SEQUENCEFILE, ORC und RCFILE (Record Columnar File).

  • Für die Speicherung von Einzelbenutzer-Metadaten verwendet Hive die Derby-Datenbank und
  • Für Mehrbenutzer-Metadaten oder gemeinsam genutzte Metadaten verwendet Hive MYSQL

Eingebaute Operatoren

Hive bietet integrierte Operatoren für Datenoperationen, die in den im Hive-Warehouse vorhandenen Tabellen implementiert werden können.

Diese Operatoren werden für mathematische Operationen an Operanden verwendet und geben einen bestimmten Wert gemäß der angewendeten Logik zurück.

Arten von eingebauten Operatoren in HIVE sind:

  • Vergleichsoperatoren
  • Rechenzeichen
  • Logische Operatoren
  • Operatoren für komplexe Typen
  • Komplexe Konstruktoren

Vergleichsoperatoren:

Wir verwenden relationale Operatoren für Beziehungsvergleiche zwischen zwei Operanden.

  • Operatoren wie gleich, nicht gleich, kleiner als, größer als ... usw.
  • Die Operandentypen sind alle Zahlentypen in diesen Operatoren.

In der folgenden Tabelle finden Sie Details zu relationalen Operatoren und deren Verwendung.

Eingebauter Bediener Beschreibung Operand
X = Y. TRUE, wenn Ausdruck X dem Ausdruck Y entspricht. Andernfalls FALSE. Es werden alle primitiven Typen verwendet
X! = Y. TRUE, wenn Ausdruck X nicht Ausdruck Y entspricht. Andernfalls FALSE. Es werden alle primitiven Typen verwendet
X TRUE, wenn Ausdruck X kleiner als Ausdruck Y ist. Andernfalls FALSE. Es werden alle primitiven Typen verwendet
X <= Y. TRUE, wenn Ausdruck X kleiner oder gleich Ausdruck Y ist. Andernfalls FALSE. Es werden alle primitiven Typen verwendet
X> Y. TRUE, wenn Ausdruck X größer als Ausdruck Y ist. Andernfalls FALSE. Es werden alle primitiven Typen verwendet
X> = Y. TRUE, wenn Ausdruck X größer oder gleich Ausdruck Y ist. Andernfalls FALSE. Es werden alle primitiven Typen verwendet
X IST NULL TRUE, wenn Ausdruck X NULL ergibt, andernfalls FALSE. Es dauert alle Arten
X IST NICHT NULL FALSE Wenn Ausdruck X NULL ergibt, andernfalls TRUE. Es dauert alle Arten
X WIE Y. TRUE Wenn das Zeichenfolgenmuster X mit Y übereinstimmt, andernfalls FALSE. Nimmt nur Strings
X RLIKE Y. NULL, wenn X oder Y NULL ist, TRUE, wenn eine Teilzeichenfolge von X mit dem regulären Java-Ausdruck Y übereinstimmt, andernfalls FALSE. Nimmt nur Strings
X REGEXP Y. Gleich wie RLIKE. Nimmt nur Strings

Arithmetische Operatoren :

Wir verwenden arithmetische Operatoren, um arithmetische Operationen an Operanden durchzuführen

  • Arithmetische Operationen wie Addition, Subtraktion, Multiplikation und Division zwischen Operanden verwenden wir diese Operatoren.
  • Die Operandentypen sind in diesen Operatoren alle Zahlentypen

Beispielbeispiel:

2 + 3 ergibt Ergebnis 5.

In diesem Beispiel ist '+' der Operator und 2 und 3 sind Operanden. Der Rückgabewert ist 5

Die folgende Tabelle enthält Details zu arithmetischen Operatoren

Eingebauter Bediener Beschreibung Operand
X + Y. Es wird die Ausgabe des Hinzufügens von X- und Y-Wert zurückgegeben. Es werden alle Nummerntypen verwendet
X - Y. Es wird die Ausgabe des Subtrahierens von Y vom X-Wert zurückgegeben. Es werden alle Nummerntypen verwendet
X * Y. Es wird die Ausgabe der Multiplikation von X- und Y-Werten zurückgegeben. Es werden alle Nummerntypen verwendet
X / Y. Es wird die Ausgabe der Division von Y von X zurückgegeben. Es werden alle Nummerntypen verwendet
X% Y. Der Rest, der sich aus der Division von X durch Y ergibt, wird zurückgegeben. Es werden alle Nummerntypen verwendet
X & Y. Es wird die Ausgabe von bitweisem UND von X und Y zurückgegeben. Es werden alle Nummerntypen verwendet
X | Y. Es wird die Ausgabe von bitweisem ODER von X und Y zurückgegeben. Es werden alle Nummerntypen verwendet
X Y. Es wird die Ausgabe von bitweisem XOR von X und Y zurückgegeben. Es werden alle Nummerntypen verwendet
~ X. Es wird die Ausgabe von bitweisem NICHT von X zurückgegeben. Es werden alle Nummerntypen verwendet

Logische Operatoren:

Wir verwenden logische Operatoren, um logische Operationen an Operanden auszuführen

  • Logische Operationen wie UND, ODER, NICHT zwischen Operanden verwenden wir diese Operatoren.
  • Die Operandentypen sind in diesen Operatoren alle vom Typ BOOLEAN

Die folgende Tabelle enthält Details zu logischen Operatoren

Betreiber Beschreibung Operanden
X UND Y. TRUE, wenn sowohl X als auch Y TRUE sind, andernfalls FALSE. Nur boolesche Typen
X && Y. Wie X UND Y, aber hier verwenden wir das Symbol && Nur boolesche Typen
X ODER Y. TRUE, wenn entweder X oder Y oder beide TRUE sind, andernfalls FALSE. Nur boolesche Typen
X || Y. Wie X ODER Y, aber hier verwenden wir || Symbol Nur boolesche Typen
NICHT X. TRUE wenn X FALSE ist, andernfalls FALSE. Nur boolesche Typen
! X. Gleich wie NICHT X, aber hier verwenden wir! Symbol Nur boolesche Typen

Operatoren für komplexe Typen:

In der folgenden Tabelle finden Sie Details zu Operatoren für komplexe Typen. Dies sind Operatoren, die einen anderen Mechanismus für den Zugriff auf Elemente in komplexen Typen bereitstellen.

Betreiber Operanden Beschreibung
Ein] A ist ein Array und n ist ein ganzzahliger Typ Es wird das n-te Element im Array A zurückgegeben. Das erste Element hat den Index 0
M [Taste] M ist eine Karte und der Schlüssel hat den Typ K. Es werden die Werte zurückgegeben, die zum Schlüssel in der Karte gehören

Komplexe Konstruktoren:

Die folgende Tabelle enthält Details zu Konstruktoren vom Typ Komplex. Es werden Instanzen für komplexe Datentypen erstellt. Hierbei handelt es sich um komplexe Datentypen wie Array-, Map- und Struct-Typen in Hive.

In diesem Abschnitt werden die Operationen beschrieben, die für Konstruktoren vom Typ Komplex ausgeführt werden.

Betreiber Operanden Beschreibung
Array (val1, val2,…) Es wird ein Array mit den angegebenen Elementen wie val1, val2 erstellt
Create_ union (tag, val1, val2,…) Es wird ein Vereinigungstyp mit den Werten erstellt, die vom Tag-Parameter erwähnt werden
Karte (Schlüssel1, Wert1, Schlüssel2, Wert2,…) Es wird eine Karte mit den in Operanden angegebenen Schlüssel / Wert-Paaren erstellt
Named_struct (name1, val1, name2, val2,…) Es wird eine Struktur mit den angegebenen Feldnamen und Werten erstellt, die in Operanden angegeben sind
STRUKT (val1, val2, val3,…) Erstellt eine Struktur mit den angegebenen Feldwerten. Strukturfeldnamen sind col1, col2 ,.

Zusammenfassung:

Hive bietet einige integrierte Funktionen und Operatoren zum Bearbeiten der im Hive-Lager gespeicherten Daten. Hive ähnelt der SQL-Sprache, die alle Arten von Datenoperationen und Abfragen von Tabellen und Datenbanken unterstützt.