Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Important
Le tabelle gestite di Unity Catalog sono disponibili a livello generale per le tabelle Delta Lake. Per le tabelle Apache Iceberg, questa funzionalità è disponibile in anteprima pubblica e disponibile in Databricks Runtime 16.4 LTS e versioni successive.
Questa pagina descrive le tabelle gestite di Unity Catalog in Delta Lake e Apache Iceberg, il tipo di tabella predefinito e consigliato in Azure Databricks. Queste tabelle sono completamente regolate e ottimizzate da Unity Catalog, offrendo prestazioni, vantaggi operativi e costi di archiviazione e calcolo inferiori rispetto alle tabelle esterne ed esterne, perché le tabelle gestite imparano dai modelli di lettura e scrittura. Unity Catalog gestisce tutte le responsabilità di lettura, scrittura, archiviazione e ottimizzazione per le tabelle gestite. Vedere Convertire una tabella esterna in una tabella del catalogo Unity gestita.
I file di dati per le tabelle gestite vengono archiviati nello schema o nel catalogo che li contiene. Consultare Specificare una posizione di archiviazione gestita in Unity Catalog.
Databricks consiglia di usare tabelle gestite per sfruttare i vantaggi seguenti:
- Riduzione dei costi di archiviazione e calcolo.
- Prestazioni delle query più veloci in tutti i tipi di client.
- Manutenzione e ottimizzazione automatica delle tabelle.
- Proteggere l'accesso per i client non Databricks tramite API aperte.
- Supporto per i formati Delta Lake e Iceberg.
- Aggiornamenti automatici alle funzionalità della piattaforma più recenti.
Le tabelle gestite supportano l'interoperabilità consentendo l'accesso dai client Delta Lake e Iceberg. Tramite API aperte e distributori di credenziali, Il catalogo Unity consente motori esterni come Trino, DuckDB, Apache Spark, Daft e Motori integrati nel catalogo REST Iceberg come Dremio per accedere alle tabelle gestite. Per i client esterni che non supportano LE API aperte, è possibile usare la modalità compatibilità per leggere le tabelle gestite usando qualsiasi client Delta Lake o Iceberg. Delta Sharing, un protocollo open source, consente la condivisione sicura e regolamentata dei dati con partner e piattaforme esterni.
È possibile usare tabelle gestite in tutti i linguaggi e i prodotti supportati in Azure Databricks. Sono necessari determinati privilegi per creare, aggiornare, eliminare o eseguire query su tabelle gestite. Consulta Gestione dei privilegi in Unity Catalog.
Note
Questa pagina è incentrata sulle tabelle gestite di Unity Catalog. Per le tabelle gestite nel metastore Hive legacy, vedere Oggetti di database nel metastore Hive legacy.
Perché usare le tabelle gestite di Unity Catalog?
Le tabelle gestite di Unity Catalog ottimizzano automaticamente i costi di archiviazione e le velocità delle query usando tecnologie basate su intelligenza artificiale come il clustering automatico, la compattazione delle dimensioni dei file e la raccolta intelligente delle statistiche. Queste tabelle semplificano la gestione dei dati con funzionalità come il vacuuming automatico e il caching dei metadati, garantendo al tempo stesso l'interoperabilità con gli strumenti Delta e Iceberg di terze parti.
Le funzionalità seguenti sono univoche per le tabelle gestite di Unity Catalog e non sono disponibili per tabelle esterne e tabelle esterne.
| Feature | Benefits | Abilitata per impostazione predefinita? | Configurabile? |
|---|---|---|---|
| Ottimizzazione predittiva | Ottimizza automaticamente il layout dei dati e il calcolo usando l'intelligenza artificiale, quindi non è necessario gestire manualmente le operazioni per le tabelle gestite. Databricks consiglia di abilitare l'ottimizzazione predittiva per tutte le tabelle gestite per ridurre i costi di archiviazione e calcolo. L'ottimizzazione predittiva viene eseguita automaticamente:
|
Sì, per tutti i nuovi account creati il 11 novembre 2024. Per gli account correnti, Azure Databricks sta iniziando a implementare l'ottimizzazione predittiva per impostazione predefinita. Vedere Controllare se l'ottimizzazione predittiva è abilitata. |
Sì. Vedere Abilitare l'ottimizzazione predittiva. |
| Clustering liquido automatico | Per le tabelle con ottimizzazione predittiva, l'abilitazione del clustering liquido automatico consente ad Azure Databricks di selezionare in modo intelligente le chiavi di clustering. Man mano che i modelli di query cambiano, Azure Databricks aggiorna automaticamente le chiavi di clustering per migliorare le prestazioni e ridurre i costi. | NO | Sì. Vedere Abilitare il clustering liquido. |
| Memorizzazione nella cache dei metadati | La memorizzazione nella cache in memoria dei metadati delle transazioni migliora le prestazioni delle query riducendo al minimo le richieste al log delle transazioni archiviato nel cloud. Questa funzionalità migliora le prestazioni delle query. | Yes | No La memorizzazione nella cache dei metadati è sempre abilitata per le tabelle gestite. |
Eliminazione automatica dei file dopo un DROP TABLE comando |
Se si elimina una tabella gestita, Azure Databricks elimina i dati nell'archiviazione cloud dopo 8 giorni, riducendo i costi di archiviazione. Per le tabelle esterne, è necessario passare manualmente al bucket di archiviazione ed eliminare i file. | Yes | No Per le tabelle gestite, i file vengono sempre eliminati automaticamente dopo 8 giorni. |
Accedere ai dati di Databricks usando sistemi esterni
Le tabelle gestite supportano l'interoperabilità consentendo l'accesso dai client Delta Lake e Iceberg. Tramite API aperte e distribuzione di credenziali, Il catalogo unity consente motori esterni come Trino, DuckDB, Apache Spark, Daft e motori integrati nel catalogo REST Iceberg come Dremio e Snowflake per accedere alle tabelle gestite. Vedere integrazioni per un elenco di motori esterni supportati o controllare la documentazione del motore se non è inclusa in questo elenco.
Le API aperte seguenti forniscono ai sistemi esterni l'accesso alle tabelle gestite del catalogo Unity:
- API REST unity: fornisce l'accesso in sola lettura per i client Delta alle tabelle Delta gestite.
- IRC (Iceberg REST Catalog): fornisce l'accesso in lettura e scrittura per i client Iceberg alle tabelle Iceberg gestite e all'accesso in sola lettura alle tabelle Delta con le letture Iceberg abilitate (UniForm).
Entrambe le API supportano la distribuzione automatica delle credenziali, che fornisce credenziali temporanee con ambito che ereditano i privilegi del principale di Azure Databricks che effettua la richiesta, mantenendo i controlli di governance e sicurezza.
Inoltre, La condivisione Delta è un protocollo open source che consente l'accesso sicuro e regolamentato ai dati a partner e piattaforme esterni. È possibile usare la condivisione Delta per concedere ai partner l'accesso temporaneo e in sola lettura.
Tutte le letture e le scritture nelle tabelle gestite devono usare nomi di tabella e nomi di catalogo e schemi in cui esistono. Ad esempio: catalog_name.schema_name.table_name. L'accesso basato sul percorso alle tabelle gestite del catalogo Unity non è supportato (tranne in modalità compatibilità) perché ignora i controlli di accesso al catalogo Unity e impedisce il corretto funzionamento delle funzionalità della tabella gestita.
Creare una tabella gestita
Per creare una tabella gestita, è necessario disporre di:
-
USE SCHEMAnello schema padre della tabella. -
USE CATALOGnel catalogo principale della tabella dati. -
CREATE TABLEnello schema padre della tabella.
Usare la sintassi SQL seguente per creare una tabella gestita vuota usando SQL. Sostituisci i valori segnaposto:
-
<catalog-name>: nome del catalogo che conterrà la tabella. -
<schema-name>: nome dello schema contenente la tabella. -
<table-name>: nome della tabella. -
<column-specification>: nome e tipo di dati di ogni colonna.
-- Create a managed Delta table
CREATE TABLE <catalog-name>.<schema-name>.<table-name>
(
<column-specification>
);
-- Create a managed Iceberg table
CREATE TABLE <catalog-name>.<schema-name>.<table-name>
(
<column-specification>
)
USING iceberg;
Per mantenere le prestazioni in letture e scritture, Azure Databricks esegue periodicamente operazioni per ottimizzare i metadati della tabella Iceberg gestita. Questa attività viene eseguita usando il calcolo serverless, che ha MODIFY i permessi sulla tabella Iceberg. Questa operazione scrive solo nei metadati della tabella e il sistema di calcolo mantiene solo le autorizzazioni per la tabella per la durata del processo.
Note
Per creare una tabella Iceberg, specificare USING icebergin modo esplicito . In caso contrario, Azure Databricks crea una tabella Delta Lake per impostazione predefinita.
È possibile creare tabelle gestite 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 gestita in Azure Databricks:
- CREATE TABLE [UTILIZZANDO]
- CREATE TABLE LIKE
- Creare o modificare una tabella usando il caricamento di file
Eliminare una tabella gestita
Per eliminare una tabella gestita, è necessario disporre di:
-
MANAGEnella tabella oppure devi essere il proprietario della tabella. -
USE SCHEMAnello schema padre della tabella. -
USE CATALOGnel catalogo principale della tabella dati.
Per eliminare una tabella gestita, eseguire il comando SQL seguente:
DROP TABLE IF EXISTS catalog_name.schema_name.table_name;
Unity Catalog supporta il UNDROP TABLE comando per ripristinare le tabelle gestite eliminate per 8 giorni. Dopo 8 giorni, Azure Databricks contrassegna i dati sottostanti per l'eliminazione dal tenant cloud e rimuove i file durante la manutenzione automatica delle tabelle. Vedere UNDROP.