Tipi di tabella di Databricks Unity Catalog

Il catalogo Unity supporta tre tipi di tabella primari: tabelle gestite, esterne e straniere. Ogni tipo differisce dal modo in cui i dati vengono archiviati, gestiti e regolati.

Tabelle gestite

Le tabelle gestite sono il tipo di tabella predefinito e consigliato. Unity Catalog gestisce il ciclo di vita dei dati, la posizione di archiviazione e le ottimizzazioni. Quando si elimina una tabella gestita, vengono eliminati sia i metadati che i file di dati sottostanti.

Le tabelle gestite sono supportate da Delta Lake o Apache Iceberg e forniscono:

  • Ottimizzazione automatica per ridurre i costi di archiviazione e calcolo
  • Prestazioni delle query più veloci in tutti i tipi di client
  • Manutenzione automatica delle tabelle
  • Proteggere l'accesso per i client non Databricks tramite API aperte
  • Aggiornamenti automatici alle funzionalità della piattaforma più recenti

I file di dati vengono archiviati nello schema o nel catalogo contenente la tabella. Vedere Tabelle gestite di Unity Catalog in Azure Databricks per Delta Lake e Apache Iceberg.

Tabelle esterne

Le tabelle esterne registrano i dati archiviati nell'archiviazione di oggetti cloud gestita. Unity Catalog gestisce l'accesso ai dati, ma non gestisce il ciclo di vita dei dati, le ottimizzazioni o il layout di archiviazione. Quando si elimina una tabella esterna, vengono rimossi solo i metadati, ovvero i file di dati sottostanti rimangono.

Le tabelle esterne di Unity Catalog supportano formati Delta Lake (consigliati) e CSV, JSON, AVRO, PARQUET, ORC e TEXT. Le tabelle esterne non Delta non dispongono delle garanzie transazionali e delle ottimizzazioni delle prestazioni di Delta Lake.

Usare tabelle esterne quando è necessario:

  • Registrare i dati esistenti non compatibili con le tabelle gestite di Unity Catalog
  • Fornire l'accesso diretto ai dati da client non Databricks che non supportano altri modelli di accesso esterno

Consultare Lavorare con tabelle esterne.

Tabelle esterne

Le tabelle esterne (dette anche tabelle federate) vengono registrate usando Unity Catalog come parte di un catalogo esterno. I sistemi esterni gestiscono i dati e i metadati, mentre Unity Catalog aggiunge la governance dei dati per l'esecuzione di query.

Azure Databricks supporta due metodi per la registrazione di tabelle esterne:

  • Federazione di query: usa connessioni JDBC sicure a sistemi dati esterni come PostgreSQL e MySQL
  • Federazione del catalogo: connette cataloghi esterni per eseguire query sui dati direttamente nell'archiviazione file

Le tabelle esterne supportate da Delta Lake non dispongono di molte ottimizzazioni disponibili nelle tabelle gestite di Unity Catalog. Per carichi di lavoro di produzione o set di dati sottoposti a query frequenti, eseguire la migrazione alle tabelle gestite del catalogo Unity per ottenere prestazioni migliori. Vedere Usare tabelle esterne.

Confronto dei tipi di tabella

La tabella seguente confronta i tre tipi di tabella:

Caratteristica / Funzionalità Tabelle gestite Tabelle esterne Tabelle esterne
Gestione del ciclo di vita dei dati Unity Catalog gestisce Gestisci Il sistema esterno gestisce
Posizione di archiviazione Unity Catalog gestisce Specificare Il sistema esterno gestisce
Ottimizzazioni automatiche Yes Limitato NO
Formati supportati Delta Lake, Apache Iceberg Delta Lake (scelta consigliata), CSV, JSON, AVRO, PARQUET, ORC, TEXT Dipende dal sistema esterno
Dati eliminati in DROP TABLE Yes NO NO
Ideale per Carichi di lavoro di produzione, dati sottoposti a query frequenti Integrazioni legacy, dati esistenti Migrazione da sistemi esterni, accesso temporaneo

Altri tipi di tabella

Azure Databricks supporta anche tipi di tabella specializzati per casi d'uso specifici:

  • Tabelle di streaming: set di dati dichiarativi di LakeFlow Spark supportati da Delta Lake con logica di elaborazione incrementale
  • Viste materializzate: set di dati delle Pipeline dichiarative di Lakeflow Spark supportati da Delta Lake che materializzano i risultati delle query utilizzando la logica del flusso gestito

Tipi di tabella legacy

I tipi di tabella legacy seguenti sono supportati per la compatibilità con le versioni precedenti, ma non sono consigliati per il nuovo sviluppo.

Tabelle Hive

Le tabelle Hive usano modelli legacy, inclusi il metastore Hive, i codec SerDe Hive o la sintassi Hive SQL. Per impostazione predefinita, le tabelle registrate mediante il metastore Hive legacy archiviano i dati nella radice legacy di DBFS.

Eseguire la migrazione di tutte le tabelle dal modulo HMS legacy al catalogo Unity. Vedere Oggetti di database nel metastore Hive legacy. Facoltativamente, è possibile eseguire la federazione di un metastore Hive in Unity Catalog. Consultare Federazione del Metastore Hive: Abilitare Unity Catalog per gestire le tabelle registrate in un metastore Hive.

Apache Spark supporta la registrazione e l'esecuzione di query sulle tabelle Hive, ma questi codec non sono ottimizzati per Azure Databricks. Registrare le tabelle Hive solo per consentire di eseguire query contro i dati generati da sistemi esterni. Consultare la tabella Hive legacy.

Tabelle live

Il termine tabelle live si riferisce a un'implementazione precedente della funzionalità ora disponibile come viste materializzate. Aggiornare il codice legacy che fa riferimento a tabelle live per usare la sintassi della vista materializzata. Vedere Lakeflow Spark Declarative Pipelines and Materialized views (Pipeline dichiarative di Lakeflow Spark e viste materializzate).