Wollen Sie wissen, welche Arten von Hive-Tabellen es gibt und wie sie sich voneinander unterscheiden?
Nachdem wir die Grundlagen von Hive-Tabellen in Hive-Datenmodellen erörtert haben, wollen wir nun den Hauptunterschied zwischen internen und externen Hive-Tabellen erforschen.
In diesem Artikel werden wir die zwei verschiedenen Arten von Hive-Tabellen erörtern, nämlich die interne Tabelle (verwaltete Tabelle) und die externe Tabelle. Anschließend werden die Unterschiede zwischen internen Hive-Tabellen und externen Tabellen erläutert. Wir werden auch verschiedene Fälle sehen, in denen wir diese Hive-Tabellen verwenden können.
So, lassen Sie uns mit Hive internen Tabellen und externen Tabellen beginnen.
Bleiben Sie auf dem Laufenden mit den neuesten Technologietrends
Join DataFlair on Telegram!!
- Einführung in Hive Interne und Externe Tabellen
- Hive Interne Tabelle
- Hive Externe Tabelle
- Unterschied zwischen interner und externer Hive-Tabelle
- Load-Semantik
- a. Interne Tabelle
- b. Externe Tabelle
- DROP-Semantik
- a. Interne Tabelle
- b. Externe Tabelle
- TRUNCATE-Unterstützung
- ACID Support
- Query Result Caching
- Wann sollte man die interne und externe Tabelle verwenden?
- Hive Interne Tabelle
- Hive External Table
- Schlussfolgerung
Einführung in Hive Interne und Externe Tabellen
Grundsätzlich kennt Hive zwei verschiedene Arten von Tabellen: Die interne Tabelle und die externe Tabelle. Die Interne Tabelle ist auch als verwaltete Tabelle bekannt.
Wir können die internen oder externen Tabellen mit der DESCRIBE FORMATTED table_name
-Anweisung in Hive identifizieren, die je nach Tabellentyp entweder MANAGED_TABLE
oder EXTERNAL_TABLE
anzeigt.
Hive Interne Tabelle
Hive besitzt die Daten für die internen Tabellen.
Sie ist die Standardtabelle in Hive. Wenn der Benutzer eine Tabelle in Hive erstellt, ohne sie als extern zu spezifizieren, wird standardmäßig eine interne Tabelle an einem bestimmten Ort im HDFS erstellt.
Standardmäßig wird eine interne Tabelle in einem Ordnerpfad erstellt, der dem Verzeichnis /user/hive/warehouse im HDFS entspricht. Wir können den Standardspeicherort während der Tabellenerstellung mit der Eigenschaft location überschreiben.
Wenn wir die verwaltete Tabelle oder Partition löschen, werden die Tabellendaten und die mit dieser Tabelle verbundenen Metadaten aus dem HDFS gelöscht.
Hive Externe Tabelle
Hive verwaltet die Daten der Externen Tabelle nicht.
Wir erstellen eine externe Tabelle für die externe Verwendung, wenn wir die Daten außerhalb des Hive nutzen wollen.
Externe Tabellen werden außerhalb des Warehouse-Verzeichnisses gespeichert. Sie können auf Daten zugreifen, die in Quellen wie entfernten HDFS-Speicherorten oder Azure Storage Volumes gespeichert sind.
Wenn wir die externe Tabelle löschen, werden nur die mit der Tabelle verknüpften Metadaten gelöscht, die Tabellendaten bleiben von Hive unangetastet.
Wir können die externe Tabelle erstellen, indem wir das Schlüsselwort EXTERNAL in der Anweisung Hive create table angeben.
Unterschied zwischen interner und externer Hive-Tabelle
Lassen Sie uns nun den Unterschied zwischen den beiden Hive-Tabellen sehen. Die Hauptunterschiede zwischen den internen und externen Tabellen in Hive sind:
Load-Semantik
Die Load-Semantik ist in beiden Tabellen unterschiedlich. Sehen wir uns den Unterschied in der Ladesemantik zwischen der internen Tabelle und der externen Tabelle an.
a. Interne Tabelle
Wenn wir Daten in eine interne Tabelle laden, dann verschiebt Hive die Daten in das Warehouse-Verzeichnis.
Zum Beispiel:
Hier in diesem Beispiel erstellen wir eine Tabelle ‚internaldemo‘. Wenn wir Daten in die Tabelle ‚internaldemo‘ laden, verschiebt Hive die Daten in das Warehouse-Verzeichnis.
Lernen Sie die Apache Hive-Installation auf Ubuntu, um Hive-Abfragen auszuführen.
Nun laden Sie Daten in die oben erstellte interne Tabelle.
Bei der Beschreibung der Tabelle sehen wir, dass die Tabellendaten in das Hive-Warehouse-Verzeichnis verschoben werden.
b. Externe Tabelle
Mit dem Schlüsselwort EXTERNAL weiß Hive, dass es die Tabellendaten nicht verwaltet und verschiebt die Daten daher nicht in sein Warehouse-Verzeichnis. Hive prüft nicht einmal, ob der externe Speicherort zum Zeitpunkt der Definition existiert oder nicht.
Beispiel:
In diesem Beispiel erstellen wir eine externe Tabelle „external_demo“ an dem angegebenen Speicherort „/home/dataflair/“. Beim Laden der Daten in die externe Tabelle verschiebt der Hive die Tabellendaten nicht in sein Warehouse-Verzeichnis.
Nun laden wir Daten in die oben erstellte externe Tabelle.
Beim Durchsuchen der Tabelle können wir sehen, dass die Daten der Hive-Tabelle nicht in das Hive-Warehouse-Verzeichnis verschoben werden. Sie werden an dem Ort gespeichert, der bei der Erstellung der Tabelle angegeben wurde.
DROP-Semantik
Wie die Ladesemantik, so ist auch die Drop-Semantik in beiden Tabellen unterschiedlich. Sehen wir uns den Unterschied in der Drop-Semantik zwischen der internen Tabelle und der externen Tabelle an.
a. Interne Tabelle
Beim Löschen der internen Tabelle werden sowohl die Tabellendaten als auch die mit der Tabelle verbundenen Metadaten gelöscht.
Beispiel:
In diesem Beispiel löschen wir die verwaltete Tabelle „internaldemo“. Sie können sehen, dass sowohl die Metadaten der Tabelle als auch die Tabellendaten gelöscht werden.
Die Tabellendaten werden ebenfalls aus dem HDFS gelöscht.
b. Externe Tabelle
Das Löschen der externen Tabelle löscht nur die Metadaten der Tabelle. Der Inhalt der Tabelle bleibt unangetastet.
Beispiel:
In diesem Beispiel können wir sehen, dass beim Löschen der externen Tabelle „external demo“ der Inhalt der Tabelle noch im HDFS vorhanden ist.
TRUNCATE-Unterstützung
Der TRUNCATE-Befehl funktioniert nur für die interne Tabelle.
Beispiel:
In diesem Beispiel versuchen wir, den TRUNCATE-Befehl mit der Tabelle ‚externaldemo‘ zu verwenden. Wir werden eine Fehlermeldung erhalten, die besagt, dass die nicht verwaltete Tabelle ‚externaldemo‘ nicht abgeschnitten werden kann.
ACID Support
ACID/transactional funktioniert nur für die interne Tabelle. Sie funktionieren nicht für die externe Tabelle.
Query Result Caching
Query Result Caching, das die Ergebnisse einer ausgeführten Hive-Abfrage zur Wiederverwendung bei nachfolgenden Abfragen speichert, funktioniert nur für die interne Tabelle.
Das sind also einige Unterschiede zwischen der internen und der externen Hive-Tabelle.
Sehen wir uns nun an, wann man welche Hive-Tabelle verwenden sollte.
Wann sollte man die interne und externe Tabelle verwenden?
Hive Interne Tabelle
Wir können die interne Tabelle in folgenden Fällen verwenden:
- Bei der Erstellung von temporären Tabellen.
- Wenn es erforderlich ist, dass Hive den Lebenszyklus der Tabelle verwaltet.
- Und wenn wir keine Tabellendaten nach dem Löschen haben wollen.
Hive External Table
Wir können die externe Tabelle in folgenden Fällen verwenden:
- Wenn wir die Tabelle nicht auf der Grundlage der vorhandenen Tabelle erstellen.
- Wenn wir Daten außerhalb von Hive verwenden müssen. Zum Beispiel werden die Dateien von einem bestehenden Programm gelesen und verarbeitet, das die Dateien nicht sperrt.
- Wenn wir die Tabellendaten auch nach DROP nicht komplett löschen wollen.
- Wenn die Daten nicht im Besitz von Hive sein sollen.
So, das war alles in Hive internen und externen Tabellen. Ich hoffe, dass Ihnen unsere Erklärung gefallen hat.
Schlussfolgerung
Nach der Lektüre des Artikels können wir feststellen, dass es zwei Arten von Hive-Tabellen gibt – die interne Tabelle, die auch als verwaltete Tabelle bekannt ist, und die externe Tabelle.
Die Daten der internen Tabelle werden von Hive verwaltet. Hive ist nicht für die Verwaltung der Daten der externen Tabelle verantwortlich.
Beim Löschen der internen Hive-Tabelle werden sowohl die Tabellendaten als auch die Metadaten gelöscht, beim Löschen der externen Hive-Tabelle werden nur die Metadaten der Tabelle gelöscht.
Siehe auch-
- Unterschiedliche Wege zur Konfiguration von Hive Metastore
- Beste Apache Hive Bücher zum Erlernen von Hive für Anfänger
Kommt es bei der Arbeit mit Hive internen und externen Tabellen zu Fragen? Fragen Sie unten.
Lernen Sie weiter!!!