TimescaleDB transforme PostgreSQL en base optimisée pour séries temporelles : métriques IoT, capteurs, logs structurés, données financières. Compression auto, partitioning par time, agrégations rapides.
Voir notre guide extensions PG.
Installation
docker run -d \
-e POSTGRES_PASSWORD=secret \
timescale/timescaledb:latest-pg16
# Dans psql
CREATE EXTENSION timescaledb;
Hypertable
CREATE TABLE sensor_data (
time timestamptz NOT NULL,
sensor_id integer NOT NULL,
temperature double precision,
humidity double precision
);
-- Convertir en hypertable (partitioning auto par time)
SELECT create_hypertable('sensor_data', 'time');
-- Index supplémentaire
CREATE INDEX ON sensor_data (sensor_id, time DESC);
Insertions massives
INSERT INTO sensor_data (time, sensor_id, temperature, humidity)
VALUES (now(), 1, 28.5, 65.2);
-- Bulk insert : 100 000 rows/s sur VPS modeste
Agrégations rapides
-- Moyenne température par heure aujourd'hui
SELECT
time_bucket('1 hour', time) AS hour,
AVG(temperature) AS avg_temp
FROM sensor_data
WHERE time > now() - INTERVAL '1 day'
GROUP BY hour
ORDER BY hour;
Compression automatique
ALTER TABLE sensor_data SET (
timescaledb.compress,
timescaledb.compress_segmentby = 'sensor_id'
);
SELECT add_compression_policy('sensor_data', INTERVAL '7 days');
Données > 7 jours auto-compressées (généralement 10-20x ratio).
Retention policy
SELECT add_retention_policy('sensor_data', INTERVAL '1 year');
Cas d’usage Afrique
- IoT agriculture : capteurs température/humidité dans les champs
- Téléphonie/réseau : métriques par heure
- Apps fitness : données utilisateur historique
- Trading : prix d’actifs en time series
Pour aller plus loin
- Guide extensions PG
- Documentation TimescaleDB : docs.timescale.com