Usare tabelle esterne
Le tabelle esterne archiviano i dati in una directory nell'archiviazione di oggetti cloud nel tenant cloud. È necessario specificare un percorso di archiviazione quando si definisce una tabella esterna.
Databricks consiglia di usare tabelle esterne solo quando è necessario anche l'accesso diretto ai dati dai client non Databricks. I privilegi di Unity Catalog non vengono applicati quando gli utenti accedono ai file di dati da sistemi esterni.
Avvertimento
Se si aggiornano i metadati della tabella esterna usando un client non Databricks o accedendo tramite percorso all'interno di Databricks, quei metadati non sincronizzano automaticamente lo stato con Unity Catalog. Databricks sconsiglia tali aggiornamenti dei metadati, ma se ne esegui uno, è necessario eseguire MSCK REPAIR TABLE <table-name> SYNC METADATA
per aggiornare lo schema in Unity Catalog. Vedere REPAIR TABLE.
Nota
Questo articolo è incentrato sulle tabelle esterne del catalogo Unity. Le tabelle esterne nel metastore Hive legacy hanno comportamenti diversi. Vedere Oggetti di database nel metastore Hive legacy.
Usare tabelle esterne
Azure Databricks gestisce solo i metadati per le tabelle esterne e non usa il percorso di archiviazione di gestione associato allo schema contenitore. La registrazione della tabella in Unity Catalog è solo un puntatore ai file di dati. Quando si elimina una tabella esterna, i file di dati non vengono eliminati.
Quando si crea una tabella esterna, è possibile registrare una directory esistente di file di dati come tabella o specificare un percorso per creare nuovi file di dati.
Le tabelle esterne possono usare i formati di file seguenti:
- DELTA
- CSV
- JSON
- AVRO
- PARQUET
- ORC
- TEXT
Creare una tabella esterna
Per creare una tabella esterna, è possibile usare comandi SQL o operazioni di scrittura di dataframe.
Operazioni preliminari
Per creare una tabella esterna, è necessario soddisfare i requisiti di autorizzazione seguenti:
- Privilegio
CREATE EXTERNAL TABLE
su un percorso esterno che concede l'accesso aLOCATION
utilizzato dalla tabella esterna. - Autorizzazione
USE SCHEMA
per lo schema padre della tabella. - Autorizzazione
USE CATALOG
per il catalogo padre della tabella. - Autorizzazione
CREATE TABLE
per lo schema padre della tabella.
Per altre informazioni sulla configurazione di percorsi esterni, vedere Creare una posizione esterna per connettere la memorizzazione cloud ad Azure Databricks.
Esempi di comandi SQL
Usare uno degli esempi di comando seguenti in un notebook o nell'editor di query SQL per creare una tabella esterna.
Negli esempi seguenti sostituire i valori segnaposto:
-
<catalog>
: nome del catalogo che conterrà la tabella. -
<schema>
: nome dello schema che conterrà la tabella. -
<table-name>
: nome della tabella. -
<column-specification>
: nome e tipo di dati per ogni colonna. -
<bucket-path>
: percorso del bucket di archiviazione cloud in cui verrà creata la tabella. -
<table-directory>
: directory in cui verrà creata la tabella. Usare una directory univoca per ogni tabella.
CREATE TABLE <catalog>.<schema>.<table-name>
(
<column-specification>
)
LOCATION 'abfss://<bucket-path>/<table-directory>';
Per altre informazioni sui parametri di creazione della tabella, vedere CREATE TABLE.
Operazioni di scrittura del dataframe
Molti utenti creano tabelle esterne dai risultati delle query o dalle operazioni di scrittura del dataframe. Gli articoli seguenti illustrano alcuni dei numerosi modelli che è possibile usare per creare una tabella esterna in Azure Databricks:
Eliminare una tabella esterna
Per eliminare una tabella è necessario esserne il proprietario o avere il privilegio MANAGE
sulla tabella. Per eliminare una tabella esterna, eseguire il comando SQL seguente:
DROP TABLE IF EXISTS catalog_name.schema_name.table_name;
Il catalogo unity non elimina i dati sottostanti nell'archiviazione cloud quando si elimina una tabella esterna. Se è necessario rimuovere i dati associati alla tabella, è necessario eliminare direttamente i file di dati sottostanti.
notebook di esempio : Creare tabelle esterne
È possibile usare il notebook di esempio seguente per creare un catalogo, uno schema e una tabella esterna e gestire le autorizzazioni per tali tabelle.
Creare e gestire una tabella esterna nel notebook del catalogo Unity
Ottieni il notebook