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.
Questa pagina descrive i livelli di isolamento e il comportamento di scrittura dei conflitti per le tabelle Delta Lake in Azure Databricks.
Delta Lake offre garanzie di transazione ACID tra letture e scritture:
- Scrittori: più scrittori in più cluster possono modificare simultaneamente una partizione di tabella. Gli scrittori visualizzano un'istantanea coerente della tabella e le operazioni di scrittura vengono eseguite in ordine seriale.
- Lettori: i lettori continuano a visualizzare una visualizzazione snapshot coerente della tabella con cui è stato avviato il processo di Azure Databricks, anche quando una tabella viene modificata durante un processo.
Vedere Che cosa sono le garanzie ACID in Azure Databricks?.
Annotazioni
Azure Databricks usa Delta Lake per tutte le tabelle per impostazione predefinita.
Argomenti relativi all'isolamento
| Argomento | Descrizione |
|---|---|
| Livelli di isolamento (WriteSerializable e Serializable) | Come i due livelli di isolamento influiscono sulle operazioni simultanee e su come configurarle. |
| Concorrenza a livello di riga | In che modo il rilevamento dei conflitti a livello di riga riduce i conflitti di scrittura per le operazioni simultanee sugli stessi file di dati. |
Per informazioni sull'isolamento delle transazioni, sul comportamento dello snapshot e sulla gestione dei conflitti, vedere Isolamento delle transazioni.
Conflitti di modifica dei metadati
Le modifiche ai metadati causano l'esito negativo di tutte le operazioni di scrittura simultanee. Queste operazioni includono modifiche al protocollo di tabella, alle proprietà della tabella o allo schema dei dati.
Le letture di streaming hanno esito negativo quando rilevano un commit che modifica i metadati della tabella. Se si vuole che il flusso continui, è necessario riavviarlo. Per i metodi consigliati, vedere Considerazioni sulla produzione per Structured Streaming.
Di seguito sono riportati esempi di query che modificano i metadati:
-- Set a table property
ALTER TABLE table_name SET TBLPROPERTIES ('delta.isolationLevel' = 'Serializable')
-- Enable a feature using a table property and update the table protocol
ALTER TABLE table_name SET TBLPROPERTIES ('delta.enableDeletionVectors' = true);
-- Drop a table feature
ALTER TABLE table_name DROP FEATURE deletionVectors;
-- Upgrade to UniForm
REORG TABLE table_name APPLY (UPGRADE UNIFORM(ICEBERG_COMPAT_VERSION=2));
-- Update the table schema
ALTER TABLE table_name ADD COLUMNS (col_name STRING);