Tabele zewnętrzne

Dotyczy:check marked yes Databricks SQL check marked yes Databricks Runtime

Wykaz aparatu Unity i wbudowany magazyn metadanych Hive usługi Azure Databricks używają domyślnych lokalizacji dla tabel zarządzanych. Wykaz aparatu Unity wprowadza kilka nowych zabezpieczanych obiektów w celu udzielenia uprawnień 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 udzielono dostępu.

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

Używanie tabel zewnętrznych oddziela ścieżkę magazynu, lokalizację zewnętrzną i poświadczenia magazynu dla użytkowników, którym udzielono dostępu 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 CASCADE opcji 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 aparatu Unity, pliki tabel zarządzanych wykazu aparatu Unity są usuwane rekursywnie. Pliki tabel zewnętrznych nie są jednak 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 magazynu metadanych Hive lub zawierające tabele zarządzane przez wykaz aparatu Unity.

Graficzna reprezentacja relacji

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

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

External location ER diagram

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