Externí tabulky
Platí pro: Databricks SQL
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ů.
-
Objekt katalogu Unity používaný k abstrakci dlouhodobých přihlašovacích údajů od poskytovatelů cloudového úložiště.
-
Objekt katalogu Unity použitý k přidružení identifikátoru URI cloudového úložiště objektů k přihlašovacím údajům úložiště.
-
Tabulka katalogu Unity vytvořená v externím umístění spravovaném katalogem Unity .
Externí tabulka
Externí tabulka je tabulka, která odkazuje na cestu k externímu úložišti pomocí klauzule LOCATION
.
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í možnosti CASCADE
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 rekurzivně soubory pro tabulky spravované katalogem Unity . 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 metastore Hive nebo které obsahují 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
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