Pular para o conteúdo principal

Drop Delta table recurso

info

Visualização

O suporte para eliminar o recurso da tabela Delta e fazer downgrade das versões de protocolo está em Public Preview em Databricks Runtime 14.1 e acima.

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

  • Desativar as propriedades da tabela que usam o recurso de tabela.
  • Remova todos os vestígios do recurso de tabela dos arquivos de dados que fazem o backup da tabela.
  • Remova as entradas de transação que usam a tabela recurso da transação log.
  • Faça o downgrade do protocolo da tabela.

Onde houver suporte, o senhor só deve usar essa funcionalidade para manter a compatibilidade com versões anteriores do Databricks Runtime, Delta Sharing ou outros clientes de leitura ou gravação do Delta Lake.

important

Todas as operações do DROP FEATURE entram em conflito com todas as gravações do 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, o senhor executa um comando ALTER TABLE <table-name> DROP FEATURE <feature-name> [TRUNCATE HISTORY]. Consulte ALTER TABLE.

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

Qual recurso da tabela Delta pode ser descartado?

O senhor pode eliminar o seguinte recurso da tabela Delta:

O senhor não pode eliminar outro recurso da tabelaDelta.

important

Algumas funcionalidades do site Delta Lake permitem o recurso de várias tabelas. Alguns recursos de tabela dependem de outros recursos de tabela e podem bloquear o lançamento de recursos de tabela dependentes. Como alguns recursos de tabela não podem ser descartados, isso significa que a ativação de alguns Delta Lake recursos não pode ser revertida.

A Databricks recomenda sempre testar a compatibilidade de cargas de trabalho e sistemas dependentes com a nova funcionalidade antes de ativar a funcionalidade que atualiza os protocolos de leitura ou gravação de dados de produção.

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

SQL
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 leitura e gravação, eles devem estar completamente ausentes da transação log para remoção completa. A eliminação de um recurso ocorre em dois estágios e requer tempo para ser concluída. As especificidades da remoção de recurso variam de acordo com o recurso, mas a seção a seguir apresenta uma visão geral.

Preparar para eliminar um recurso de tabela

Durante o primeiro estágio, o usuário se prepara para eliminar o recurso de tabela. A seguir, descrevemos o que acontece durante esse estágio:

  1. O usuário executa o comando DROP FEATURE.
  2. As propriedades da tabela que ativam especificamente um recurso de tabela têm valores definidos para desativar o recurso.
  3. As propriedades da tabela que controlam os comportamentos associados ao recurso descartado têm opções definidas para default valores 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 de ser executado e retorna uma mensagem de erro informando ao usuário que ele deve aguardar 24 horas para prosseguir com a remoção do recurso.

Depois de desativar um recurso pela primeira vez, o senhor pode continuar gravando na tabela de destino antes de concluir o downgrade do protocolo, mas não pode usar o recurso da tabela que está removendo.

nota

Se o senhor deixar a tabela nesse estado, as operações contra a tabela não usarão o recurso de tabela, mas o protocolo ainda será compatível com o recurso de tabela. Até que o senhor conclua a etapa final de downgrade, a tabela não poderá ser lida por clientes Delta que não entendem o recurso de tabela.

Fazer downgrade do protocolo e eliminar um recurso da tabela

Para eliminar o recurso da tabela, o senhor deve remover todo o histórico de transações associado ao recurso e fazer o downgrade do protocolo.

  1. Depois de transcorridas 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 da tabela e, em seguida, trunca o histórico da tabela para esse limite.
  3. O protocolo é rebaixado, eliminando o recurso de tabela.
  4. Se os recursos da tabela presentes na tabela puderem ser representados por uma versão de protocolo legado, o minReaderVersion e o minWriterVersion da tabela serão rebaixados para a versão mais baixa que suporte exatamente todos os recursos restantes em uso pela tabela Delta.
important

A execução do site 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 descartar um recurso da tabela Delta, o senhor não tem acesso à tabela história ou viagem do tempo.

Consulte Como Databricks o Delta Lake senhor pode gerenciar a compatibilidade do recurso?