Freigeben über


Externe Tabellen

Gilt für: durch Häkchen mit „Ja“ markiert Databricks SQL durch Häkchen mit „Ja“ markiert 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.

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

ER-Diagramm des externen Speicherorts

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