Einführung in die externe Tabelle in Hive
Eine ist eine Tabelle, die das Schema oder die Metadaten externer Dateien beschreibt. Grundsätzlich gibt es in HIVE zwei Arten von Tabellen: Verwaltete oder interne Tabellen und externe Tabellen. Der Hauptzweck der Definition einer externen Tabelle besteht darin, auf Daten zuzugreifen und Abfragen auszuführen, die außerhalb der Struktur gespeichert sind. Diese Datendateien können in anderen Tools wie Pig, Azure Storage Volumes (ASV) oder einem beliebigen entfernten HDFS-Speicherort gespeichert werden. Hive geht davon aus, dass es kein Eigentum an den Daten für externe Tabellen hat und daher die Daten nicht wie in verwalteten oder internen Tabellen verwalten muss. Bei externen Tabellen werden Daten beim Löschen der Tabelle nicht gelöscht.
Arbeiten und Erstellen externer Tabellen in Hive
Standardmäßig wird in Hive das Tabellenverzeichnis unter dem Datenbankverzeichnis erstellt. Die Ausnahme ist die Standarddatenbank. Der Speicherort user / hive /warehouse hat kein Verzeichnis, sodass das Verzeichnis der Standarddatenbanktabellen direkt unter diesem Speicherort erstellt wird. Es wird empfohlen, externe Tabellen zu erstellen, wenn wir den Standardspeicherort nicht verwenden möchten.
Starten Sie Ihren kostenlosen Data Science-Kurs
Hadoop, Data Science, Statistik & andere
Eine externe Tabelle wird im Allgemeinen verwendet, wenn sich Daten außerhalb der Struktur befinden.
Lassen Sie uns mit dem folgenden Befehl eine externe Tabelle mit dem Schlüsselwort „EXTERNAL“ erstellen.
CREATE EXTERNAL TABLE if not exists students
(
Roll_id Int,
Class Int,
Name String,
Rank Int)
Row format delimited fields terminated by ‘,’
Location ‘/data/students_details’;
Ausgabe:
Eine externe Tabelle kann auch durch Kopieren des Schemas und der Daten einer vorhandenen Tabelle mit dem folgenden Befehl erstellt werden:
CREATE EXTERNAL TABLE if not exists students_v2 LIKE students
Location ‘/data/students_details’;
Wenn wir das Schlüsselwort EXTERNAL weglassen, ist die neu erstellte Tabelle extern, wenn die Basistabelle extern ist. Wenn die Basistabelle mit dem Schlüsselwort external verwaltet wird, ist die neu erstellte Tabelle extern.
Um den Typ der erstellten Tabelle zu identifizieren, kann die DESCRIBE FORMATTED-Klausel verwendet werden. Am Ende der detaillierten Tabellenbeschreibung lautet der Ausgabetabellentyp entweder „Verwaltete Tabelle“ oder „Externe Tabelle“.
Partitionierte Tabellen helfen bei der Aufteilung der Daten in logische Untersegmente oder Partitionen, wodurch die Abfrageleistung effizienter wird. Eine partitionierte Tabelle kann wie unten dargestellt erstellt werden.
CREATE EXTERNAL TABLE if not exists students
( roll_id Int,
name String,
Rank Int)
partitioned by (class Int)
Row format delimited fields terminated by ‘\t’
Ausgabe:
Es kann vorkommen, dass die Partition oder Struktur einer externen Tabelle geändert wird, dann können mit diesem Befehl die Metadateninformationen aktualisiert werden:
MSCK REPAIR TABLE external_table_name
1. Partitionierte externe Tabelle
Beim Erstellen einer nicht partitionierten externen Tabelle ist die LOCATION-Klausel erforderlich. Für eine partitionierte externe Tabelle ist dies jedoch nicht erforderlich. Die ALTER TABLE-Anweisung ist erforderlich, um Partitionen zusammen mit der LOCATION-Klausel hinzuzufügen.
ALTER TABLE students ADD PARTITION (class =10)
Location ‘here://master_server/data/log_messages/2012/01/02’;
Von Hive v0.8.ab 0 können mehrere Partitionen in derselben Abfrage hinzugefügt werden. Außerdem kann der Speicherort für eine Partition durch eine Abfrage geändert werden, ohne die Daten vom alten Speicherort zu verschieben oder zu löschen.
ALTER TABLE students_v2 partition( class = 10)
Set location ‘s2n://buckets/students_v2/10’;
Um eine Partition zu löschen, wird die folgende Abfrage verwendet:
ALTER TABLE students DROP IF EXISTS PARTITION (class = 12);
Dieser Befehl löscht die Daten und Metadaten der Partition für verwaltete oder interne Tabellen. Bei externen Tabellen werden die Daten jedoch nicht gelöscht.
2. Operationen auf der externen Tabelle
Die Operationen wie SELECT, JOINS, ORDER BY, GROUP BY, CLUSTER BY und andere werden auf externen Tabellen implementiert. Externe Tabellen können einfach mit anderen Tabellen verknüpft werden, um komplexe Datenmanipulationen durchzuführen. Partitionierungs-, Bucketing- und Indexierungskonzepte werden auch für externe Tabellen auf die gleiche Weise implementiert wie für verwaltete oder interne Tabellen. Alle Konfigurationseigenschaften in Hive sind auch auf externe Tabellen anwendbar. Zum Beispiel durch Setzen von skip.Header.Linie. Count = 1, wir können die Kopfzeile aus der Datendatei überspringen.
Alle Dateiformate wie ORC, AVRO, TEXTFILE, SEQUENCE FILE oder PARQUET werden für die internen und externen Tabellen von Hive unterstützt. Beim Erstellen einer Tabelle wird die Positionszuordnung verwendet, um Daten in die Spalte einzufügen, und diese Reihenfolge wird beibehalten.
Datentypen in externen Tabellen: In externen Tabellen werden die Sammlungsdatentypen zusammen mit primitiven Datentypen (wie integer, string, character) unterstützt. Es ist notwendig, die Trennzeichen der Elemente von Sammlungsdatentypen (wie Array, Struktur und Map) anzugeben.
Wann werden externe Tabellen in Hive verwendet?
Im Allgemeinen werden interne Tabellen in Hive erstellt. Für bestimmte Szenarien kann jedoch eine externe Tabelle hilfreich sein. Dies sind:
- Wenn Daten außerhalb des Hive- oder HDFS-Speicherorts abgelegt werden, hilft das Erstellen einer externen Tabelle, da die anderen Tools, die die Tabelle möglicherweise verwenden, diese Dateien nicht sperren.
- Eine externe Tabelle kann erstellt werden, wenn keine Daten in einer vorhandenen Tabelle vorhanden sind (d. h. mit der SELECT-Klausel).
- Die externe Tabelle muss erstellt werden, wenn Hive nicht Eigentümer der Daten oder anderer Datensteuerelemente sein soll.
- Die externe Tabelle verhindert auch einen versehentlichen Datenverlust, da beim Löschen einer externen Tabelle die Basisdaten nicht gelöscht werden. Dies dient als Sicherheitsmerkmal im Bienenstock. Dies ist der Grund, warum TRUNCATE auch für externe Tabellen nicht funktioniert.
Funktionen
Es gibt bestimmte Funktionen in Hive, die nur für verwaltete oder externe Tabellen verfügbar sind. Dies sind:
- Befehle wie ARCHIVE/UNARCHIVE/TRUNCATE/CONCATENATE/MERGE funktionieren nur für interne Tabellen.
- Die ACID funktioniert nur für verwaltete oder interne Tabellen.
- DROPKlausel löscht nur Metadaten für externe Tabellen. Es löscht jedoch zugrunde liegende Daten auch für interne Tabellen.
- Das Zwischenspeichern von Abfrageergebnissen ist nur für verwaltete Tabellen möglich.
- Diese Einschränkung ist nur für externe Tabellen zulässig.
- Einige Funktionen von materialisierten Ansichten funktionieren nur für verwaltete Tabellen.
Fazit
In diesem Tutorial haben wir gesehen, wann und wie externe Tabellen in Hive verwendet werden. Die Highlights dieses Tutorials sind einen Hintergrund auf den Tabellen andere als verwaltet und Analyse von Daten außerhalb der Struktur zu erstellen.
Empfohlene Artikel
Dies ist eine Anleitung zur externen Tabelle in Hive. Hier diskutieren wir die Einführung externer Tabellen in die Struktur und die Funktionen und Abfragen. Sie können auch unsere anderen verwandten Artikel durchgehen, um mehr zu erfahren –
- Partitionierung in Hive
- Map Join in Hive
- Hive-Datentypen
- Hive-Installation
- Anleitung zum Hive-Cluster von