Pular para o conteúdo principal

Eliminar um recurso de tabela do Delta Lake e fazer downgrade do protocolo da tabela

Este artigo descreve como eliminar o recurso da tabela Delta Lake e fazer downgrade das versões do protocolo.

Essa funcionalidade está disponível em Databricks Runtime 16.3 e acima. Nem todos os recursos da tabela Delta podem ser descartados. Consulte Qual recurso da tabela Delta pode ser descartado?

O senhor só deve usar DROP FEATURE para oferecer compatibilidade com versões anteriores do Databricks Runtime, Delta Sharing ou clientes externos de leitura ou gravação Delta Lake.

nota

O suporte legado para DROP FEATURE está disponível a partir do Databricks Runtime 14.3 LTS. Databricks recomenda o uso do Databricks Runtime 16.3 e do acima para todos os comandos do DROP FEATURE, que substitui o comportamento legado. Para obter a documentação da funcionalidade legada, consulte Drop Delta table recurso (legacy).

Solte um recurso do Delta Lake

Para eliminar um recurso de tabela, use a seguinte sintaxe:

SQL
ALTER TABLE <table-name> DROP FEATURE <feature-name>

O senhor deve usar o site Databricks Runtime 16.3 ou acima e ter privilégios MODIFY na tabela Delta de destino. O senhor só pode eliminar um recurso de tabela com cada comando DROP FEATURE.

Consulte ALTER TABLE para obter mais detalhes.

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.

O que acontece quando um recurso de tabela é descartado?

Quando o senhor elimina um recurso de tabela, o Delta Lake faz o commit atômico das alterações na tabela para realizar o seguinte:

  • Desativar as propriedades da tabela que usam o recurso de tabela.
  • Remover todos os vestígios do recurso de tabela dos arquivos de dados que fazem o backup da tabela na versão atual.
  • Crie um conjunto de pontos de verificação protegidos que permitam que os clientes leitores interpretem corretamente o histórico da tabela.
  • Adicione o recurso de tabela do escritor checkpointProtection ao protocolo da tabela.
  • Faça o downgrade do protocolo de tabela para as versões mais baixas de leitor e gravador que suportam todos os recursos de tabela restantes. Consulte Protocolo mais baixo possível.

Qual é o recurso da tabela checkpointProtection?

Quando o senhor elimina um recurso, o site Delta Lake reescreve os dados e metadados no histórico da tabela como pontos de verificação protegidos para respeitar o downgrade do protocolo. Após o downgrade, a tabela sempre deve ser legível por mais clientes leitores. Isso ocorre porque o protocolo da tabela agora reflete que o suporte ao recurso descartado não é mais necessário para ler a tabela. Os pontos de verificação protegidos e o recurso checkpointProtection realizam o seguinte:

  • Os clientes leitores que entendem o recurso de tabela descartada podem acessar todo o histórico da tabela disponível.
  • Os clientes de leitura que não suportam o recurso de tabela descartada só precisam ler o histórico da tabela a partir da versão de downgrade do protocolo.
  • Os clientes do Writer não reescrevem os pontos de verificação antes do downgrade do protocolo.
  • As operações de manutenção da tabela respeitam os requisitos definidos por checkpointProtection, que marcam os pontos de verificação de downgrade do protocolo como protegidos.

Embora o senhor só possa descartar um recurso da tabela a cada DROP FEATURE comando, uma tabela pode ter vários pontos de verificação protegidos e recursos descartados no histórico da tabela.

Todas as versões do Databricks Runtime suportam o recurso de tabela checkpointProtection, o que significa que esse recurso de tabela não bloqueia leituras ou gravações no Databricks.

O recurso de tabela checkpointProtection não deve bloquear o acesso somente leitura de clientes OSS Delta Lake. Para fazer o downgrade completo da tabela e remover o recurso de tabela checkpointProtection, o senhor deve usar TRUNCATE HISTORY. A Databricks recomenda usar esse padrão somente se o senhor precisar gravar em tabelas com clientes Delta externos que não suportam checkpointProtection. Consulte Rebaixar totalmente os protocolos de tabela para clientes antigos.

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.

Faça o downgrade total dos protocolos de tabela para clientes antigos

Se as integrações com clientes externos do Delta Lake exigirem gravações que não sejam compatíveis com o recurso de tabela do checkpointProtection, o senhor deverá usar o TRUNCATE HISTORY para remover completamente todos os vestígios do recurso de tabela desativado e fazer o downgrade completo do protocolo de tabela.

Databricks O senhor recomenda testar o comportamento do default para o DROP FEATURE antes de prosseguir com o TRUNCATE HISTORY. A execução do site TRUNCATE HISTORY remove todo o histórico da tabela com mais de 24 horas.

O downgrade total da tabela ocorre em duas etapas que devem ocorrer com pelo menos 24 horas de intervalo.

Etapa 1: Prepare-se para descartar 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 senhor executa o ALTER TABLE <table-name> DROP FEATURE <feature-name> TRUNCATE HISTORY comando.
  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.

Etapa 2: Fazer downgrade do protocolo e eliminar um recurso de tabela

Para remover totalmente todo o histórico de transações associado ao recurso e fazer downgrade do protocolo:

  1. Depois de transcorridas pelo menos 24 horas, o senhor executa o ALTER TABLE <table-name> DROP FEATURE <feature-name> TRUNCATE HISTORY comando.
  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 recurso de tabela é descartado durante o downgrade do protocolo.
  4. Se os recursos da tabela que estão presentes na tabela puderem ser representados por uma versão de protocolo inferior, o minReaderVersion e o minWriterVersion da tabela serão rebaixados para a versão mais baixa que ofereça suporte ao recurso restante 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 usar esse comando para fazer o downgrade do protocolo da tabela, o senhor não terá acesso ao histórico da tabela ou à viagem do tempo.

Consulte Delta Lake recurso compatibilidade e protocolos.