Share via


Externe tabellen

Van toepassing op:check marked yes Databricks SQL check marked yes Databricks Runtime

Unity Catalog en de ingebouwde Azure Databricks Hive-metastore gebruiken standaardlocaties voor beheerde tabellen. Unity Catalog introduceert verschillende nieuwe beveiligbare objecten om bevoegdheden te verlenen aan gegevens in de cloudobjectopslag.

  • opslagreferenties

    Een Unity Catalog-object dat wordt gebruikt om referenties voor de lange termijn te abstraheren van cloudopslagproviders.

  • externe locatie

    Een Unity Catalog-object dat wordt gebruikt om een opslag-URI voor cloudobjecten te koppelen aan een opslagreferentie.

  • externe tabel

    Een Unity Catalog-tabel die is gemaakt op een door de Unity Catalog beheerde externe locatie.

Externe tabel

Een externe tabel is een tabel die verwijst naar een extern opslagpad met behulp van een LOCATION component.

Het opslagpad moet zich bevinden op een bestaande externe locatie waaraan u toegang hebt gekregen.

U kunt ook verwijzen naar een opslagreferentie waaraan u toegang hebt gekregen.

Als u externe tabellen gebruikt, worden het opslagpad, de externe locatie en de opslagreferentie verwijderd voor gebruikers die toegang hebben tot de externe tabel.

Waarschuwing

Als een schema (database) is geregistreerd in de Hive-metastore op werkruimteniveau, wordt dat schema verwijderd met behulp van de CASCADE optie, waardoor alle bestanden op die schemalocatie recursief worden verwijderd, ongeacht het tabeltype (beheerd of extern).

Als het schema is geregistreerd bij een Unity Catalog-metastore, worden de bestanden voor beheerde tabellen in Unity Catalog recursief verwijderd. De bestanden voor externe tabellen worden echter niet verwijderd. U moet deze bestanden rechtstreeks beheren met behulp van de cloudopslagprovider.

Om onbedoeld gegevensverlies te voorkomen, moet u daarom nooit een schema registreren in een Hive-metastore op een locatie met bestaande gegevens. U moet ook geen nieuwe externe tabellen maken op een locatie die wordt beheerd door Hive-metastoreschema's of die beheerde tabellen van Unity Catalog bevatten.

Grafische weergave van relaties

In het volgende diagram wordt de relatie tussen:

  • opslagreferenties
  • externe locaties
  • externe tabellen
  • opslagpaden
  • IAM-entiteiten
  • Azure-serviceaccounts

External location ER diagram

Voorbeelden

-- `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