Níveis de isolamento e conflitos de escrita
Esta página descreve os níveis de isolamento e o comportamento de conflitos de escrita para tabelas do Delta Lake no Databricks.
Delta Lake fornece garantias ACID entre leituras e gravações:
- Escritores : Vários escritores em vários clusters podem modificar simultaneamente uma partição de tabela. Os escritores visualizam uma view instantânea consistente da tabela e as gravações ocorrem em ordem sequencial.
- Leitores : Os leitores continuam a ver uma view instantânea consistente da tabela com a qual o Job Databricks começa, mesmo quando uma tabela é modificada durante um Job.
Veja O que são garantias ACID no Databricks?
Databricks usa Delta Lake para todas as tabelas por padrão.
Tópicos sobre isolamento
tópico | Descrição |
|---|---|
Como os dois níveis de isolamento afetam as operações simultâneas e como configurá-los. | |
Como a detecção de conflitos em nível de linha reduz os conflitos de gravação para operações simultâneas nos mesmos arquivos de dados. |
Para obter informações sobre isolamento de transações, comportamento de snapshots e tratamento de conflitos, consulte Isolamento de transações.
Conflitos de alteração de metadados
Alterações de metadados fazem com que todas as operações de gravação simultâneas falhem. Essas operações incluem alterações no protocolo da tabela, nas propriedades da tabela ou no esquema de dados.
As leituras de transmissão falham quando encontram um commit que altera os metadados da tabela. Se você quiser que a transmissão continue, você precisa reiniciá-la. Para métodos recomendados, consulte Considerações de produção para transmissão estruturada.
Seguem alguns exemplos de consultas que alteram metadados:
-- 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);