0Pricing
SQL Academy · Aula

Políticas de compressão e retenção

Comprima blocos antigos com a compressão colunar do TimescaleDB e remova automaticamente os blocos expirados.

Políticas de compressão e retenção é uma aula grátis de SQL Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de SQL Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de SQL Academy inclui 4 aulas no total.

Por que compactar?

Dados de séries temporais são altamente compactáveis. O TimescaleDB compacta as partições em formato colunar, geralmente alcançando taxas de compactação de 10 a 20 vezes.

Compactando uma hipertabela

Configure quais colunas segmentam e ordenam os dados compactados:

ALTER TABLE metrics SET (
  timescaledb.compress,
  timescaledb.compress_segmentby = 'device_id',
  timescaledb.compress_orderby = 'ts DESC'
);

Política de compactação

Automatize a compactação das partições antigas:

SELECT add_compression_policy('metrics', INTERVAL '7 days');
-- Chunks older than 7 days get compressed automatically.

Desempenho das consultas em dados compactados

As leituras em partições compactadas continuam rápidas — o TimescaleDB empurra os filtros para o armazenamento colunar. As gravações e atualizações em partições compactadas são limitadas, sendo na maioria operações somente de acréscimo.

Política de retenção

Exclua dados mais antigos que N intervalos — rapidamente, removendo a partição, em vez de lentamente, usando DELETE:

SELECT add_retention_policy('metrics', INTERVAL '90 days');
-- Chunks older than 90 days are dropped automatically.

Operações manuais com partições

Explore as partições:

SELECT * FROM chunks_detailed_size('metrics');
SELECT show_chunks('metrics', older_than => INTERVAL '90 days');
SELECT drop_chunks('metrics', older_than => INTERVAL '90 days');

Hierarquização do armazenamento

Mova partições antigas para um disco lento alterando o espaço de tabelas de cada partição. Combinando isso com a compactação, é possível manter anos de dados a baixo custo.

Taxas de compactação na prática

Taxas típicas para dados de sensores:

  • Métricas numéricas: economia de espaço de 90% a 95% ou mais
  • Categorias: 70% a 80%
  • Texto/JSON: depende do conteúdo

Descompactando para atualizar

É possível descompactar uma partição para atualizar dados antigos e compactá-la novamente:

SELECT decompress_chunk(c) FROM show_chunks('metrics', newer_than => INTERVAL '60 days') c;
-- Update / fix
SELECT compress_chunk(c) FROM show_chunks('metrics', newer_than => INTERVAL '60 days') c;

Equivalentes no PostgreSQL comum

Sem o TimescaleDB, é possível criar sua própria solução usando partições:

DROP TABLE events_2022;            -- retention (fast)
-- No native columnar compression in vanilla Postgres for time-series.

Combinando com agregados contínuos

Um padrão comum: manter os dados brutos por 30 dias, as agregações horárias por 1 ano e as agregações diárias indefinidamente. Cada nível é compactado ou mantido conforme a retenção apropriada.

Monitoramento

Acompanhe o tamanho e a taxa de compactação:

SELECT * FROM hypertable_compression_stats('metrics');

Recapitulação

Compactação + retenção transformam o PostgreSQL em um armazenamento competente para séries temporais.

  • Compacte partições antigas em 10 a 20 vezes
  • A retenção remove partições instantaneamente
  • Organize dados brutos, horários e diários em níveis com diferentes períodos de retenção
  • Descompacte para fazer preenchimentos retroativos quando necessário

Verificação rápida

Você quer manter 7 dias de métricas brutas e remover automaticamente tudo o que for mais antigo. Qual é a maneira de fazer isso no TimescaleDB?

Perguntas Frequentes

A aula “Políticas de compressão e retenção” é grátis?

Sim — o texto completo de “Políticas de compressão e retenção” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de SQL Academy, atualize para CoddyKit PRO. O curso de SQL Academy inclui 4 aulas no total.

O que vou aprender em “Políticas de compressão e retenção”?

Comprima blocos antigos com a compressão colunar do TimescaleDB e remova automaticamente os blocos expirados. Você pratica SQL Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar SQL Academy?

Nenhuma experiência prévia é necessária. SQL Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Políticas de compressão e retenção”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de SQL Academy?

Sim. Cada aula de SQL Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Hiper tabelas do TimescaleDB
  2. Agregações contínuas
  3. Políticas de compressão e retenção
  4. Escolha de índices para séries temporais
← Voltar para SQL Academy