Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
No Databricks Runtime 16.4 LTS e superiores, DROP FEATURE remove uma funcionalidade de tabela Delta Lake e rebaixa o protocolo de tabela para a versão mais baixa que suporta as funcionalidades restantes. Use isto apenas para restaurar a compatibilidade com versões anteriores do Databricks Runtime, OpenSharing ou clientes externos Delta Lake.
Nem todas as funcionalidades podem ser eliminadas. Veja Funcionalidades de tabela suportadas.
Note
O suporte herdado para DROP FEATURE está disponível a partir do Databricks Runtime 14.3 LTS. O Databricks recomenda o uso do Databricks Runtime 16.3 e superior para todos os DROP FEATURE comandos, que substitui o comportamento herdado. Para obter a documentação da funcionalidade herdada, consulte Drop Delta table features (legacy).
Remova um recurso Delta Lake
Importante
Todas as DROP FEATURE 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. Tens de reiniciar os fluxos afetados. Para obter os métodos recomendados, consulte Considerações de produção para streaming estruturado.
Deve usar o Databricks Runtime 16.3 ou posterior e ter privilégios MODIFY na tabela Delta Lake de destino. Você só pode eliminar um recurso de tabela com cada comando DROP FEATURE.
Para soltar um recurso de tabela, use a seguinte sintaxe:
ALTER TABLE <table-name> DROP FEATURE <feature-name>
Consulte ALTER TABLE para obter mais detalhes.
Comportamento
Quando remove uma funcionalidade da tabela, o Delta Lake confirma atomicamente as seguintes alterações à tabela:
- Desative as propriedades da tabela que utilizam a funcionalidade de tabela.
- Reescreva os ficheiros de dados subjacentes, conforme necessário, para remover todos os vestígios da funcionalidade de tabela na versão atual da tabela.
- Crie um conjunto de checkpoints protegidos que permitam aos clientes leitores ler corretamente o histórico da tabela.
- Adicione o recurso
checkpointProtectionde tabela do gravador ao protocolo de tabela. - Faça o downgrade do protocolo de tabela para as versões mais baixas de leitor e gravador que suportam todos os recursos restantes da tabela. Ver Protocolo mais baixo possível.
A checkpointProtection funcionalidade de tabela
Quando desativa uma funcionalidade, o Delta Lake reescreve os dados e metadados no histórico da tabela como pontos de verificação protegidos para respeitar a redução da versão do protocolo.
Após o downgrade, a tabela não exige que os clientes suportem a funcionalidade eliminada. Os pontos de verificação protegidos e o checkpointProtection recurso realizam o seguinte:
- Os clientes leitores que suportam a funcionalidade de tabela descartada podem ler todas as versões disponíveis do histórico de tabelas.
- Os clientes leitores que não suportam a funcionalidade eliminada podem ler as versões do histórico de tabelas a partir da versão de downgrade do protocolo.
- Os clientes de escrita não modificam pontos de verificação criados antes da desatualização do protocolo.
-
checkpointProtectionassinala os pontos de verificação de reversão do protocolo como protegidos e as operações de manutenção de tabelas respeitam essas marcações.
Embora você só possa soltar um recurso de tabela com cada DROP FEATURE comando, uma tabela pode ter vários pontos de verificação protegidos e recursos descartados em seu histórico de tabelas.
Todas as versões do Databricks Runtime suportam a checkpointProtection funcionalidade de tabela, o que significa que esta funcionalidade de tabela não bloqueia leituras ou escritas no Azure Databricks.
checkpointProtection não bloqueia o acesso apenas de leitura dos clientes OSS Delta Lake. Para fazer o downgrade completo da tabela e remover o checkpointProtection recurso de tabela, você deve usar TRUNCATE HISTORY. O Databricks recomenda usar este padrão apenas se precisar de escrever em tabelas com clientes Delta externos que não suportem checkpointProtection. Consulte Protocolos completos de downgrade de tabela para clientes antigos.
Funcionalidades de tabelas suportadas
Pode eliminar as seguintes características da tabela Delta Lake:
-
catalogManaged. Ver Encomendas do catálogo. -
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. Ver Vetores de eliminação em Databricks. -
typeWidening. Consulte Alargamento de tipos. -
v2Checkpoint. Consulte Downgrade para clássico. -
checkpointProtection. Veja a funcionalidade dacheckpointProtectiontabela.
Não podes eliminar outras funcionalidades da tabela do Delta Lake.
Importante
A Databricks recomenda que teste sempre cargas de trabalho e sistemas dependentes quanto à compatibilidade com novas funcionalidades antes de ativar funcionalidades que atualizam os protocolos de leitor ou escrita para dados de produção.
Considere o seguinte:
- Descartar o mapeamento de colunas de uma tabela não remove os prefixos aleatórios usados em nomes de diretório para tabelas particionadas. Veja se Delta Lake e Parquet compartilham estratégias de particionamento.
- Algumas funcionalidades do Delta Lake permitem múltiplas funcionalidades de tabela que dependem umas das outras, o que pode impedir-te de eliminar funcionalidades dependentes. Não podes reverter funcionalidades que não podem ser eliminadas.
Fazer downgrade completo dos protocolos de tabela para clientes legados
Se utilizar clientes Delta Lake externos para operações de escrita que não suportam a funcionalidade de tabela checkpointProtection, tem de usar TRUNCATE HISTORY para efetuar o downgrade completo do protocolo da tabela e remover todos os vestígios das funcionalidades de tabela removidas. Executar TRUNCATE HISTORY remove todo o histórico da tabela com mais de 24 horas.
A Databricks recomenda testar o comportamento predefinido para DROP FEATURE antes de executar TRUNCATE HISTORY.
O downgrade total requer dois passos, com pelo menos 24 horas de intervalo.
Passo 1: Prepare-se para eliminar uma funcionalidade de tabela
Execute o comando ALTER TABLE <table-name> DROP FEATURE <feature-name> TRUNCATE HISTORY. O comando aplica o seguinte:
- Atualiza as propriedades da tabela para desativar a funcionalidade.
- Redefine as propriedades associadas da tabela para a funcionalidade para os seus valores predefinidos.
- Reescreve dados e ficheiros de metadados conforme necessário para refletir as propriedades atualizadas.
- Devolve uma mensagem a exigir que espere pelo menos 24 horas antes de o executar novamente para completar o downgrade do protocolo.
Depois de desligares uma funcionalidade, podes continuar a escrever na tabela de destino antes de completares o downgrade do protocolo, mas não podes usar a funcionalidade de tabela que estás a remover.
Note
Se deixar a tabela neste estado, as operações contra a tabela não usam a funcionalidade de tabela, mas o protocolo continua a suportar a funcionalidade de tabela. Até completares o passo final de downgrade, a tabela não é legível pelos clientes Delta que não suportam a funcionalidade de tabela.
Passo 2: Rebaixar o protocolo e eliminar uma funcionalidade de tabela
Depois de pelo menos 24 horas, execute novamente o ALTER TABLE <table-name> DROP FEATURE <feature-name> TRUNCATE HISTORY comando. O comando aplica o seguinte:
- Trunca o histórico da tabela até ao limite de retenção.
- Confirma que não há transações restantes usando a funcionalidade.
- Remove a funcionalidade e reduz o protocolo de tabela para a versão mais baixa que suporta as funcionalidades restantes.
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 usar este comando para fazer downgrade do protocolo de tabela, não consegue aceder ao histórico de tabelas nem à viagem no tempo.
Consulte Compatibilidade de recursos e protocolos do Delta Lake.