Commit del catalogo

I commit del catalogo spostano il coordinamento dei commit dal file system a Unity Catalog, rendendo il catalogo l’unica fonte attendibile per lo stato delle tabelle Delta Lake e Apache Iceberg. Ciò consente transazioni su più tabelle, una pianificazione più rapida delle query e un accesso controllato in tutte le operazioni sulle tabelle.

Le transazioni di Delta Lake tradizionali coordinano i commit a livello di tabella individuale. Ogni tabella gestisce in modo indipendente il log delle transazioni e il rilevamento dei conflitti. Spostando il coordinamento dei commit a livello di catalogo, le organizzazioni possono gestire in modo coerente tutti gli accessi al Lakehouse tramite Unity Catalog. Consente inoltre al catalogo Unity di orchestrare i commit tra più tabelle all'interno di un singolo limite di transazione mantenendo al tempo stesso le garanzie ACID di Delta Lake.

Vantaggi

I commit del catalogo offrono le funzionalità seguenti:

  • Transazioni che si estendono su più tabelle: eseguire più istruzioni SQL tra più tabelle come singolo commit atomico. Tutte le modifiche hanno esito positivo o hanno esito negativo insieme. Vedere Transazioni.

    Importante

    Le transazioni che scrivono nelle tabelle Iceberg gestite dal catalogo Unity sono in anteprima privata. Per partecipare a questa anteprima, inviare il modulo di iscrizione per l'anteprima delle tabelle Iceberg gestite.

  • Accesso regolamentato: le letture e le scritture sono coordinate tramite il Unity Catalog, quindi i motori vedono l'applicazione degli ultimi criteri di governance e l'ultimo stato di commit.

  • Pianificazione e scrittura di query più veloci: il catalogo Unity informa un client Delta dei metadati a livello di tabella direttamente quando accede a una tabella, ignorando l'archiviazione cloud e rimuovendo una principale fonte di latenza dei metadati.

  • Vincoli applicabili: Il catalogo Unity convalida o rifiuta le modifiche dello schema e dei vincoli, impedendo aggiornamenti incompatibili che potrebbero interrompere l'integrità dei dati o carichi di lavoro downstream.

  • Accesso esterno: scrivere in modo sicuro in tabelle gestite del catalogo Unity da motori esterni. Il Unity Catalog coordina i commit per prevenire corruzioni e conflitti di concorrenza. Vedere Accedere ai dati di Databricks usando sistemi esterni.

    Importante

    Questa funzionalità è in versione beta. Gli amministratori dell'area di lavoro possono controllare l'accesso a questa funzionalità dalla pagina Anteprime . Vedere Gestire le anteprime di Azure Databricks.

Requisiti

  • Le tabelle devono essere tabelle gestite dal Catalogo Unity (Delta o Iceberg), incluse le tabelle in streaming, oppure viste materializzate.
  • Per leggere da, scrivere in o creare tabelle gestite con i commit del catalogo abilitati, è richiesto Databricks Runtime 16.4 o versione successiva.
  • Per abilitare o disabilitare i commit del catalogo per le tabelle gestite esistenti, è necessario Databricks Runtime 18.0 o versioni successive.
  • Per leggere da o scrivere in tabelle di streaming o viste materializzate con i commit del catalogo abilitati, è necessario Databricks Runtime 17.3 o versioni successive.
  • In Spark Declarative Pipelines, per leggere da, scrivere in, creare o aggiornare tabelle di streaming o viste materializzate con commit del catalogo abilitati, è necessaria l'elaborazione serverless o l'elaborazione classica con Databricks Runtime 17.3 o versioni successive.
  • Databricks Runtime 18 LTS e superiori sono necessari per disabilitare i commit di catalogo su tabelle di streaming esistenti o su visualizzazioni materializzate.

Abilitare i commit del catalogo

Abilita i commit del catalogo per tabelle gestite nuove o esistenti, tabelle streaming e visualizzazioni materializzate.

Abilita i commit del catalogo per le nuove tabelle gestite

Usa la proprietà della delta.feature.catalogManaged tabella quando crei una tabella gestita:

CREATE TABLE sales_data (
  sale_id BIGINT,
  amount DECIMAL(10,2),
  sale_date DATE
)
TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported');

Abilita i commit del catalogo per le tabelle gestite esistenti

Usa ALTER TABLE per aggiungere commit del catalogo a una tabella gestita esistente:

ALTER TABLE sales_data SET TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported');

Importante

L'abilitazione dei commit del catalogo in una tabella esistente sincronizza lo stato della tabella con il catalogo. Questa operazione può richiedere alcuni minuti nelle tabelle con volumi elevati di operazioni di scrittura.

Abilita i commit del catalogo per tabelle di streaming nuove o esistenti o visualizzazioni materializzate

Aggiungi la delta.feature.catalogManaged proprietà della tabella alla tabella streaming o alla definizione della vista materializzata, e poi esegui un aggiornamento. Per un oggetto esistente, aggiorna la sua definizione originale. ALTER TABLE ... SET TBLPROPERTIES non è supportato.

Il seguente esempio consente i commit di catalogo per una tabella di streaming nuova o esistente:

CREATE OR REFRESH STREAMING TABLE streaming_sales_data
TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported')
AS SELECT * FROM STREAM sales_data;

Per una vista materializzata, utilizza la stessa proprietà della tabella nella relativa definizione CREATE OR REFRESH MATERIALIZED VIEW.

Controllare se i commit del catalogo sono abilitati

Per verificare se per una tabella sono abilitati i commit del catalogo:

DESCRIBE DETAIL sales_data;

Se abilitata, catalogManaged viene visualizzata nella tableFeatures colonna .

Disattivare i commit del catalogo

Usa Databricks Runtime 18.0 e versioni successive per disattivare i commit di catalogo su una tabella gestita esistente.

Per una tabella di streaming esistente o una vista materializzata, usa Databricks Runtime 18 LTS e superiori.

Vedere Eliminare una funzionalità di tabella Delta Lake e effettuare il downgrade del protocollo di tabella.

Avvertimento

Non annullare le operazioni di aggiornamento o downgrade mentre si eseguono istruzioni ALTER o DROP. L'interruzione potrebbe lasciare la tabella in uno stato parzialmente aggiornato o sottoposto a downgrade, bloccandola per qualsiasi futura operazione di lettura e scrittura. Per ripristinare, eseguire di nuovo il comando appropriato anziché annullarlo. Contattare il supporto di Databricks se la tabella diventa bloccata.

Limitations

  • Non puoi attivare o disattivare i commit di catalogo su tabelle gestite esistenti usando CREATE OR REPLACE TABLE o REPLACE TABLE. Usa CREATE TABLE con la proprietà delta.feature.catalogManaged per attivarla durante la creazione di una tabella gestita, oppure ALTER TABLE per attivarla o disattivarla in una tabella gestita esistente.
  • I commit del catalogo non sono compatibili con l'accesso esterno ai dati su tabelle di streaming o viste materializzate. Per usare i commit del catalogo, è prima necessario disabilitare l'accesso esterno. Vedere Abilitare l'accesso ai dati esterni alle tabelle di streaming e alle viste materializzate.
  • Le tabelle con commit del catalogo abilitate vengono condivise tramite OpenSharing usando URL prefirmati anziché token cloud.
  • I cluster a utente singolo non possono accedere alle tabelle di streaming con commit del catalogo abilitati.

Risorse aggiuntive