Arbeiten mit externen Tabellen
Externe Tabellen speichern Daten in einem Verzeichnis im Cloudobjektspeicher in Ihrem Cloudmandanten. Sie müssen einen Speicherort angeben, wenn Sie eine externe Tabelle definieren.
Databricks empfiehlt die Verwendung externer Tabellen nur, wenn Sie ohne Verwendung von Compute in Azure Databricks direkten Zugriff auf die Daten benötigen. Unity Catalog-Berechtigungen werden nicht erzwungen, wenn Benutzer über externe Systeme auf Datendateien zugreifen.
Hinweis
Dieser Artikel konzentriert sich auf externe Tabellen im Unity Catalog. Externe Tabellen im älteren Hive-Metaspeicher weisen unterschiedliche Verhaltensweisen auf. Weiter Informationen finden Sie unter Datenbankobjekte im Legacy-Hive-Metastore.
Arbeiten mit externen Tabellen
Azure Databricks verwaltet nur die Metadaten für externe Tabellen und verwendet nicht den verwalteten Speicherort, der dem enthaltenden Schema zugeordnet ist. Die Tabellenregistrierung in Unity Catalog ist nur ein Zeiger auf Datendateien. Wenn Sie eine externe Tabelle löschen, werden die Datendateien nicht gelöscht.
Wenn Sie eine externe Tabelle erstellen, können Sie entweder ein vorhandenes Verzeichnis mit Datendateien als Tabelle registrieren oder einen Pfad zum Erstellen neuer Datendateien angeben.
Für externe Tabellen können die folgenden Dateiformate verwendet werden:
- DELTA
- CSV
- JSON
- AVRO
- PARQUET
- ORC
- TEXT
Erstellen einer externen Tabelle
Zum Erstellen einer externen Tabelle können SQL-Befehle oder Dataframe-Schreibvorgänge verwendet werden.
Voraussetzungen
Zum Erstellen einer externe Tabelle müssen Sie die folgenden Berechtigungsanforderungen erfüllen:
- Die
CREATE EXTERNAL TABLE
-Berechtigung für einen externen Speicherort, die Zugriff auf denLOCATION
gewährt, auf den von der externen Tabelle zugegriffen wird. - Die
USE SCHEMA
-Berechtigung für das übergeordnete Schema der Tabelle. - Die
USE CATALOG
-Berechtigung für den übergeordneten Katalog der Tabelle. - Die
CREATE TABLE
-Berechtigung für das übergeordnete Schema der Tabelle.
Weitere Informationen zum Konfigurieren externer Speicherorte finden Sie unter Erstellen eines externen Speicherorts zum Verbinden des Cloudspeichers mit Azure Databricks.
Beispiele für SQL-Befehle
Verwenden Sie eines der folgenden Befehlsbeispiele in einem Notebook oder im SQL-Abfrage-Editor, um eine externe Tabelle zu erstellen.
Ersetzen Sie in den folgenden Beispielen die Platzhalterwerte:
<catalog>
: Der Name des Katalogs, der die Tabelle enthalten wird.<schema>
: Der Name des Schemas, das die Tabelle enthalten wird.<table-name>
: Einen Namen für die Tabelle.<column-specification>
: Name und Datentyp für jede Spalte.<bucket-path>
: Der Pfad zum Cloudspeicher-Bucket, in dem die Tabelle erstellt wird.<table-directory>
: Ein Verzeichnis, in dem die Tabelle erstellt wird. Verwenden Sie ein eindeutiges Verzeichnis für jede Tabelle.
CREATE TABLE <catalog>.<schema>.<table-name>
(
<column-specification>
)
LOCATION 'abfss://<bucket-path>/<table-directory>';
Weitere Informationen zum Parametern für die Tabellenerstellung finden Sie unter CREATE TABLE.
DataFrame-Schreibvorgänge
Viele Benutzer erstellen externe Tabellen aus Abfrageergebnissen oder DataFrame-Schreibvorgängen. Die folgenden Artikel veranschaulichen einige der vielen Muster, die Sie zum Erstellen einer externen Tabelle in Azure Databricks verwenden können:
Löschen einer externen Tabelle
Um eine Tabelle ablegen zu können, müssen Sie deren Besitzer sein. Führen Sie den folgenden SQL-Befehl aus, um eine externe Tabelle zu löschen:
DROP TABLE IF EXISTS catalog_name.schema_name.table_name;
Wenn Sie eine externe Tabelle löschen, löscht Unity Catalog die zugrunde liegenden Daten im Cloud-Speicher nicht. Sie müssen die zugrunde liegenden Datendateien direkt löschen, wenn Sie die der Tabelle zugeordneten Daten entfernen müssen.
Beispielnotebook: Erstellen externer Tabellen
Mit dem folgenden Beispielnotebook können Sie einen Katalog, ein Schema und eine externe Tabelle erstellen und die Berechtigungen dafür verwalten.