Eliminar recurso de tabela Delta

Visualização

O suporte para eliminar o recurso da tabela Delta e fazer o downgrade das versões do protocolo está na Visualização Pública no Databricks Runtime 14.1 e acima.

Databricks fornece suporte limitado para eliminar recursos de tabela. Para eliminar um recurso de tabela, deve ocorrer o seguinte:

  • Desative as propriedades da tabela que usam o recurso de tabela.

  • Remova todos os rastros do recurso de tabela dos arquivos de dados que apoiam a tabela.

  • Remova entradas de transação que usam o recurso de tabela dos logs de transações.

  • Faça downgrade do protocolo da tabela.

Quando suportado, você só deve usar essa funcionalidade para dar suporte à compatibilidade com versões anteriores do Databricks Runtime, Delta compartilhamento ou outros clientes leitores ou gravadores Delta Lake.

Importante

Todas as operações DROP FEATURE entram em conflito com todas as gravações concorrente.

As leituras de transmissão falham quando encontram um commit que altera os metadados da tabela. Se quiser que a transmissão continue, o senhor deve reiniciá-la. Para conhecer os métodos recomendados, consulte Considerações sobre produção para transmissão estruturada.

Como posso eliminar um recurso de tabela Delta?

Para remover um recurso da tabela Delta, você executa um comando ALTER TABLE <table-name> DROP FEATURE <feature-name> [TRUNCATE HISTORY] . Consulte ALTER TABLE.

Você deve usar o Databricks Runtime 14.1 ou acima e ter privilégios MODIFY na tabela Delta de destino.

Qual recurso da tabela Delta pode ser descartado?

Você pode eliminar o seguinte recurso da tabela Delta:

Você não pode descartar outro recurso da tabela Delta.

Habilitar o recurso de tabela para eliminar o recurso legado

O comando DROP FEATURE requer versões de protocolo que suportem leituras e gravações de recurso de tabela. Delta recursos como columnMapping e checkConstraints eram suportados em versões anteriores do protocolo. Dependendo de outros recursos ativados na tabela, talvez o senhor precise atualizar as versões do protocolo antes de poder eliminar esses recursos.

O senhor pode usar o seguinte comando para atualizar as versões do leitor e do gravador de tabelas, o que lhe permite eliminar o mapeamento de colunas e fazer o 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 o recurso da tabela Delta representa protocolos de leitura e gravação, eles devem estar completamente ausentes dos logs de transações para remoção completa. A eliminação de um recurso ocorre em dois estágios e requer algum tempo 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.

Prepare-se para eliminar um recurso de tabela

Durante o primeiro estágio, o usuário se prepara para eliminar o recurso de tabela. O seguinte descreve o que acontece durante esta fase:

  1. O usuário executa o comando DROP FEATURE .

  2. As propriedades da tabela que habilitam especificamente um recurso de tabela têm valores definidos para desabilitar o recurso.

  3. As propriedades da tabela que controlam os comportamentos associados ao recurso eliminado têm opções definidas com valores default antes do recurso ser introduzido.

  4. Conforme necessário, os arquivos de dados e metadados são reescritos respeitando as propriedades atualizadas da tabela.

  5. O comando termina a execução e retorna uma mensagem de erro informando ao usuário que deve aguardar 24 horas para prosseguir com a remoção do recurso.

Depois de desabilitar um recurso pela primeira vez, você poderá continuar gravando na tabela de destino antes de concluir o downgrade do protocolo, mas não poderá usar o recurso de tabela que está removendo.

Observação

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 o downgrade final ou passo, a tabela não poderá ser lida pelos clientes Delta que não entendem o recurso da tabela.

Faça downgrade do protocolo e elimine um recurso de tabela

Para descartar o recurso de tabela, você deve remover toda história de transação associada ao recurso e fazer downgrade do protocolo.

  1. Após pelo menos 24 horas, o usuário executa o comando DROP FEATURE novamente com a cláusula TRUNCATE HISTORY .

  2. O cliente confirma que nenhuma transação no limite de retenção especificado usa o recurso de tabela e, em seguida, trunca a tabela história para esse limite.

  3. O protocolo é rebaixado, eliminando o recurso de tabela.

  4. Se o recurso de tabela presente na tabela puder ser representado por uma versão de protocolo herdada, o minReaderVersion e minWriterVersion da tabela serão rebaixados para a versão mais baixa que suporta exatamente todos os recursos restantes em uso pela tabela Delta.

Importante

A execução de ALTER TABLE <table-name> DROP FEATURE <feature-name> TRUNCATE HISTORY remove todos os dados logs de transações anteriores a 24 horas. Após descartar um recurso da tabela Delta, você não terá acesso à tabela história ou viagem do tempo.

Consulte Como o Databricks gerencia a compatibilidade de recursos do Delta Lake?.