Hypertables de TimescaleDB
Convierta una tabla de Postgres en una hypertable de TimescaleDB, con particionado temporal automático mediante intervalos de chunks.
Hypertables de TimescaleDB es una lección gratuita de SQL Academy en CoddyKit. Esta es la lección 1 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.
¿Qué es TimescaleDB?
Una extensión de PostgreSQL creada para datos de series temporales. Añade particionamiento temporal automático, compresión, retención y agregaciones continuas. Puede usarse de forma independiente o junto con PostgreSQL normal.
Hypertable
Una única tabla lógica que se divide físicamente en "chunks" según el tiempo:
CREATE EXTENSION IF NOT EXISTS timescaledb;
CREATE TABLE metrics (
ts TIMESTAMPTZ NOT NULL,
device_id BIGINT NOT NULL,
value DOUBLE PRECISION
);
SELECT create_hypertable('metrics', 'ts');
-- metrics is now a hypertable, chunks created automatically.Intervalo temporal de los chunks
El chunk predeterminado dura 7 días. Ajústelo según la velocidad de sus datos (use chunks más pequeños para datos de alta velocidad):
SELECT create_hypertable('metrics', 'ts', chunk_time_interval => INTERVAL '1 day');
-- One chunk per day, smaller and faster to drop.Insertar datos
Solo necesita un INSERT normal: TimescaleDB dirige las filas al chunk correspondiente:
INSERT INTO metrics (ts, device_id, value)
VALUES (NOW(), 1, 42.5);Consultar hypertables
Se comportan como una tabla normal. El planificador descarta los chunks que no corresponden a las consultas acotadas por tiempo:
SELECT * FROM metrics
WHERE ts >= NOW() - INTERVAL '7 days'
ORDER BY ts DESC LIMIT 100;
-- Only the relevant chunks are read.time_bucket: date_trunc más inteligente
El asistente de agrupación de TimescaleDB:
SELECT time_bucket('1 hour', ts) AS hour,
AVG(value) AS avg_value
FROM metrics
WHERE device_id = 42
AND ts >= NOW() - INTERVAL '24 hours'
GROUP BY hour
ORDER BY hour;Particionamiento por varias columnas
Para cargas de trabajo multiinquilino, particione también por device_id:
SELECT create_hypertable('metrics', 'ts', 'device_id', 4);
-- Hash-partitions device_id into 4 space partitions per time chunk.Consultar con ambos filtros
El mejor rendimiento se obtiene cuando se filtran ambas dimensiones de particionamiento:
SELECT * FROM metrics
WHERE device_id = 42
AND ts >= NOW() - INTERVAL '7 days';
-- Prunes by both time and space.Índices en hypertables
Los índices se propagan a cada chunk:
CREATE INDEX metrics_device_idx ON metrics (device_id, ts DESC);
-- Composite index ideal for 'recent data for one device' queries.Actualizar hypertables
Los UPDATE y DELETE funcionan, pero deberían ser poco frecuentes en las series temporales. Los datos antiguos suelen ser de solo anexado e inmutables.
Migrar desde tablas normales
Las tablas existentes se pueden convertir en hypertables:
SELECT create_hypertable('metrics', 'ts', migrate_data => true);Resumen
Las hypertables ofrecen particionamiento temporal automático para PostgreSQL.
- Una tabla lógica y muchos chunks físicos
- create_hypertable + chunk_time_interval
- time_bucket para agregaciones agrupadas
- Los índices se propagan a todos los chunks
Comprobación rápida
Está incorporando métricas de IoT a 100.000 filas por segundo. ¿Por qué convertiría la tabla en una hypertable de TimescaleDB?
Preguntas frecuentes
¿La lección «Hypertables de TimescaleDB» es gratis?
Sí — el texto completo de «Hypertables de TimescaleDB» 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 «Hypertables de TimescaleDB»?
Convierta una tabla de Postgres en una hypertable de TimescaleDB, con particionado temporal automático mediante intervalos de chunks. 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 1 de 4.
¿Cuánto tiempo toma la lección «Hypertables de TimescaleDB»?
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