Udostępnij za pośrednictwem


Tabele zewnętrzne

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime

Katalog Unity i wbudowane metadane Hive usługi Azure Databricks korzystają z domyślnych lokalizacji dla tabel zarządzanych. Unity Catalog wprowadza kilka nowych zabezpieczalnych obiektów, aby przydzielać uprawnienia do danych w magazynie obiektów w chmurze.

Tabela zewnętrzna

Tabela zewnętrzna to tabela, która odwołuje się do zewnętrznej ścieżki magazynu przy użyciu klauzuli LOCATION.

Ścieżka magazynu powinna znajdować się w istniejącej lokalizacji zewnętrznej, do której masz dostęp.

Alternatywnie możesz odwołać się do poświadczenia magazynu, do którego udzielono ci dostępu.

Korzystanie z tabel zewnętrznych ukrywa ścieżkę przechowywania, lokalizację zewnętrzną i poświadczenia przechowywania dla użytkowników, którym przyznano dostęp do tabeli zewnętrznej.

Ostrzeżenie

Jeśli schemat (baza danych) jest zarejestrowany w magazynie metadanych programu Hive na poziomie obszaru roboczego, usunięcie tego schematu przy użyciu opcji CASCADE powoduje ponowne usunięcie wszystkich plików w tej lokalizacji schematu niezależnie od typu tabeli (zarządzanego lub zewnętrznego).

Jeśli schemat jest zarejestrowany w magazynie metadanych wykazu Unity, pliki tabel zarządzanych wykazu Unity są usuwane rekursywnie. Jednak pliki dla zewnętrznych tabel nie są usuwane. Te pliki należy zarządzać bezpośrednio przy użyciu dostawcy magazynu w chmurze.

W związku z tym, aby uniknąć przypadkowej utraty danych, nigdy nie należy rejestrować schematu w magazynie metadanych Hive w lokalizacji z istniejącymi danymi. Nie należy również tworzyć nowych tabel zewnętrznych w lokalizacji zarządzanej przez schematy metadanych Hive lub zawierającej tabele zarządzane przez Unity Catalog.

Graficzna reprezentacja relacji

Na poniższym diagramie opisano relację między:

  • poświadczenia dostępu do magazynu danych
  • lokalizacje zewnętrzne
  • tabele zewnętrzne
  • ścieżki przechowywania
  • Jednostki IAM
  • Konta usług platformy Azure

Diagram ER lokalizacji zewnętrznej

Przykłady

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