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.
Os vetores de exclusão são um recurso de otimização de armazenamento que acelera as modificações nas tabelas. Por padrão, excluir uma única linha requer reescrever todo o arquivo Parquet que contém esse registro. Os vetores de exclusão evitam essa sobrecarga. Quando os vetores de exclusão são habilitados, as operações DELETE, UPDATE e MERGE marcam linhas como modificadas sem reescrever o arquivo Parquet. Em seguida, as leituras resolvem o estado atual da tabela aplicando as modificações registradas em vetores de exclusão.
O Databricks recomenda usar o Databricks Runtime 14.3 LTS e superior para gravar tabelas com vetores de exclusão para usar todas as otimizações. Para ler tabelas com vetores de exclusão habilitados, use o Databricks Runtime 12.2 LTS e superior.
No Databricks Runtime 14.2 e versões superiores, as tabelas com vetores de exclusão dão suporte à concorrência de nível de linha. Consulte simultaneidade em nível de linha.
Observação
Para atualizações de E/S preditivas, o Photon usa vetores de exclusão para acelerar as operações DELETE, MERGE e UPDATE. Consulte Usar E/S preditiva para acelerar atualizações.
Habilitar vetores de exclusão
Nas configurações do workspace, você pode habilitar vetores de exclusão em novas tabelas ao usar um SQL Warehouse ou Databricks Runtime 14.3 LTS ou superior. As configurações padrão variam de acordo com a região, consulte Vetores de exclusão com habilitação automática.
Os vetores de exclusão não são habilitados por padrão para exibições materializadas e tabelas de streaming armazenadas no metastore do Hive.
Para habilitar ou remover manualmente o suporte para vetores de exclusão em qualquer tabela ou exibição, incluindo tabelas de streaming e exibições materializadas, use a propriedade da enableDeletionVectors tabela. Para habilitar vetores de exclusão em uma tabela ao criar ou alterar uma tabela:
-- For Delta tables
CREATE TABLE <table-name> [options] TBLPROPERTIES ('delta.enableDeletionVectors' = true);
ALTER TABLE <table-name> SET TBLPROPERTIES ('delta.enableDeletionVectors' = true);
Você não pode usar uma instrução ALTER para habilitar ou remover vetores de exclusão em uma exibição materializada ou tabela de streaming.
Para tabelas Iceberg, use iceberg.enableDeletionVectors em vez de delta.enableDeletionVectors.
Aviso
Quando você habilita vetores de exclusão, o Databricks atualiza o protocolo de tabela. Após a atualização, os clientes sem o suporte ao vetor de exclusão não podem ler a tabela. Consulte a compatibilidade de recursos e protocolos 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. Confira Remover um recurso de tabela do Delta Lake e fazer downgrade do protocolo de tabela.
Aplicar alterações aos arquivos de dados Parquet
Os vetores de exclusão indicam alterações nas linhas como exclusões lógicas que modificam logicamente os arquivos de dados Parquet existentes na tabela. Essas alterações são aplicadas fisicamente quando um dos seguintes eventos faz com que os arquivos de dados sejam regravados:
- 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. Algumas alterações registradas em vetores de exclusão podem não ser aplicadas fisicamente 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 REORG TABLE.
Excluir dados antigos fisicamente
Os dados modificados ainda podem existir nos arquivos de dados antigos de uma tabela após uma operação de limpeza. Talvez você queira remover fisicamente os dados, por exemplo, para reduzir os custos de armazenamento com seu provedor de nuvem ou para atender às solicitações de RGPD.
Execute VACUUM para excluir fisicamente os arquivos antigos. A REORG TABLE ... APPLY (PURGE) operação cria uma nova versão da tabela quando é concluída. Para remover totalmente os arquivos excluídos das versões anteriores da tabela, você deve definir o limite de retenção para VACUUM o timestamp de conclusão da operação de limpeza. Confira Purgar exclusões apenas de metadados para forçar a regeneração de dados.
Melhorar o desempenho de tabelas grandes
Para melhorar o desempenho quando você limpar dados excluídos suavemente em tabelas grandes, defina spark.databricks.delta.reorg.purgeMode como rows. Por exemplo, defina essa configuração quando limpar dados manualmente com REORG TABLE ... APPLY (PURGE) ou quando remover vetores de exclusão com ALTER TABLE DROP FEATURE deletionVectors.
Por padrão, spark.databricks.delta.reorg.purgeMode é definido como all. Em tabelas grandes, essa operação pode ser lenta porque as operações de limpeza devem verificar todos os rodapés de arquivo Parquet para verificar se há dados de coluna descartados e linhas excluídas suavemente.
O rows valor limita a operação para lidar apenas com arquivos com linhas excluídas suavemente. Em tabelas grandes, isso poderá melhorar o desempenho se muitos arquivos não contiverem linhas excluídas suavemente e a tabela não tiver colunas descartadas.
Compatibilidade do cliente
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 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 mostra as versões de cliente necessárias para ler e gravar tabelas com vetores de exclusão habilitados e especifica quais operações de gravação usam vetores de exclusão:
| Cliente | Gravar vetores de exclusão | Vetores de leitura 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 a UPDATE com o uso do Databricks Runtime 14.1 e superior. Dá suporte ao MERGE usando o Databricks Runtime 14.3 LTS ou versões superiores. |
Requer o Databricks Runtime 12.2 LTS ou superior. |
| OSS Apache Spark com OSS Delta Lake | Oferece suporte ao uso do OSS Delta 2.4.0 e superior por DELETE. Oferece suporte de UPDATE usando OSS Delta 3.0.0 e superior. |
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 o Databricks Runtime 14.1 ou superior. Apache Spark de código aberto: requer delta-sharing-spark 3.1 ou superior. |
Para obter suporte com outros clientes, consulte a documentação de integrações do Delta Lake do OSS.
Limitações
- O Iceberg UniForm v2 não dá suporte a vetores de exclusão. O Apache Iceberg v3 dá suporte a vetores de exclusão em tabelas com UniForm habilitado. Consulte Usar recursos do Apache Iceberg v3.
- Você não pode 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 a instrução REORG TABLE APPLY (PURGE) e, em seguida, execute a instrução
GENERATE. Você deve garantir que nenhuma operação de gravação simultânea esteja em execução ao submeter a instruçãoREORG. - Não é possível gerar arquivos de manifesto incrementalmente para uma tabela com vetores de exclusão habilitados (por exemplo, ao definir a propriedade da tabela
delta.compatibility.symlinkFormatManifest.enabled=true). - Se você habilitar vetores de exclusão em uma exibição materializada ou tabela streaming e, posteriormente, remover vetores de exclusão, os vetores de exclusão não se aplicarão a gravações futuras na exibição ou tabela, mas os vetores de exclusão existentes permanecerão.
- 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. Após a ativação, o recurso de tabela para vetores de exclusão não pode ser removido, mesmo que você desative posteriormente os vetores de exclusão na exibição ou tabela.