Time-Series Data

Time Series Databases (InfluxDB, TimescaleDB, ClickHouse)

Time-series data is a sequence of data points indexed by time. Examples include server metrics, IoT sensor readings, and financial tick data.

Database Comparison

| Feature | InfluxDB | TimescaleDB | QuestDB | |---------|----------|-------------|---------| | Architecture | Custom TS engine | PostgreSQL extension | Columnar | | SQL | Flux / SQL | Full SQL | SQL | | Write throughput | Very high | High | Very high | | Compression | Excellent | Good | Excellent |

InfluxDB

Purpose-built time-series with automatic downsampling:

from influxdb_client import InfluxDBClient

client = InfluxDBClient(url="http://localhost:8086", token="my-token")

write_api = client.write_api()

p = Point("cpu").tag("host", "server01").field("usage_user", 45.2)

write_api.write(bucket="metrics", record=p)

TimescaleDB

PostgreSQL extension with hypertables:

CREATE TABLE sensor_data (

time TIMESTAMPTZ NOT NULL,

device_id INTEGER,

temperature DOUBLE PRECISION

);

SELECT create_hypertable('sensor_data', 'time');

SELECT time_bucket('5m', time) AS bucket,

AVG(temperature) FROM sensor_data

WHERE time > NOW() - INTERVAL '24h'

GROUP BY bucket;

Performance

For 1 billion rows, QuestDB and InfluxDB lead on write throughput. TimescaleDB wins on SQL compatibility. Choose based on your query patterns and ecosystem requirements.

Conclusion

Choose InfluxDB for purpose-built time-series, TimescaleDB for SQL compatibility, and QuestDB for maximum performance. All support downsampling and retention policies.