Todos os produtos
Search
Central de documentação

Hologres:Compactar arquivos de dados (beta)

Última atualização: Jun 28, 2026

Após importar grandes volumes de dados ou executar muitas operações DELETE ou UPDATE, a fragmentação dos arquivos de dados pode degradar o desempenho de leitura e gravação. A compactação mescla arquivos pequenos em arquivos maiores, restaura a eficiência de armazenamento e melhora a velocidade das consultas.

Como funciona

O Hologres utiliza uma estrutura de dados semelhante a uma LSM-Tree (log-structured merge-tree) para gravações. Todas as gravações são do tipo append-only e convertem escritas aleatórias em sequenciais para maximizar o throughput de escrita. Com o tempo, esse processo gera muitos arquivos pequenos que exigem mesclagem por meio da compactação.

O Hologres oferece suporte a dois tipos de compactação:

  • Auto Compaction: compactação hierárquica com até cinco níveis. Quando um nível acumula mais de cinco arquivos, a compactação é acionada automaticamente e move o resultado para o próximo nível. Por exemplo, cinco arquivos no Nível 0 se fundem em um único arquivo (de até 64 MB por padrão) que passa para o Nível 1. O Auto Compaction mescla apenas arquivos dentro do mesmo nível, nunca entre níveis diferentes.

  • Full Compaction: mescla todos os arquivos de todos os níveis em novos arquivos (de 64 MB cada, por padrão) posicionados no nível final. A Full Compaction deve ser acionada manualmente.

image.png

Quando executar a Full Compaction

O Auto Compaction gerencia a mesclagem rotineira de arquivos continuamente em segundo plano. Execute a Full Compaction apenas quando a fragmentação de arquivos exceder a capacidade de resolução incremental do Auto Compaction, especificamente após uma das seguintes situações:

  • Importação de grandes volumes de dados offline

  • Execução de muitas operações DELETE ou UPDATE

Nota

A Full Compaction é uma operação administrativa que consome muitos recursos e exige quantidades significativas de I/O e CPU. A execução geralmente leva mais de 10 minutos. Execute-a durante períodos de baixa escrita para minimizar o impacto na carga de trabalho.

Executar Full Compaction

Pré-requisitos e limitações

  • A Full Compaction requer o Hologres V2.1 ou posterior. Para atualizar, consulte Atualizar uma instância ou obter suporte online para solicitar uma atualização.

  • Somente tabelas orientadas a colunas e tabelas híbridas de linhas e colunas oferecem suporte à Full Compaction.

  • Em tabelas híbridas de linhas e colunas, a Full Compaction se aplica apenas à parte do armazenamento em colunas.

Sintaxe

SELECT hologres.hg_full_compact_table(
  '<schema_name.table_name>'
  [,'max_file_size_mb=<value>']
);

Parâmetros

Parâmetro

Descrição

Obrigatório

Padrão

schema_name.table_name

Nome da tabela a compactar

Sim

max_file_size_mb

Tamanho máximo em MB para cada arquivo de saída. Deve ser um número inteiro positivo. Definir esse valor muito baixo gera excesso de arquivos pequenos e torna as consultas mais lentas. Não altere este valor a menos que seja necessário.

Não

64

Exemplos

Execute a Full Compaction em public.lineitem:

SELECT hologres.hg_full_compact_table('public.lineitem');

Execute a Full Compaction em public.lineitem com tamanho máximo de arquivo de saída de 256 MB:

SELECT hologres.hg_full_compact_table(
  'public.lineitem',
  'max_file_size_mb=256'
);

Referência

Executar tarefas de compactação usando Serverless Computing