Recursos da tabela Drop Delta
Importante
O suporte para descartar recursos de tabela Delta e versões de protocolo de downgrade está em Visualização Pública no Databricks Runtime 14.1 e superior.
O Azure Databricks fornece suporte limitado para descartar recursos de tabela. Para descartar um recurso de tabela, deve ocorrer o seguinte:
- Desative as propriedades da tabela que usam o recurso de tabela.
- Remova todos os vestígios do recurso de tabela dos arquivos de dados que dão suporte à tabela.
- Remova as entradas de transação que usam o recurso de tabela do log de transações.
- Faça o downgrade do protocolo da tabela.
Quando suportado, você só deve usar essa funcionalidade para oferecer suporte à compatibilidade com versões anteriores do Databricks Runtime, Delta Sharing ou outros clientes de leitura ou gravador Delta Lake.
Importante
Todas as DROP FEATURE
operações entram em conflito com todas as gravações simultâneas.
As leituras de streaming falham quando encontram uma confirmação que altera os metadados da tabela. Se quiser que o fluxo continue, tem de reiniciá-lo. Para obter os métodos recomendados, consulte Considerações de produção para streaming estruturado.
Como posso soltar um recurso de tabela Delta?
Para remover um recurso de tabela Delta, execute um ALTER TABLE <table-name> DROP FEATURE <feature-name> [TRUNCATE HISTORY]
comando. Ver ALTER TABLE.
Você deve usar o Databricks Runtime 14.1 ou superior e ter MODIFY
privilégios na tabela Delta de destino.
Quais recursos da tabela Delta podem ser descartados?
Você pode soltar os seguintes recursos da tabela Delta:
deletionVectors
. Consulte O que são vetores de exclusão?.v2Checkpoint
. Consulte Compatibilidade para tabelas com agrupamento líquido.columnMapping
. Consulte Renomear e soltar colunas com o mapeamento de colunas Delta Lake.typeWidening-preview
. Consulte Alargamento de tipos.checkConstraints
. Consulte Restrições no Azure Databricks.
Não é possível descartar outros recursos da tabela Delta.
Habilitar recursos de tabela para descartar recursos herdados
O DROP FEATURE
comando requer versões de protocolo que suportam leituras e gravações de recursos de tabela. Recursos Delta como columnMapping
e checkConstraints
eram suportados em versões anteriores do protocolo. Dependendo de outros recursos habilitados na tabela, talvez seja necessário atualizar as versões do protocolo antes de descartar esses recursos.
Você pode usar o seguinte comando para atualizar as versões de leitor e gravador de tabelas, o que permite soltar o mapeamento de colunas e fazer downgrade do protocolo:
ALTER TABLE <table-name> SET TBLPROPERTIES (
'delta.minReaderVersion' = '3',
'delta.minWriterVersion' = '7'
)
Como os recursos da tabela Delta são descartados?
Como os recursos da tabela Delta representam protocolos de leitor e gravador, eles devem estar completamente ausentes do log de transações para remoção completa. A eliminação de um recurso ocorre em dois estágios e requer tempo para decorrer antes da conclusão. As especificidades da remoção de recursos variam de acordo com o recurso, mas a seção a seguir fornece uma visão geral.
Preparar para soltar um recurso de tabela
Durante a primeira etapa, o usuário se prepara para soltar o recurso de tabela. A seguir descreve-se o que acontece durante esta etapa:
- O usuário executa o
DROP FEATURE
comando. - As propriedades da tabela que habilitam especificamente um recurso de tabela têm valores definidos para desabilitar o recurso.
- As propriedades da tabela que controlam comportamentos associados ao recurso descartado têm opções definidas como valores padrão antes da introdução do recurso.
- Conforme necessário, os arquivos de dados e metadados são reescritos respeitando as propriedades atualizadas da tabela.
- O comando termina a execução e retorna uma mensagem de erro informando ao usuário que ele deve esperar 24 horas para prosseguir com a remoção do recurso.
Depois de desativar um recurso pela primeira vez, você pode continuar gravando na tabela de destino antes de concluir o downgrade do protocolo, mas não pode usar o recurso de tabela que está removendo.
Nota
Se você deixar a tabela nesse estado, as operações na tabela não usarão o recurso de tabela, mas o protocolo ainda oferece suporte ao recurso de tabela. Até que você conclua a etapa final de downgrade, a tabela não é legível por clientes Delta que não entendem o recurso de tabela.
Fazer downgrade do protocolo e soltar um recurso de tabela
Para descartar o recurso de tabela, você deve remover todo o histórico de transações associado ao recurso e fazer downgrade do protocolo.
- Após pelo menos 24 horas, o usuário executa o
DROP FEATURE
comando novamente com aTRUNCATE HISTORY
cláusula. - O cliente confirma que nenhuma transação no limite de retenção especificado usa o recurso de tabela e, em seguida, trunca o histórico da tabela para esse treshold.
- O protocolo é rebaixado, descartando o recurso de tabela.
- Se os recursos da tabela que estão presentes na tabela podem ser representados por uma versão de protocolo herdada, o
minReaderVersion
eminWriterVersion
para a tabela são rebaixados para a versão mais baixa que suporta exatamente todos os recursos restantes em uso pela tabela Delta.
Importante
A execução ALTER TABLE <table-name> DROP FEATURE <feature-name> TRUNCATE HISTORY
remove todos os dados do log de transações com mais de 24 horas. Depois de soltar um recurso de tabela Delta, você não tem acesso ao histórico da tabela ou viagem no tempo.
Consulte Como o Azure Databricks gere a compatibilidade de funcionalidades do Delta Lake?.