Condividi tramite


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 l'accesso diretto ai dati senza usare il calcolo in Azure Databricks. I privilegi di Unity Catalog non vengono applicati quando gli utenti accedono ai file di dati da sistemi esterni.

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 in una posizione esterna che concede l'accesso all'oggetto LOCATION a cui accede la 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 l'archiviazione 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 di tabelle, 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 essere il proprietario. 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

Ottenere il notebook