Che cos'è una tabella?
Una tabella si trova in uno schema e contiene righe di dati. Per impostazione predefinita, tutte le tabelle create in Azure Databricks usano Delta Lake. Le tabelle supportate da Delta Lake sono chiamate anche tabelle Delta.
Una tabella Delta archivia i dati come directory di file nell'archivio oggetti cloud e registra i metadati della tabella nel metastore all'interno di un catalogo e di uno schema. Tutte le tabelle gestite di Unity Catalog e le tabelle di streaming sono tabelle Delta. Le tabelle esterne di Unity Catalog possono essere tabelle Delta, ma non sono necessarie.
È possibile creare tabelle in Databricks che non usano Delta Lake. Queste tabelle non forniscono le garanzie transazionali o le prestazioni ottimizzate delle tabelle Delta.
Le tabelle archiviano righe di dati. Una tabella si trova in uno schema e contiene righe di dati. Nell'esempio seguente viene illustrata una tabella prod.people_ops_employees che contiene dati relativi a cinque dipendenti. I metadati vengono registrati in Unity Catalog e i dati vengono archiviati nell'archiviazione cloud.
Autorizzazioni di tabella di base
Per creare una tabella, gli utenti devono disporre delle autorizzazioni CREATE TABLE
e USE SCHEMA
sullo schema e devono avere l'autorizzazione USE CATALOG
sul catalogo padre. Per eseguire query su una tabella, gli utenti devono disporre dell'autorizzazione SELECT
per la tabella, dell'autorizzazione USE SCHEMA
per lo schema padre e dell'autorizzazione per il USE CATALOG
catalogo padre.
Per ulteriori informazioni sulle autorizzazioni del catalogo Unity, vedere Gestire i privilegi nel catalogo Unity.
Tabelle nel Catalogo Unity
Nel catalogo unity le tabelle si trovano al terzo livello dello spazio dei nomi a tre livelli (catalog.schema.table
), come illustrato nella tabella seguente. Le tabelle esterne di Unity Catalog possono essere tabelle Delta, ma non sono necessarie.
Tabelle delta
Supportata da Delta Lake, una tabella Delta archivia i dati come directory di file nell'archivio oggetti cloud e registra i metadati della tabella nel metastore all'interno di un catalogo e uno schema. Poiché le tabelle Delta sono l'impostazione predefinita in Databricks, la maggior parte dei riferimenti alle tabelle descrive il comportamento delle tabelle Delta, se non diversamente specificato. Tutte le tabelle gestite di Unity Catalog e le tabelle di streaming sono tabelle Delta. Vedere Cos'è Delta Lake?.
Databricks consiglia di interagire sempre con le tabelle Delta usando nomi di tabella completi anziché percorsi di file.
Tabelle gestite
Le tabelle gestite gestiscono i file di dati sottostanti insieme alla registrazione del metastore. Databricks consiglia di usare tabelle gestite ogni volta che si crea una nuova tabella. Le tabelle gestite di Unity Catalog sono l'impostazione predefinita quando si creano tabelle in Azure Databricks. Usano sempre Delta Lake. Vedere Lavorare con tabelle gestite.
Tabelle esterne
Tabelle esterne, talvolta denominate tabelle non gestite, i dati di riferimento archiviati all'esterno di Databricks in un sistema di archiviazione esterno, ad esempio l'archiviazione di oggetti cloud. Separano la gestione dei file di dati di base dalla registrazione del metastore. Il catalogo Unity >supporta tabelle esterne in diversi formati, tra cui Delta Lake. Le tabelle esterne di Unity Catalog possono archiviare file di dati usando formati comuni leggibili da sistemi esterni. Consultare Lavorare con tabelle esterne.
Tabelle di streaming
Le tabelle di streaming sono tabelle Delta usate principalmente per l'elaborazione di dati incrementali. La maggior parte degli aggiornamenti delle tabelle di streaming avviene tramite operazioni di aggiornamento.
È possibile registrare tabelle di streaming in Unity Catalog usando Databricks SQL o definirle come parte di una pipeline DLT. Vedere Come funzionano le tabelle di streaming, Caricare dati usando tabelle di streaming in Databricks SQLe Che cos'è DLT?.
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 Che cos'è Lakehouse Federation?.
Tabelle delle funzionalità
Qualsiasi tabella Delta gestita dal catalogo Unity con una chiave primaria è una tabella delle funzionalità. Facoltativamente, è possibile configurare le tabelle delle funzionalità usando l'Archivio funzionalità online per casi d'uso a bassa latenza. Consulta Utilizzo delle tabelle di funzionalità nell'archivio delle funzionalità dell'area di lavoro (legacy).
Tabelle Hive (legacy)
Le tabelle Hive descrivono due concetti distinti in Azure Databricks, entrambi modelli legacy e non consigliati.
Per impostazione predefinita, le tabelle registrate usando i dati del metastore Hive legacy vengono archiviati nella radice DBFS legacy. Databricks consiglia di eseguire la migrazione di tutte le tabelle da HMS legacy a Unity Catalog. Consultare gli oggetti del database nel metastore Hive legacy.
Apache Spark supporta la registrazione e l'esecuzione di query su tabelle Hive, ma questi codec non sono ottimizzati per Azure Databricks. Databricks consiglia di registrare tabelle Hive solo per supportare query su dati scritti da sistemi esterni. Consulta tabella Hive (ereditata).
Tabelle in tempo reale (obsoleta)
Il termine live tables si riferisce a una versione precedente della funzionalità ora implementata come viste materializzate. Qualsiasi codice legacy che fa riferimento a tabelle live deve essere aggiornato per usare la sintassi per le viste materializzate. Vedere Che cos'è DLT? e Usare viste materializzate in Databricks SQL.