Skip to content
Navigation

Type at least two characters. Search covers page titles, headings, tags and database names.

↑ ↓ to navigateEnter to openEsc to close0 pages
Time Seriesintermediate

TimescaleDB

PostgreSQL extension adding automatic time partitioning, columnar compression and continuous aggregates.

2 min readIntermediateUpdated Edit this page

What it is

A PostgreSQL extension for time-series workloads. Tables, types, indexes, joins, transactions and the entire PostgreSQL toolchain work unchanged; it adds hypertables, compression and incrementally maintained aggregates. Licensed Apache-2.0 for the core with some features under the Timescale License.

Architecture

A hypertable is a regular table partitioned into chunks by time, transparently to queries. Compression converts older chunks to a columnar layout, typically reducing size by an order of magnitude. Continuous aggregates are materialised views refreshed incrementally by background jobs.

Best use cases

  • Time-series data that must be joined with relational data — the strongest argument for it.
  • Teams already operating PostgreSQL, who gain time-series features without a second system.
  • Workloads needing full SQL, including window functions and joins, over time-series data.
  • Moderate to high ingest volumes on a single well-provisioned node.

When not to use it

  • Very high-cardinality Prometheus-style metrics, where a purpose-built metrics database is more efficient.
  • Ingest rates exceeding what one PostgreSQL node absorbs.
  • Wide analytical event data with ad-hoc queries, where a column store fits better.

Data model

Ordinary PostgreSQL tables converted to hypertables with create_hypertable(). Chunk interval is the main sizing decision: a chunk plus its indexes should fit comfortably in memory.

Consistency and transactions

Full PostgreSQL ACID semantics, unchanged. This is a significant differentiator among time-series engines.

Scaling model

Vertical, plus PostgreSQL read replicas. Compression and continuous aggregates extend the ceiling substantially — most capacity problems here turn out to be unconfigured retention rather than a real limit.

Replication

PostgreSQL streaming replication for availability and read scaling, and logical replication for selective movement. See Streaming Replication.

Backup and recovery

PostgreSQL physical backups with pgBackRest or pg_basebackup plus WAL archiving. Logical dumps of hypertables require the extension's documented procedure rather than a plain pg_dump/pg_restore cycle.

Monitoring

Standard PostgreSQL metrics plus timescaledb_information.jobs and job_stats for the background jobs that perform compression, retention and aggregate refresh.

Common mistakes

Production checklist

See Time Series Production Checklist alongside the PostgreSQL checklist.