Commits de catálogo
Os commits do catálogo transferem a coordenação de commit do sistema de arquivos para o Unity Catalog, tornando o catálogo a única fonte de verdade para o estado da tabela do Delta Lake e Apache Iceberg. Isso possibilita transações de várias tabelas, planejamento de consulta mais rápido e acesso governado em todas as operações da tabela.
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. Ao mover a coordenação de *commits* para o nível do catálogo, isso permite que as organizações governem consistentemente 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.
- 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.
Requisitos
- As tabelas devem ser tabelas gerenciadas pelo Unity Catalog (Delta ou Iceberg), incluindo tabelas de transmissão ou visualizações materializadas.
- O Databricks Runtime 16.4 ou acima é necessário para ler, gravar ou criar tabelas gerenciadas com commits de catálogo habilitados.
- O Databricks Runtime 18.0 ou superior é necessário para habilitar ou desabilitar commits de catálogo em tabelas gerenciadas existentes.
- O Databricks Runtime 17.3 ou superior é necessário para ler ou gravar em tabelas de transmissão ou visualizações materializadas com commits de catálogo habilitados.
- Em Spark Declarative Pipelines, o compute serverless ou o compute clássico com Databricks Runtime 17.3 e superior é necessário para ler, gravar, criar ou atualizar tabelas de streaming ou exibições materializadas com commits de catálogo habilitados.
- O Databricks Runtime 18 LTS ou superior é necessário para desabilitar commits de catálogo em tabelas de transmissão ou materialized views existentes.
Ativar commits do catálogo
Habilite commits de catálogo para tabelas gerenciadas, tabelas de transmissão e views materializadas novas ou existentes.
Habilitar commit de catálogo para novas tabelas gerenciadas
Use a propriedade de tabela delta.feature.catalogManaged ao criar uma tabela gerenciada:
CREATE TABLE sales_data (
sale_id BIGINT,
amount DECIMAL(10,2),
sale_date DATE
)
TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported');
Habilite commit de catálogo para tabelas gerenciadas existentes
Use ALTER TABLE para adicionar commit de catálogo a uma tabela gerenciada 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. Esta operação pode levar vários minutos em tabelas com grandes volumes de operações de gravação.
Habilitar commits de catálogo para tabelas de transmissão ou views materializadas novas ou existentes
Adicione a propriedade de tabela delta.feature.catalogManaged à definição da tabela de streaming ou view materializada e, em seguida, faça uma execução de atualização. Para um objeto existente, atualize sua definição original. ALTER TABLE ... SET TBLPROPERTIES não é compatível.
O exemplo a seguir habilita commit de catálogo para uma tabela de transmissão nova ou existente:
CREATE OR REFRESH STREAMING TABLE streaming_sales_data
TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported')
AS SELECT * FROM STREAM sales_data;
Para uma visualização materializada, use a mesma propriedade de tabela em sua definição de CREATE OR REFRESH MATERIALIZED VIEW.
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 commit de catálogo
Use o Databricks Runtime 18.0 ou superior para desativar commit de catálogo em uma tabela gerenciada existente.
Para uma tabela de transmissão ou view materializada existente, use o Databricks Runtime 18 LTS ou 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. Uma interrupção pode deixar a tabela em um estado parcialmente atualizado ou rebaixado, impedindo 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 ativar ou desativar commits de catálogo em tabelas gerenciadas existentes usando
CREATE OR REPLACE TABLEouREPLACE TABLE. UseCREATE TABLEcom a propriedadedelta.feature.catalogManagedpara ativá-lo ao criar uma tabela gerenciada, ouALTER TABLEpara ativá-lo ou desativá-lo em uma tabela gerenciada existente. -
Os commits do catálogo não são compatíveis com o acesso a dados externos em tabelas de transmissão ou views materializadas. Para usar commits de catálogo, você deve primeiro desabilitar o acesso externo. Consulte Habilitar acesso a dados externos para tabelas de streaming 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.
-
Clusters de usuário único não podem acessar tabelas de transmissão que têm commits de catálogo ativados.