Tooling

Time-Series Databases

TimescaleDB, InfluxDB, QuestDB, VictoriaMetrics — purpose-built engines for time-series data.

Time-series workloads (metrics, IoT, financial ticks, observability data) have specific patterns: append-heavy, time-ordered, downsampled over windows. Generic OLAP works (DuckDB, ClickHouse — see Data Warehouses) but purpose-built engines win on operational simplicity. For metrics-stack specifics (Prometheus / Mimir / Cortex / Thanos), see Prometheus Stack. For log time-series, see Log Aggregation.

Postgres-flavored

  • TimescaleDB — Postgres extension with hypertables, compression, continuous aggregates, retention policies. Postgres-compatible (use any Postgres tool / driver). License: Timescale License (TSL) for cluster-fingerprinted features; the core "Apache 2.0" edition is fine for a single-node setup. The default if you want time-series + Postgres in one DB.
  • pg_partman + native partitioning — bare-Postgres approach; works but lacks compression / continuous aggregates.
  • pg_timeseries (Tembo) — Apache 2.0 Postgres extension targeting time-series workloads.

Purpose-built (no SQL stack)

  • InfluxDB — the classic; v3 ("InfluxDB 3") rewrote on top of Apache Arrow + DataFusion + Parquet; SQL + InfluxQL + Flux. MIT (Core, edge); paid Cloud Serverless / Dedicated. Default if you want a metric-shaped DB.
  • QuestDB — Apache 2.0; very fast SQL ingest; Postgres wire protocol; simple ops. Default for high-throughput single-node time-series.
  • VictoriaMetrics — Apache 2.0; Prometheus-compatible; scales horizontally; cheap storage. The default Prometheus-compatible TSDB for big environments. See Prometheus Stack.
  • Apache IoTDB — Apache 2.0; oriented at IoT workloads; fast on tens of thousands of devices.
  • TDengine — Apache 2.0 community edition; Chinese-origin; IoT-focused.
  • GreptimeDB — Rust; Apache 2.0; cloud-native time-series + observability DB; growing in 2026.

Specialty

  • Apache Druid — see Data Warehouses; often used for time-bucketed analytics.
  • ClickHouse — also excellent at time-series; especially with MergeTree + ttl policies.
  • kdb+ (KX) — paid; the historical leader in finance; recently added a free 32-bit personal tier.
  • M3DB — Uber's Prometheus-compatible TSDB; Apache 2.0; less active in 2026 than VictoriaMetrics.

Hosted / managed

  • Timescale Cloud — managed TimescaleDB; small free tier.
  • InfluxDB Cloud Serverless / Dedicated — usage-based; small free tier.
  • Grafana Cloud — bundles Prometheus / Mimir / Loki / Tempo; generous free tier; see Observability.
  • AWS Timestream, Azure Time Series Insights — paid cloud-native.

Patterns to know

  • Downsample early, retain selectively. Continuous aggregates (TimescaleDB) / materialized views; raw retention 7d, 1m rollups 90d, 1h rollups 2y.
  • Compression saves 10–20×. TimescaleDB hypertable compression, ClickHouse codecs, InfluxDB v3 columnar Parquet.
  • Tag cardinality is the silent killer. Each unique combination of labels = one series; don't put user_id in a label.
  • Time-aligned writes. Batch by minute / 5-min boundaries; reduces compaction.
  • Out-of-order writes. Most TSDBs handle them but with cost; minimize where possible.
  • Use the right wire protocol. Prometheus remote-write for metrics, line-protocol or HTTP JSON for InfluxDB-shape, SQL for Timescale / QuestDB.

Pick this if…

  • Default new project, want SQL + Postgres ecosystem: TimescaleDB.
  • Default Prometheus-compatible storage at scale: VictoriaMetrics or Mimir.
  • Highest single-node ingest, simplest ops: QuestDB.
  • InfluxDB ecosystem (Telegraf, Flux): InfluxDB v3.
  • Many IoT devices: Apache IoTDB or TDengine.
  • You already run ClickHouse: ClickHouse with MergeTree + TTL; don't add a TSDB.

On this page