Share via


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

Os vectores de eliminação são uma funcionalidade de otimização de armazenamento que pode ser ativada em 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 eliminações anotadas pelos vetores de eliminação à versão mais recente da tabela.

A Databricks recomenda o uso do Databricks Runtime 14.3 LTS e superior para escrever tabelas com vetores de exclusão para 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, 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 vetores de exclusão de leitura 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.

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.

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

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 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 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 os arquivos de dados são regravados, conforme acionado por um dos seguintes eventos:

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

Compatibilidade com clientes Delta

O Azure Databricks aproveita os 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 alavancar 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 aproveitam 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 em 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.
  • Você pode habilitar vetores de exclusão para modos de exibição Materializados, mas para desabilitar vetores de exclusão para um modo de exibição Materializado, você deve soltar o modo de exibição Materializado e recriá-lo.
  • 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 esteja em execução.
  • Não é possível gerar incrementalmente arquivos de manifesto para uma tabela com vetores de exclusão habilitados.