Partilhar via


O que são vectores de eliminação?

Os vetores de exclusão são um recurso de otimização de armazenamento que você pode habilitar nas tabelas Delta Lake. Por predefinição, quando uma única linha num ficheiro de dados é eliminada, todo o ficheiro Parquet que contém o registo tem de ser reescrito. Com vetores de exclusão habilitados para a tabela, DELETE, UPDATEe MERGE operações usam vetores de exclusão para marcar linhas existentes como removidas ou alteradas sem reescrever o arquivo Parquet. As leituras subsequentes na tabela resolvem o estado atual da tabela aplicando as exclusões indicadas pelos vetores de exclusão à versão mais recente da tabela.

O Databricks recomenda o uso do Databricks Runtime 14.3 LTS e superior para escrever tabelas com vetores de exclusão para usar todas as otimizações. Você pode ler tabelas com vetores de exclusão habilitados no Databricks Runtime 12.2 LTS e superior.

No Databricks Runtime 14.2 e superior, tabelas com vetores de exclusão suportam simultaneidade em nível de linha. Consulte Conflitos de gravação com simultaneidade em nível de linha.

Nota

O Photon aproveita vetores de exclusão para atualizações de E/S preditivasDELETEMERGE, aceleração e UPDATE operações. Todos os clientes que suportam a leitura de vetores de exclusão podem ler atualizações que produziram vetores de exclusão, independentemente de a E/S preditiva ter produzido essas atualizações. Consulte Usar E/S preditiva para acelerar as atualizações.

Habilitar vetores de exclusão

Importante

Uma configuração de administrador de espaço de trabalho controla se os vetores de exclusão são habilitados automaticamente para novas tabelas Delta. Consulte Ativar vetores de exclusão automáticos.

Se a configuração do espaço de trabalho para controlar a habilitação automática de vetores de exclusão for usada, então, com base na opção selecionada para tipos de tabela, os vetores de exclusão serão habilitados por padrão quando você criar uma nova tabela usando um SQL warehouse ou Databricks Runtime 14.1 ou superior. Os vetores de exclusão não são habilitados por padrão quando você cria exibições materializadas ou tabelas de Streaming e devem ser habilitados manualmente quando você cria uma exibição materializada ou uma tabela de Streaming.

Para habilitar manualmente o suporte para vetores de exclusão em uma tabela ou exibição, use a delta.enableDeletionVectors propriedade table. Você pode habilitar manualmente vetores de exclusão em uma tabela delta ao criar ou alterar a tabela. Você pode habilitar manualmente vetores de exclusão em uma exibição materializada ou tabela Streaming somente quando criar a exibição materializada ou a tabela Streaming. Não é possível usar uma ALTER instrução para habilitar vetores de exclusão em uma exibição materializada ou tabela de streaming.

CREATE TABLE <table-name> [options] TBLPROPERTIES ('delta.enableDeletionVectors' = true);

ALTER TABLE <table-name> SET TBLPROPERTIES ('delta.enableDeletionVectors' = true);

Aviso

Quando você habilita vetores de exclusão, o protocolo de tabela é atualizado. Após a atualização, a tabela não será legível pelos clientes Delta Lake que não suportam vetores de exclusão. Consulte Como o Azure Databricks gere a compatibilidade de funcionalidades do Delta Lake?.

No Databricks Runtime 14.1 e superior, você pode descartar o recurso de tabela de vetores de exclusão para habilitar a compatibilidade com outros clientes Delta. Consulte Recursos da tabela Drop Delta.

Aplicar alterações aos arquivos de dados do Parquet

Os vetores de exclusão indicam alterações nas linhas como exclusões suaves que modificam logicamente os arquivos de dados existentes do Parquet na tabela Delta Lake. Essas alterações são aplicadas fisicamente quando um dos seguintes eventos faz com que os arquivos de dados sejam reescritos:

  • Um OPTIMIZE comando é executado na mesa.
  • A compactação automática aciona uma regravação de um arquivo de dados com um vetor de exclusão.
  • REORG TABLE ... APPLY (PURGE) é executado contra a mesa.

Os eventos relacionados à compactação de arquivos não têm garantias estritas para resolver alterações registradas em vetores de exclusão, e algumas alterações registradas em vetores de exclusão podem não ser aplicadas se os arquivos de dados de destino não forem candidatos à compactação de arquivos. REORG TABLE ... APPLY (PURGE) Reescreve todos os arquivos de dados contendo registros com modificações gravadas usando vetores de exclusão. Ver REORG TABLE.

Nota

Dados modificados ainda podem existir nos arquivos antigos. Você pode executar VACUUM para excluir fisicamente os arquivos antigos. REORG TABLE ... APPLY (PURGE) Cria uma nova versão da tabela quando ela é concluída. Esse tempo de conclusão é o carimbo de data/hora que você deve considerar para o limite de retenção para sua VACUUM operação remover totalmente os arquivos excluídos. Consulte Remover ficheiros de dados não utilizados com vácuo.

Compatibilidade com clientes Delta

O Azure Databricks usa vetores de exclusão para alimentar a E/S preditiva para atualizações na computação habilitada para Photon. Consulte Usar E/S preditiva para acelerar as atualizações.

O suporte para o uso de vetores de exclusão para leituras e gravações varia de acordo com o cliente.

A tabela a seguir indica as versões de cliente necessárias para ler e gravar tabelas Delta com vetores de exclusão habilitados e especifica quais operações de gravação usam vetores de exclusão:

Cliente Vetores de exclusão de gravação Ler vetores de exclusão
Tempo de execução do Databricks com Photon Suporta MERGE, UPDATEe DELETE usando Databricks Runtime 12.2 LTS e superior. Requer Databricks Runtime 12.2 LTS ou superior.
Tempo de execução do Databricks sem fóton Suporta DELETE o uso do Databricks Runtime 12.2 LTS e superior. Suporta UPDATE o uso do Databricks Runtime 14.1 e superior. Suporta MERGE o uso do Databricks Runtime 14.3 LTS e superior. Requer Databricks Runtime 12.2 LTS ou superior.
OSS Apache Spark com OSS Delta Lake Suporta DELETE o uso de OSS Delta 2.4.0 e superior. Suporta UPDATE o uso de OSS Delta 3.0.0 e superior. Requer OSS Delta 2.3.0 ou superior.
Destinatários do Delta Sharing Não há suporte para gravações em tabelas de compartilhamento delta Databricks: Requer DBR 14.1 ou superior. Apache Spark de código aberto: Requer delta-sharing-spark 3.1 ou superior.

Nota

Para obter suporte com outros clientes Delta, consulte a documentação de integrações do OSS Delta Lake.

Limitações

  • O UniForm não suporta vetores de exclusão.
  • Não é possível usar uma instrução GENERATE para gerar um arquivo de manifesto para uma tabela que tenha arquivos usando vetores de exclusão. Para gerar um manifesto, primeiro execute uma REORG TABLE ... APPLY (PURGE) e , em seguida, execute a GENERATE instrução. Você deve garantir que nenhuma operação de gravação simultânea esteja em execução quando você enviar a REORG instrução.
  • Não é possível gerar incrementalmente arquivos de manifesto para uma tabela com vetores de exclusão habilitados (por exemplo, definindo a propriedade delta.compatibility.symlinkFormatManifest.enabled=truetable).
  • Se você habilitar vetores de exclusão em uma exibição materializada ou tabela de streaming e, posteriormente, desabilitar vetores de exclusão, gravações futuras na exibição ou tabela serão impedidas de usar vetores de exclusão, mas os vetores de exclusão existentes não serão removidos.
  • Não é possível fazer downgrade do protocolo de tabela depois de habilitar vetores de exclusão em uma exibição materializada ou tabela de streaming. Depois de ativar, o recurso de tabela para vetores de exclusão não pode ser removido, mesmo se você desativar posteriormente vetores de exclusão na exibição ou tabela.
  • Não é possível executar REORG em visualizações materializadas ou tabelas de streaming para confirmar alterações gravadas em vetores de exclusão em arquivos de dados do Parquet que dão suporte a esses objetos. Devido a essa limitação, não habilite vetores de exclusão em visualizações materializadas ou tabelas de streaming se precisar garantir a exclusão completa de registros (por exemplo, para conformidade com GDPR ou CCPA).