Externí tabulky

Platí pro: zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime

Katalog Unity a integrovaný metastore Azure Databricks Hive používají výchozí umístění pro spravované tabulky. Katalog Unity zavádí několik nových zabezpečitelných objektů pro udělení oprávnění k datům v cloudovém úložišti objektů.

Externí tabulka

Externí tabulka je tabulka , která odkazuje na cestu k externímu úložišti pomocí LOCATION klauzule.

Cesta k úložišti by měla být obsažena v existujícím externím umístění , ke kterému máte udělený přístup.

Případně můžete odkazovat na přihlašovací údaje úložiště, ke kterým máte udělený přístup.

Použití externích tabulek abstrahuje cestu k úložišti, externí umístění a přihlašovací údaje úložiště pro uživatele, kteří mají udělený přístup k externí tabulce.

Upozorňující

Pokud je ve vašem metastoru Hive na úrovni pracovního prostoru zaregistrované schéma (databáze), odstranění tohoto schématu pomocí CASCADE této možnosti způsobí, že se všechny soubory v tomto umístění schématu odstraní rekurzivně bez ohledu na typ tabulky (spravovaný nebo externí).

Pokud je schéma zaregistrované v metastoru katalogu Unity, odstraní se soubory spravovaných tabulek Katalogu Unity rekurzivně. Soubory pro externí tabulky se ale neodstraní. Tyto soubory musíte spravovat přímo pomocí poskytovatele cloudového úložiště.

Abyste se vyhnuli náhodné ztrátě dat, neměli byste nikdy registrovat schéma v metastoru Hive do umístění s existujícími daty. Ani byste neměli vytvářet nové externí tabulky v umístění spravovaném schématy metastoru Hive nebo obsahující spravované tabulky Katalogu Unity.

Grafické znázornění relací

Následující diagram popisuje vztah mezi:

  • přihlašovací údaje k úložišti
  • externí umístění
  • externí tabulky
  • cesty k úložišti
  • Entity IAM
  • Účty služeb Azure

Diagram ER externího umístění

Příklady

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