O que são vetores de deleção?

Os vetores de exclusão são um recurso de otimização de armazenamento que pode ser ativado nas tabelas do Delta Lake. Pelo site default, quando uma única linha de um arquivo de dados é excluída, todo o arquivo Parquet que contém o registro deve ser reescrito. Com os vetores de exclusão ativados 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 pelos vetores de exclusão à versão mais recente da tabela.

Databricks recomenda usar o Databricks Runtime 14.3 LTS e o acima para escrever tabelas com vetores de exclusão para aproveitar todas as otimizações. O senhor pode ler tabelas com vetores de exclusão ativados em Databricks Runtime 12.2 LTS e acima.

No Databricks Runtime 14.2 e acima, as tabelas com vetores de exclusão dão suporte à simultaneidade em nível de linha. Consulte Conflitos de gravação com simultaneidade em nível de linha.

Observação

O Photon aproveita os vetores de exclusão para atualizações preditivas de E/S, acelerando as operações DELETE, MERGE e UPDATE . Todos os clientes que oferecem 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 as atualizações.

Ativar vetores de exclusão

Importante

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

Você habilita o suporte para vetores de exclusão em uma tabela Delta Lake definindo uma propriedade de tabela Delta Lake. Você habilita vetores de exclusão durante a criação da tabela ou altera 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

Ao ativar vetores de exclusão, o protocolo da tabela é atualizado. Após a atualização, a tabela não poderá ser lida por clientes Delta Lake que não suportam vetores de exclusão. Consulte Como o Databricks gerencia a compatibilidade de recursos do Delta Lake?.

No Databricks Runtime 14.1 e acima, você pode descartar o recurso de tabela de vetores de exclusão para permitir a compatibilidade com outros clientes Delta. Consulte Eliminar recurso da tabela Delta.

Aplicar alterações aos arquivos de dados do Parquet

Os vetores de exclusão indicam alterações nas linhas como exclusões reversíveis 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 regravados, conforme acionado por um dos seguintes eventos:

  • Um comando OPTIMIZE é executado na tabela.

  • A compactação automática aciona uma regravação de um arquivo de dados com um vetor de exclusão.

  • REORG TABLE ... APPLY (PURGE) é a execução contra a mesa.

Os eventos relacionados à compactação de arquivo 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 arquivo. REORG TABLE ... APPLY (PURGE) reescreve todos os arquivos de dados contendo registros com modificações registradas usando vetores de exclusão. Consulte TABELA REORG.

Observação

Os 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 no momento em que é concluída, que é o carimbo de data/hora que você deve considerar para o limite de retenção de suas operações VACUUM para remover totalmente os arquivos excluídos. Consulte Remover arquivos de dados não utilizados com vácuo.

Compatibilidade com clientes Delta

O Databricks aproveita vetores de exclusão para potencializar E/S preditiva para atualizações na compute habilitada para Photon. Consulte Usar E/S preditiva para acelerar atualizações.

O suporte para aproveitar 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 leitura e gravação de 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

Ler vetores de exclusão

Databricks Runtime com Photon

Oferece suporte a MERGE, UPDATE e DELETE usando Databricks Runtime 12.2 LTS e acima.

É necessário o site Databricks Runtime 12.2 LTS ou acima.

Databricks Runtime sem Photon

Suporta DELETE usando Databricks Runtime 12.2 LTS e acima. Suporta UPDATE usando Databricks Runtime 14.1 e acima. Oferece suporte a MERGE usando Databricks Runtime 14.3 LTS e acima.

É necessário o site Databricks Runtime 12.2 LTS ou acima.

OSS Apache Spark com OSS Delta Lake

Suporta DELETE usando OSS Delta 2.4.0 e acima. Suporta UPDATE usando OSS Delta 3.0.0 e acima.

Requer OSS Delta 2.3.0 ou acima.

Destinatários de compartilhamento Delta

As gravações não são compatíveis com as tabelas do site Delta Sharing

Databricks: Requer o DBR 14.1 ou superior. Apache Spark de código aberto: Requer delta-sharing-spark 3.1 ou acima.

Observação

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

Limitações

  • O UniForm não oferece suporte a vetores de exclusão.

  • O senhor pode ativar os vetores de exclusão para a visualização materializada, mas para desativar os vetores de exclusão para uma visualização materializada view, é necessário remover a visualização materializada view e recriá-la.

  • O senhor não pode 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 concorrente esteja em execução.

  • O senhor não pode gerar arquivos de manifesto de forma incremental para uma tabela com vetores de exclusão ativados.