Commits de catálogo
Esta página explica como habilitar commits de catálogo, um recurso de tabela do Delta Lake que transfere a coordenação de commits do sistema de arquivos para o Unity Catalog, tornando o catálogo a única fonte de verdade para o estado da tabela.
Visão geral
Transações tradicionais do Delta Lake coordenam commits no nível de tabela individual. Cada tabela gerencia seu próprio log de transações e detecção de conflitos independentemente. Commits de catálogo movem essa coordenação para o nível de catálogo. Isso permite que as organizações governem de forma consistente todo o acesso ao lakehouse por meio do Unity Catalog. Também permite que o Unity Catalog orquestre commits em várias tabelas dentro de um único limite de transação, mantendo as garantias ACID do Delta Lake.
Benefícios
Commits do Catálogo oferecem as seguintes funcionalidades:
- Transações que abrangem várias tabelas : Executar múltiplas declarações SQL em várias tabelas como um único commit atômico. Todas as alterações têm sucesso juntas ou falham juntas. Consulte Transações.
Visualização
Transações que gravam em tabelas Delta gerenciadas pelo Unity Catalog estão em Visualização Pública.
As transações que gravam em tabelas Iceberg gerenciadas pelo Unity Catalog estão em visualização particular. Para participar desta prévia, envie o formulário de inscrição para a Prévia de tabelas Iceberg gerenciadas.
-
Acesso regido : leituras e gravações são coordenadas por meio do Unity Catalog, para que os mecanismos vejam o estado confirmado mais recente e as políticas de governança sejam aplicadas.
-
**Planejamento de consulta e gravações mais rápidos**: O Unity Catalog informa um cliente Delta sobre metadados em nível de tabela diretamente ao acessar uma tabela, ignorando o armazenamento em nuvem e eliminando uma grande fonte de latência de metadados.
-
Restrições exigíveis : O Unity Catalog valida ou rejeita alterações de esquema e restrições, impedindo atualizações incompatíveis que possam comprometer a integridade de dados ou cargas de trabalho a jusante.
-
Acesso externo : Gravar com segurança em tabelas gerenciadas do Unity Catalog de mecanismos externos. O Unity Catalog coordena commits para evitar corrupção e conflitos de concorrência. Consulte Acessar dados do Databricks usando sistemas externos.
Beta
Este recurso está em Beta. Os administradores do espaço de trabalho podem controlar o acesso a esse recurso na página Pré-visualizações . Consulte Gerenciar prévias do Databricks.
Requisitos
- Tabelas devem ser tabelas gerenciadas do Unity Catalog (Delta ou Iceberg).
- O Databricks Runtime 16.4 e acima é necessário para ler, gravar ou criar tabelas com commits de catálogo habilitados.
- Databricks Runtime 18.0 e acima é necessário para habilitar ou desabilitar commits de catálogo em tabelas existentes.
Ativar commits do catálogo
Você pode habilitar commits de catálogo em tabelas novas e existentes.
Habilitar commits do catálogo para novas tabelas
Use a propriedade de tabela delta.feature.catalogManaged ao criar uma tabela:
CREATE TABLE sales_data (
sale_id BIGINT,
amount DECIMAL(10,2),
sale_date DATE
)
TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported');
Habilitar commits de catálogo para tabelas existentes
Use ALTER TABLE para adicionar commits de catálogo a uma tabela existente:
ALTER TABLE sales_data SET TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported');
Habilitar commits de catálogo em uma tabela existente sincroniza o estado da tabela com o catálogo. Essa operação pode levar vários minutos em tabelas com altas cargas de trabalho de gravação.
Verifique se o commit do catálogo está habilitado
Para verificar se uma tabela tem commits do catálogo ativados:
DESCRIBE DETAIL sales_data;
Se habilitado, catalogManaged aparece na coluna tableFeatures.
Desativar commits de catálogo
É possível desabilitar os commits de catálogo usando o Databricks Runtime 18.0 e acima. Consulte Remover um recurso de tabela do Delta Lake e fazer downgrade do protocolo da tabela.
Não cancele operações de upgrade ou downgrade enquanto executa as instruções ALTER ou DROP. A interrupção pode deixar a tabela em um estado parcialmente atualizado ou desatualizado, bloqueando-a de todas as futuras leituras e gravações. Para reverter, execute a execução o comando apropriado novamente em vez de cancelar. Entre em contato com o suporte da Databricks se a tabela ficar bloqueada.
Limitações
-
Não é possível habilitar ou desabilitar commits de catálogo em tabelas existentes usando
CREATE OR REPLACE TABLEouREPLACE TABLE. UseCREATE TABLEcom a propriedadedelta.feature.catalogManagedpara ativá-lo ao criar uma tabela, ouALTER TABLEpara ativá-lo ou desativá-lo em uma tabela existente. -
Para usar commits de catálogo em tabelas de transmissão, deve entrar em contato com a equipe de sua account Databricks e solicitar acesso à prévia pública.
-
Commits do Catálogo não são compatíveis com acesso a dados externos em tabelas de transmissão. Para usar os commits do catálogo, você deve primeiro desabilitar o acesso externo. Consulte Habilitar acesso a dados externos a tabelas de transmissão e views materializadas.
-
Tabelas com commits de catálogo habilitados são compartilhadas através de OpenSharing usando URLs pré-assinados em vez de tokens de cloud.
-
As visualizações materializadas não podem ter os commits de catálogo habilitados.
-
Clusters de usuário único não podem acessar tabelas de transmissão que têm commits de catálogo ativados.