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 den LOCATION 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.

Notebook: Erstellen und Verwalten einer externen Tabelle in Unity Catalog

Notebook abrufen