A hypertable is a regular PostgreSQL table that TimescaleDB automatically partitions and manages for time-series data. Its partitions are called chunks, and each chunk is a regular PostgreSQL child table. section 9.4
SELECT create_hypertable(
relation => 'watch.heart_rate_measurements',
dimension => by_range('recorded_at', interval '1 month'),
create_default_indexes => false
);
Convert the heart-rate table into a hypertable partitioned by monthly ranges of recorded_at, while leaving default index creation disabled. section 9.4
The dimension defines the partitioning method and time column. Monthly ranges suit the small smartwatch dataset, but larger deployments may need daily, hourly, or device-based partitions to avoid oversized chunks. section 9.4
Inspecting and extending chunks
Use show_chunks('watch.heart_rate_measurements') to list managed partitions. Inserting a reading at 2025-12-08 00:25 creates a new chunk covering 2025-12-08 through 2026-01-07. An EXPLAIN query restricted to that time range scans only the new chunk. section 9.4
Hypertables also store continuous-aggregate results in partitioned hypertables, allowing precomputed time buckets to be queried like regular tables. section 9.6.1
