Políticas de compresión y retención
Comprima los chunks antiguos con la compresión columnar de TimescaleDB y elimine automáticamente los chunks caducados.
Políticas de compresión y retención es una lección gratuita de SQL Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de SQL Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de SQL Academy incluye 4 lecciones en total.
¿Por qué comprimir?
Los datos de series temporales se pueden comprimir mucho. TimescaleDB comprime los chunks en formato columnar y suele alcanzar ratios de compresión de 10–20×.
Comprimir una hypertable
Configure qué columnas segmentan y ordenan los datos comprimidos:
ALTER TABLE metrics SET (
timescaledb.compress,
timescaledb.compress_segmentby = 'device_id',
timescaledb.compress_orderby = 'ts DESC'
);Política de compresión
Automatice la compresión de los chunks antiguos:
SELECT add_compression_policy('metrics', INTERVAL '7 days');
-- Chunks older than 7 days get compressed automatically.Rendimiento de las consultas sobre datos comprimidos
Las lecturas en chunks comprimidos siguen siendo rápidas: TimescaleDB envía los filtros al almacén columnar. Las escrituras y actualizaciones en chunks comprimidos son limitadas (principalmente, solo anexado).
Política de retención
Elimine los datos con una antigüedad superior a N intervalos: es rápido al eliminar el chunk y lento al usar DELETE:
SELECT add_retention_policy('metrics', INTERVAL '90 days');
-- Chunks older than 90 days are dropped automatically.Operaciones manuales con chunks
Explore los chunks:
SELECT * FROM chunks_detailed_size('metrics');
SELECT show_chunks('metrics', older_than => INTERVAL '90 days');
SELECT drop_chunks('metrics', older_than => INTERVAL '90 days');Jerarquización del almacenamiento
Mueva los chunks antiguos a un disco lento cambiando el tablespace de cada chunk. Combinado con la compresión, puede conservar años de datos a bajo coste.
Ratios de compresión en la práctica
Ratios habituales en datos de sensores:
- Métricas numéricas: ahorro de espacio superior al 90–95 %
- Categóricos: 70–80 %
- Cadenas/JSON: depende del contenido
Descomprimir para actualizar
Puede descomprimir un chunk para actualizar datos antiguos y volver a comprimirlo después:
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 en PostgreSQL sin TimescaleDB
Sin TimescaleDB, puede implementarlo por su cuenta mediante particiones:
DROP TABLE events_2022; -- retention (fast)
-- No native columnar compression in vanilla Postgres for time-series.Combinar con agregaciones continuas
Patrón habitual: conservar los datos sin procesar durante 30 días, las agregaciones horarias durante 1 año y las agregaciones diarias indefinidamente. Cada nivel se comprime o conserva según corresponda.
Supervisión
Realice un seguimiento del tamaño y el ratio de compresión:
SELECT * FROM hypertable_compression_stats('metrics');Resumen
La compresión y la retención convierten PostgreSQL en un almacén competente para series temporales.
- Comprima los chunks antiguos entre 10 y 20 veces
- La retención elimina los chunks al instante
- Organice los datos sin procesar, horarios y diarios en niveles con distintas retenciones
- Descomprima para rellenar datos históricos si es necesario
Comprobación rápida
Quiere conservar 7 días de métricas sin procesar y eliminar automáticamente todo lo anterior. ¿Cuál es la forma de hacerlo en TimescaleDB?
Preguntas frecuentes
¿La lección «Políticas de compresión y retención» es gratis?
Sí — el texto completo de «Políticas de compresión y retención» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de SQL Academy, actualiza a CoddyKit PRO. El curso de SQL Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Políticas de compresión y retención»?
Comprima los chunks antiguos con la compresión columnar de TimescaleDB y elimine automáticamente los chunks caducados. Practicas SQL Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar SQL Academy?
No se requiere experiencia previa. SQL Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Políticas de compresión y retención»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de SQL Academy?
Sí. Cada lección de SQL Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Hypertables de TimescaleDB
- Agregados continuos
- Políticas de compresión y retención
- Elección de índices para series temporales