Pular para o conteúdo principal

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.
info

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.

info

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.

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:

SQL
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:

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

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:

SQL
DESCRIBE DETAIL sales_data;

Se habilitado, catalogManaged aparece na coluna tableFeatures.

É 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.

atenção

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 TABLE ou REPLACE TABLE. Use CREATE TABLE com a propriedade delta.feature.catalogManaged para ativá-lo ao criar uma tabela, ou ALTER TABLE para 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.

Passos seguintes