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
- Hiper tabelas do TimescaleDB
- Agregações contínuas
- Políticas de compressão e retenção
- Escolha de índices para séries temporais