Concetti relativi alle tabelle di Azure Databricks

Azure Databricks supporta tre tipi principali di tabelle (gestite, esterne e federate) e due formati di archiviazione aperti (Delta Lake e Apache Iceberg). La scelta della combinazione corretta determina la modalità di archiviazione, regolata e ottimizzazione dei dati.

Una tabella di Azure Databricks si trova in uno schema e contiene righe di dati. Il tipo di tabella predefinito creato in Azure Databricks è una tabella gestita di Unity Catalog.

Esempio di tabella gestita

Nell'esempio seguente viene illustrata una tabella gestita denominata prod.people_ops_employees che contiene dati relativi a cinque dipendenti. Per le tabelle gestite, i file di dati vengono archiviati nel percorso di archiviazione gestito di Unity Catalog nell'archiviazione cloud.

Tabella di esempio contenente i dati dei dipendenti

Formati di archiviazione

I formati di archiviazione definiscono il modo in cui i dati sono strutturati fisicamente e monitorati nell'archiviazione di oggetti.

Azure Databricks supporta due formati principali di archiviazione tabelle aperte:

  • Delta Lake è il formato di archiviazione predefinito per tabelle gestite ed esterne in Azure Databricks. Delta è supportato anche per le tabelle esterne.
  • Apache Iceberg è supportato per le tabelle gestite ed esterne in Azure Databricks. Questo formato è utile quando si esegue l'integrazione con l'ecosistema Iceberg.

Entrambi i formati aggiungono un livello di archiviazione transazionale che tiene traccia dei metadati e supporta la conformità atomicità, coerenza, isolamento e durabilità (ACID), il viaggio nel tempo e altre funzionalità.

Tipi di tabella

I tipi di tabella in Azure Databricks definiscono la modalità di proprietà e accesso ai dati.

Azure Databricks supporta tre tipi di tabella primari. I tipi di tabella sono determinati dal catalogo proprietario e dalla gestione dei file di dati sottostanti, come descritto nella tabella seguente:

Tipo di tabella Gestione del catalogo Supporto di lettura/scrittura Ottimizzazione delle prestazioni Ottimizzazione dei costi di archiviazione
Gestiti Catalogo Unity Yes Yes Yes
Provvisorio Nessuno (tabella gestita con ambito sessione) Yes Yes Yes
External Nessuno (solo file) Yes Solo modalità manuale Solo modalità manuale
Straniero Un sistema esterno o un servizio di catalogo Sola lettura NO NO

Tabelle gestite

Per le tabelle gestite, Unity Catalog gestisce sia i file di dati che i metadati della tabella. Le tabelle gestite di Unity Catalog sono l'impostazione predefinita quando si creano tabelle in Azure Databricks.

Databricks consiglia di usare tabelle gestite ogni volta che si crea una nuova tabella. Le tabelle gestite implementano automaticamente miglioramenti delle prestazioni, riducono i costi di archiviazione e calcolo e consentono l'accesso per sistemi esterni, ad esempio Trino. Vedi Tabelle gestite.

Tabelle esterne

Tabelle esterne, talvolta denominate tabelle non gestite, dati di riferimento archiviati in un sistema di archiviazione esterno, ad esempio l'archiviazione di oggetti cloud. Azure Databricks registra i metadati della tabella, ma non gestisce i file di dati sottostanti. Unity Catalog supporta tabelle esterne in diversi formati, tra cui Delta Lake, che consente di leggerli con sistemi esterni. Vedere Tabelle esterne.

Tabelle esterne

Le tabelle esterne rappresentano i dati archiviati in sistemi esterni connessi ad Azure Databricks tramite Lakehouse Federation. Le tabelle esterne sono di sola lettura in Azure Databricks. Vedere Tabelle esterne.

Tabelle temporanee

Le tabelle temporanee sono tabelle con ambito sessione che archiviano i dati per la durata di una sessione di Azure Databricks. Sono utili per materializzare i risultati intermedi senza creare tabelle permanenti nel catalogo. Azure Databricks elimina automaticamente le tabelle temporanee al termine della sessione e non sono necessari privilegi di catalogo o schema per crearli. Vedere Tabelle temporanee in Databricks SQL e Databricks Runtime.

Tabelle in Unity Catalog

Nel catalogo unity le tabelle sono presenti nel terzo livello dello spazio dei nomi a tre livelli (catalog.schema.table), come illustrato nel diagramma seguente:

Diagramma del modello a oggetti del catalogo Unity, incentrato sulla tabella

Autorizzazioni di tabella di base

La maggior parte delle operazioni sulle tabelle richiede le autorizzazioni USE CATALOG e USE SCHEMA sul catalogo e sullo schema che contengono la tabella.

La tabella seguente riepiloga le autorizzazioni aggiuntive necessarie per le operazioni di tabella comuni nel catalogo unity:

Operation Permissions
Crea una tabella CREATE TABLE nello schema che lo contiene
Eseguire una query su una tabella SELECT sul tavolo
Aggiornare, eliminare, unire o inserire dati in una tabella SELECT e MODIFY sulla tabella
Eliminare una tabella MANAGE sul tavolo
Sostituire una tabella MANAGE nella tabella, CREATE TABLE nello schema che la contiene

Per informazioni di riferimento sulla sintassi SQL per queste operazioni, vedere:

Per altre informazioni sulle autorizzazioni del catalogo Unity, vedere Gestire i privilegi nel catalogo unity.