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 fanno riferimento ai 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 del catalogo e i file di dati sottostanti rimangono.

Le tabelle esterne del catalogo unity supportano i formati Delta Lake, CSV, JSON, AVRO, PARQUET, ORC e TEXT. Databricks consiglia di usare il formato Delta Lake perché offre garanzie transazionali e ottimizzazioni delle prestazioni che gli altri formati non lo fanno.

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) sono tabelle di sola lettura gestite da un catalogo esterno registrato in Unity Catalog. 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 che usano il formato 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 Limited 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
Migliore 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 vengono gestite dal metastore Hive legacy e usano modelli legacy, inclusi i codec Hive SerDe e la sintassi Hive SQL. Per impostazione predefinita, le tabelle registrate mediante il metastore Hive legacy archiviano i dati nella radice legacy di DBFS.

Databricks consiglia di 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 e accedere alle tabelle come tabelle esterne 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 su tabelle Hive, ma i codec SerDe Hive non sono ottimizzati per Azure Databricks. Registrare le tabelle Hive solo quando è necessario supportare query su 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).