Video: HDInsight: Fast Interactive Queries with Hive on LLAP | Azure Friday 2024
Hive ist ein Batch-orientierter Data-Warehousing-Layer, der auf den Kernelementen von Hadoop (HDFS und MapReduce) aufbaut. ist sehr nützlich in Big Data. Es bietet Benutzern, die SQL kennen, eine einfache SQL-lite-Implementierung namens HiveQL, ohne den Zugriff über Mapper und Reducer zu opfern. Mit Hive erhalten Sie das Beste aus beiden Welten: SQL-ähnlicher Zugriff auf strukturierte Daten und anspruchsvolle Big Data-Analyse mit MapReduce.
Im Gegensatz zu den meisten Data Warehouses ist Hive nicht für schnelle Antworten auf Anfragen ausgelegt. In der Tat können Abfragen je nach Komplexität mehrere Minuten oder sogar Stunden dauern. Infolgedessen wird Hive am besten für Data Mining und tiefere Analysen verwendet, für die kein Echtzeitverhalten erforderlich ist. Da es auf der Hadoop-Grundlage basiert, ist es sehr erweiterbar, skalierbar und widerstandsfähig, etwas, das das durchschnittliche Data Warehouse nicht ist.
Hive verwendet drei Mechanismen zur Datenorganisation:
-
Tabellen: Hive-Tabellen sind die gleichen wie RDBMS-Tabellen, die aus Zeilen und Spalten bestehen. Da Hive auf dem Hadoop HDFS geschichtet ist, werden Tabellen Verzeichnissen im Dateisystem zugeordnet. Darüber hinaus unterstützt Hive Tabellen, die in anderen nativen Dateisystemen gespeichert sind.
-
Partitionen: Eine Hive-Tabelle kann eine oder mehrere Partitionen unterstützen. Diese Partitionen werden Unterverzeichnissen im zugrunde liegenden Dateisystem zugeordnet und repräsentieren die Verteilung der Daten in der gesamten Tabelle. Beispiel: Wenn eine Tabelle Autos, mit einem Schlüsselwert von 12345 und ein Herstellerwert Ford heißt, lautet der Pfad zur Partition / hivewh / Autos / kv = 12345 / Ford.
-
Buckets: Die Daten können wiederum in Buckets aufgeteilt werden. Buckets werden als Dateien im Partitionsverzeichnis im zugrunde liegenden Dateisystem gespeichert. Die Buckets basieren auf dem Hash einer Spalte in der Tabelle. Im vorherigen Beispiel haben Sie möglicherweise einen Bucket namens Focus, , der alle Attribute eines Ford Focus auto enthält.
Hive-Metadaten werden extern im "Metastore" gespeichert. "Der Metastore ist eine relationale Datenbank, die die detaillierten Beschreibungen des Hive-Schemas enthält, einschließlich Spaltentypen, Eigentümern, Schlüssel- und Wertedaten, Tabellenstatistiken und so weiter. Der Metastore kann Katalogdaten mit anderen Metadatendiensten im Hadoop-Ökosystem synchronisieren.
Hive unterstützt eine SQL-ähnliche Sprache namens HiveQL. HiveQL unterstützt viele der SQL-Primitiven wie select, join, aggregate, union all und so weiter. Es unterstützt auch mehrseitige Abfragen und Einfügungen, indem die Eingabedaten in einer einzigen HiveQL-Anweisung gemeinsam genutzt werden. HiveQL kann erweitert werden, um benutzerdefinierte Aggregation, Spaltentransformation und eingebettete MapReduce-Skripts zu unterstützen.