Externe Tabellen
Gilt für: Databricks SQL Databricks Runtime
Unity Catalog und der integrierte Azure Databricks Hive-Metastore verwenden Standardspeicherorte für verwaltete Tabellen. Unity Catalog führt mehrere neue sicherungsfähige Objekte ein, um Daten im Cloudobjektspeicher Berechtigungen zu gewähren.
-
Ein Unity Catalog-Objekt, das zum Abstrahieren langfristiger Anmeldeinformationen von Cloudspeicheranbietern verwendet wird.
-
Ein Unity Catalog-Objekt, das verwendet wird, um einen Cloudobjektspeicher-URI mit einer Speicheranmeldeinformation zu verknüpfen.
-
Eine Unity Catalog-Tabelle, die in einem von Unity Catalog verwalteten externen Speicherort erstellt wurde.
Externe Tabelle
Eine externe Tabelle ist eine Tabelle, die über eine LOCATION
-Klausel auf einen externen Speicherpfad verweist.
Der Speicherpfad sollte an einem vorhandenen externen Speicherort enthalten sein, auf den Ihnen Zugriff gewährt wurde.
Alternativ können Sie auf Speicheranmeldeinformationen verweisen, auf die Ihnen Zugriff gewährt wurde.
Die Verwendung externer Tabellen abstrahiert den Speicherpfad, den externen Speicherort und die Speicheranmeldeinformationen für Benutzer, denen Zugriff auf die externe Tabelle gewährt wird.
Warnung
Wenn ein Schema (Datenbank) in Ihrem Hive-Metastore auf Arbeitsbereichsebene registriert ist, führt das Löschen dieses Schemas mithilfe der Option CASCADE
dazu, dass alle Dateien an diesem Schemaspeicherort rekursiv gelöscht werden, unabhängig vom Tabellentyp (verwaltet oder extern).
Wenn das Schema in einem Unity Catalog-Metastore registriert ist, werden die Dateien für verwaltete Unity Catalog-Tabellen rekursiv gelöscht. Die Dateien für externe Tabellen werden jedoch nicht gelöscht. Sie müssen diese Dateien direkt mithilde des Cloudspeicheranbieters verwalten.
Um versehentlichen Datenverlust zu vermeiden, sollten Sie daher niemals ein Schema in einem Hive-Metastore an einem Speicherort mit vorhandenen Daten registrieren. Sie sollten auch keine neuen externen Tabellen an einem Speicherort erstellen, der von Hive-Metastore-Schemas verwaltet wird oder verwaltete Unity Catalog-Tabellen enthält.
Grafische Darstellung von Beziehungen
Das folgende Diagramm veranschaulicht die Beziehung zwischen den folgenden Elementen:
- Speicheranmeldeinformationen
- Externe Speicherorte
- Externe Tabellen
- Speicherpfade
- IAM-Entitäten
- Azure-Dienstkonten
Beispiele
-- `finance` can create an external table over specific object within the `finance_loc` location
> CREATE TABLE sec_filings LOCATION 'abfss://container@storageaccount.dfs.core.windows.net/depts/finance/sec_filings';
-- Create or replace an external table from a query
> CREATE OR REPLACE TABLE sec_filings
LOCATION 'abfss://container@storageaccount.dfs.core.windows.net/depts/finance/sec_filings'
AS (SELECT * FROM current_filings);
-- Cannot list files under an external table without permissions on it
> LIST `abfss://container@storageaccount.dfs.core.windows.net/depts/finance/sec_filings`
Error
> LIST `abfss://container@storageaccount.dfs.core.windows.net/depts/finance/sec_filings/_delta_log`
Error
-- Grant access to sec_filings to all employees
> GRANT SELECT ON TABLE sec_filings TO employee;
-- Any member of the `employee` group can securely read sec_filings
> SELECT count(1) FROM sec_filings;
20
-- Any member of the `employee` group can list files under the sec_filings table
> LIST `abfss://container@storageaccount.dfs.core.windows.net/depts/finance/sec_filings`
_delta_log
> LIST `abfss://container@storageaccount.dfs.core.windows.net/depts/finance/sec_filings/_delta_log`
00000.json