Share via


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:

Não é possível descartar outros recursos da tabela Delta.

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:

  1. O usuário executa o DROP FEATURE comando.
  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 comportamentos associados ao recurso descartado têm opções definidas como valores padrão antes da introdução do recurso.
  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 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.

  1. Após pelo menos 24 horas, o usuário executa o DROP FEATURE comando novamente com a TRUNCATE HISTORY cláusula.
  2. 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.
  3. O protocolo é rebaixado, descartando o recurso de tabela.
  4. Se os recursos da tabela que estão presentes na tabela podem ser representados por uma versão de protocolo herdada, o minReaderVersion e minWriterVersion 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 gerencia a compatibilidade de recursos do Delta Lake?.