Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Importante
Esta documentação foi desativada e pode não ser atualizada. Os produtos, serviços ou tecnologias mencionados neste conteúdo não são mais suportados. Consulte Remover uma funcionalidade da tabela Delta Lake e fazer downgrade do protocolo da tabela.
Este artigo documenta o comportamento da Pré-visualização Pública para eliminar funcionalidades da tabela Delta Lake disponíveis a partir do Databricks Runtime 14.3 LTS. A Databricks recomenda usar a funcionalidade geralmente disponível no Databricks Runtime 16.3 e superiores, que substitui o comportamento legado. Consulte Remover uma funcionalidade da tabela Delta Lake e fazer downgrade do protocolo da tabela.
O Azure Databricks oferece suporte limitado para a remoção de funcionalidades de tabelas. Eliminar uma funcionalidade de tabela envolve as seguintes etapas:
- Desative as propriedades das tabelas que utilizam a funcionalidade da tabela.
- Remova todos os vestígios da funcionalidade da tabela dos ficheiros de dados que suportam a tabela.
- Remova as entradas de transações que utilizam a funcionalidade tabela do registo de transações.
- Rebaixe o protocolo da tabela.
Importante
Todas DROP FEATURE as operações entram em conflito com todas as escritas concorrentes.
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 eliminar uma funcionalidade de tabela Delta?
Para remover uma funcionalidade de tabela Delta, executas um ALTER TABLE <table-name> DROP FEATURE <feature-name> [TRUNCATE HISTORY] comando. Consulte ALTER TABLE.
Deve usar o Databricks Runtime 14.3 LTS ou superior e possuir privilégios de MODIFY na tabela Delta de destino.
Que funcionalidades da tabela Delta podem ser eliminadas?
Pode eliminar as seguintes características da tabela Delta:
-
checkConstraints. Consulte Restrições no Azure Databricks. -
collations-preview. Consulte Suporte de agrupamento para Delta Lake. -
columnMapping. ** Consulte Renomear e remover colunas utilizando o mapeamento de colunas no Delta Lake. -
deletionVectors. Consulte O que são vetores de exclusão?. -
typeWidening-preview. Consulte Alargamento de tipos. -
v2Checkpoint. Consulte Compatibilidade para tabelas com agrupamento líquido.
Não podes eliminar outras funcionalidades da tabela Delta.
Importante
Algumas funcionalidades do Delta Lake permitem múltiplas funcionalidades de tabelas. Algumas funcionalidades da tabela dependem de outras e podem bloquear a remoção das funcionalidades dependentes da tabela. Como algumas funcionalidades da tabela não podem ser eliminadas, isto significa que a habilitação para algumas características do Delta Lake não pode ser revertida.
A Databricks recomenda sempre testar cargas de trabalho e sistemas dependentes quanto à compatibilidade com novas funcionalidades antes de ativar funcionalidades que atualizam protocolos de leitor ou escrita para dados de produção.
Permitir que funcionalidades de tabela eliminem funcionalidades legadas
Observação
Esta seção descreve um padrão que é exigido apenas no Databricks Runtime 16.0 e anteriores.
O DROP FEATURE comando requer versões de protocolo que suportem leituras e escritas de características de tabelas. Funcionalidades Delta como columnMapping e checkConstraints eram suportadas em versões anteriores do protocolo. Dependendo de outras funcionalidades ativadas na tabela, pode ser necessário atualizar as versões do protocolo antes de poder eliminar essas funcionalidades.
Pode usar o seguinte comando para atualizar as versões do leitor e do escritor de tabelas, o que permite eliminar o mapeamento das colunas e fazer downgrade do protocolo:
ALTER TABLE <table-name> SET TBLPROPERTIES (
'delta.minReaderVersion' = '3',
'delta.minWriterVersion' = '7'
)
Como é que as funcionalidades da tabela Delta são eliminadas?
Como as características da tabela Delta afetam a forma como uma tabela é lida/escrita, devem estar completamente ausentes do registo de transações para serem totalmente removidas. Os detalhes da remoção de características variam consoante a característica, mas a secção seguinte fornece uma visão geral.
A eliminação de uma funcionalidade ocorre em dois passos e requer tempo até ser concluída.
Passo 1: Prepare-se para eliminar uma funcionalidade de tabela
Durante o primeiro passo, deve preparar-se para eliminar a funcionalidade de tabela. O seguinte descreve o que acontece durante esta etapa:
- Execute o comando
DROP FEATURE. - Propriedades de tabela que especificamente permitem uma funcionalidade de tabela têm valores definidos para desativar a funcionalidade.
- As propriedades das tabelas que controlam comportamentos associados à funcionalidade eliminada têm opções definidas para valores predefinidos antes da funcionalidade ser introduzida.
- Conforme necessário, os ficheiros de dados e metadados são reescritos, respeitando as propriedades atualizadas da tabela.
- O comando termina a execução e devolve uma mensagem de erro a informar que deve esperar 24 horas para avançar com a remoção da funcionalidade.
Depois de desativar uma funcionalidade, pode continuar a escrever na tabela de destino antes de completar o downgrade do protocolo, mas não pode usar a funcionalidade de tabela que está a remover.
Observação
Se deixar a tabela neste estado, as operações contra a tabela não utilizam a funcionalidade de tabela, mas o protocolo ainda suporta a funcionalidade de tabela. Até completar o passo final de downgrade, a tabela não é legível pelos clientes Delta que não compreendem a funcionalidade da tabela.
Passo 2: Rebaixar o protocolo e eliminar uma funcionalidade de tabela
No segundo passo, trunca e apaga todo o histórico de transações associado à funcionalidade. Isto permite-lhe eliminar a funcionalidade de tabela e rebaixar o protocolo.
- Depois de pelo menos 24 horas, executa novamente o
DROP FEATUREcomando com aTRUNCATE HISTORYcláusula. - O cliente confirma que nenhuma transação no limiar de retenção especificado utiliza a funcionalidade de tabela e depois trunca o histórico da tabela até esse limite.
- O protocolo é degradado, eliminando a funcionalidade de tabela.
- Se as características da tabela presentes na tabela puderem ser representadas por uma versão legada do protocolo, os
minReaderVersioneminWriterVersionpara a tabela são rebaixados para a versão mais baixa que suporta exatamente todas as funcionalidades restantes em uso pela tabela Delta.
Importante
Executar 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 eliminar uma funcionalidade de tabela Delta, não tens acesso ao histórico das tabelas nem à viagem no tempo.
Consulte Compatibilidade de recursos e protocolos do Delta Lake.