Share via


O que são vetores de exclusão?

Os vetores de exclusão são um recurso de otimização de armazenamento que pode ser habilitado em tabelas Delta Lake. Por padrão, quando uma única linha em um arquivo de dados é excluída, todo o arquivo Parquet que contém o registro deve ser reescrito. Com os vetores de exclusão habilitados para a tabela, as operações DELETE, UPDATE e MERGE usam vetores de exclusão para marcar as 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 anotadas por vetores de exclusão à versão mais recente da tabela.

O Databricks recomenda usar o Databricks Runtime 14.3 LTS e versões superiores para gravar tabelas com vetores de exclusão, a fim de aproveitar 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, as tabelas com vetores de exclusão dão suporte à simultaneidade de nível de linha. Consulte Conflitos de gravação com simultaneidade em nível de linha.

Observação

O Photon utiliza vetores de exclusão para atualizações de E/S preditivas, aceleração de DELETE, MERGE e operações UPDATE. Todos os clientes que dão suporte à leitura de vetores de exclusão podem ler atualizações que produziram vetores de exclusão, independentemente de essas atualizações terem sido produzidas por E/S preditiva. Consulte Usar E/S preditiva para acelerar atualizações.

Habilitar vetores de exclusão

Importante

Uma configuração de administrador do workspace controla se os vetores de exclusão estão habilitados automaticamente para novas tabelas Delta. Consulte Habilitar automaticamente os vetores de exclusão.

Você deve habilitar o suporte a vetores de exclusão em uma tabela Delta Lake definindo uma propriedade de tabela Delta Lake. Você deve habilitar os vetores de exclusão durante a criação da tabela ou alterar uma tabela existente, como nos exemplos a seguir:

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

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

Aviso

Quando você habilita os vetores de exclusão, a versão do protocolo de tabela é atualizada. Após a atualização, a tabela não será legível por clientes do Delta Lake que não dão suporte a vetores de exclusão. Confira Como o Azure Databricks gerencia a compatibilidade de recursos 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 Remover os recursos da tabela Delta.

Aplicar alterações aos arquivos de dados Parquet

Os vetores de exclusão indicam alterações nas linhas como exclusões temporárias que modificam logicamente os arquivos de dados Parquet existentes na tabela Delta Lake. Essas alterações são aplicadas fisicamente quando os arquivos de dados são reescritos, conforme disparado por um dos seguintes eventos:

  • Um comando OPTIMIZE é executado na tabela.
  • A compactação automática dispara uma reescrita de um arquivo de dados com um vetor de exclusão.
  • REORG TABLE ... APPLY (PURGE) é executado em relação à tabela.

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 que contêm registros com modificações registradas usando vetores de exclusão. Consulte a TABELA REORG .

Observação

Os dados modificados ainda podem existir nos arquivos antigos. Você pode executar o VACUUM para excluir fisicamente os arquivos antigos. REORG TABLE ... APPLY (PURGE) cria uma nova versão da tabela no momento em que ela é concluída, que é o carimbo de data/hora que você deve considerar para que o limite de retenção da operação VACUUM remova totalmente os arquivos excluídos. Confira Remover arquivos de dados não utilizados com o vacuum.

Compatibilidade com clientes Delta

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

O suporte para aproveitar os 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 utilizam vetores de exclusão:

Cliente Gravar vetores de exclusão Vetores de exclusão
Databricks Runtime com Photon Dá suporte a MERGE, UPDATEe DELETE, usando o Databricks Runtime 12.2 LTS e superior. Requer o Databricks Runtime 12.2 LTS ou superior.
Databricks Runtime sem Photon Dá suporte a DELETE usando o Databricks Runtime 12.2 LTS e superior. Oferece suporte ao uso do Databricks Runtime 14.1 e superior por UPDATE. Dá suporte à operação MERGE usando o Databricks Runtime 14.3 LTS e superior. Requer o Databricks Runtime 12.2 LTS ou superior.
OOS Apache Spark com OSS Delta Lake Oferece suporte ao uso do OSS Delta 2.4.0 e superior por DELETE. Oferece suporte ao uso do OSS Delta 3.0.0 e superior por UPDATE. Requer o OSS Delta 2.3.0 ou superior.
Destinatários de compartilhamento Delta Não há suporte para gravações em tabelas de compartilhamento Delta Databricks: requer DBR 14.1 ou superior. Apache Spark de software livre: requer delta-sharing-spark 3.1 ou superior.

Observação

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

Limitações

  • O UniForm não dá suporte a vetores de exclusão.
  • Você pode habilitar vetores de exclusão para exibições materializadas, mas para desabilitar vetores de exclusão para uma exibição materializada, você precisa mover a exibição materializada e recriá-la.
  • Não é possível gerar um arquivo de manifesto para uma tabela com vetores de exclusão presentes. Para gerar um manifesto, execute REORG TABLE ... APPLY (PURGE) e certifique-se de que nenhuma operação de gravação simultânea está em execução.
  • Não é possível gerar arquivos de manifesto incrementalmente para uma tabela com vetores de exclusão habilitados.