Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
No Databricks Runtime 16.4 LTS e versões posteriores, DROP FEATURE remove uma funcionalidade de tabela do Delta Lake e rebaixa o protocolo da tabela para a versão mais baixa que oferece suporte às funcionalidades restantes. Use isso apenas para restaurar a compatibilidade com versões anteriores do Databricks Runtime, OpenSharing ou clientes externos do Delta Lake.
Nem todas as funcionalidades podem ser removidas. Consulte os recursos de tabela com suporte.
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, o que substitui o comportamento herdado. Para a documentação de funcionalidades herdadas, consulte Drop Delta table features (legacy).
Remover um recurso do Delta Lake
Important
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. Você deve reiniciar os fluxos afetados. Para obter métodos recomendados, confira Considerações de produção para Streaming Estruturado.
Você deve usar o Databricks Runtime 16.3 ou superior e ter MODIFY privilégios na tabela Delta Lake de destino. Você só pode descartar um recurso de tabela com cada DROP FEATURE comando.
Para remover um recurso de tabela, use a seguinte sintaxe:
ALTER TABLE <table-name> DROP FEATURE <feature-name>
Confira ALTER TABLE para saber mais.
Behavior
Quando você descarta um recurso de tabela, o Delta Lake confirma atomicamente as seguintes alterações na tabela:
- Desative as propriedades da tabela que utilizam o recurso de tabela.
- Reescreva os arquivos de dados subjacentes, conforme necessário, para remover todos os vestígios da funcionalidade de tabela da versão atual da tabela.
- Crie um conjunto de pontos de verificação protegidos que permitem que os clientes leitores leiam o histórico da tabela corretamente.
- Adicionar o recurso de tabela de gravador
checkpointProtectionao protocolo de tabela. - Faça downgrade do protocolo de tabela para as versões de leitor e gravador mais baixos que dão suporte a todos os recursos restantes da tabela. Veja o protocolo mais baixo possível.
O recurso de tabela checkpointProtection
Quando você remove um recurso, o Delta Lake reescreve os dados e os metadados no histórico da tabela como pontos de verificação protegidos para respeitar o downgrade do protocolo.
Após o downgrade, a tabela não exige que os clientes ofereçam suporte ao recurso descartado. Os pontos de verificação protegidos e o checkpointProtection recurso realizam o seguinte:
- Os clientes de leitura que oferecem suporte ao recurso de tabela excluída podem ler todas as versões disponíveis do histórico da tabela.
- Os clientes leitores que não oferecem suporte à funcionalidade removida podem ler as versões do histórico da tabela a partir da versão de downgrade do protocolo.
- Os clientes de gravador não modificam os pontos de verificação criados antes do downgrade do protocolo.
-
checkpointProtectionmarca pontos de verificação de downgrade de protocolo como protegidos e as operações de manutenção de tabela respeitam esses marcadores.
Embora você só possa descartar 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 dão suporte ao recurso de tabela, o checkpointProtection que significa que esse recurso de tabela não bloqueia leituras ou gravações em Azure Databricks.
checkpointProtection não bloqueia o acesso de somente leitura de clientes OSS Delta Lake. Para fazer downgrade completo da tabela e remover o recurso de tabela checkpointProtection, use TRUNCATE HISTORY. O Databricks recomenda usar esse padrão somente se você precisar gravar em tabelas com clientes Delta externos que não dão suporte checkpointProtection. Veja Fazer downgrade completo dos protocolos de tabela nos clientes herdados.
Recursos de tabela compatíveis
Você pode remover os seguintes recursos da tabela Delta Lake:
-
catalogManaged. Consulte confirmações de catálogo. -
checkConstraints. Consulte Restrições no Azure Databricks. -
collations-preview. Consulte Suporte de ordenação para Delta Lake. -
columnMapping. Confira Renomear e remover colunas usando o mapeamento de colunas do Delta Lake. -
deletionVectors. Consulte vetores de exclusão no Databricks. -
typeWidening. Confira Ampliação de tipo. -
v2Checkpoint. Consulte Downgrade para clássico. -
checkpointProtection. Consulte O recurso de tabelacheckpointProtection.
Não é possível remover outros recursos da tabela Delta Lake.
Important
O Databricks recomenda que você sempre teste cargas de trabalho e sistemas dependentes para compatibilidade com novos recursos antes de habilitar recursos que atualizam protocolos de leitor ou gravador para dados de produção.
Considere o seguinte:
- Remover o mapeamento de coluna de uma tabela não remove os prefixos aleatórios usados em nomes de diretório para tabelas particionadas. Confira O Delta Lake e o Parquet compartilham estratégias de particionamento?.
- Alguns recursos do Delta Lake permitem vários recursos de tabela que dependem uns dos outros, o que pode impedir que você descarte recursos dependentes. Você não pode reverter recursos que não podem ser removidos.
Fazer downgrade completo dos protocolos de tabela nos clientes herdados
Se você usar clientes externos do Delta Lake com gravações que não oferecem suporte ao recurso de tabela checkpointProtection, deverá usar TRUNCATE HISTORY para rebaixar completamente o protocolo da tabela e remover todos os vestígios dos recursos de tabela removidos. A execução TRUNCATE HISTORY remove todo o histórico de tabelas com mais de 24 horas.
O Databricks recomenda testar o comportamento padrão para DROP FEATURE antes de executar TRUNCATE HISTORY.
O downgrade completo requer duas etapas, com pelo menos 24 horas de diferença.
Etapa 1: Preparar-se para remover um recurso 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 o recurso.
- Redefine as propriedades da tabela associadas para o recurso para seus padrões.
- Reescreve os dados e os arquivos de metadados conforme necessário para refletir as propriedades atualizadas.
- Retorna uma mensagem que exige que você aguarde pelo menos 24 horas antes de executá-la novamente para concluir o downgrade do protocolo.
Depois de desativar um recurso, você pode continuar gravando na tabela de destino antes de concluir o downgrade de protocolo, mas não pode usar o recurso de tabela que está removendo.
Note
Se você deixar a tabela nesse estado, as operações na tabela não usarão o recurso de tabela, mas o protocolo ainda oferecerá suporte ao recurso de tabela. Até concluir a etapa de downgrade final, a tabela não poderá ser lida por clientes Delta que não dão suporte ao recurso de tabela.
Etapa 2: fazer downgrade do protocolo e remover um recurso de tabela
Após pelo menos 24 horas, execute o ALTER TABLE <table-name> DROP FEATURE <feature-name> TRUNCATE HISTORY comando novamente. O comando aplica o seguinte:
- Trunca o histórico da tabela até o limite de retenção.
- Confirma que nenhuma transação remanescente usa o recurso.
- Descarta o recurso e faz downgrade do protocolo de tabela para a versão mais baixa que dá suporte aos recursos restantes.
Important
Executar ALTER TABLE <table-name> DROP FEATURE <feature-name> TRUNCATE HISTORY remove todos os dados do log de transações mais antigos que 24 horas. Depois de usar este comando para rebaixar o protocolo da tabela, você não poderá acessar o histórico da tabela nem o recurso de viagem no tempo.
Consulte a compatibilidade de recursos e protocolos do Delta Lake.