Skip to content

Compression Methods

Learn how Hypercore compresses time-series data

Tiger Data 101 → TimescaleDB | Section: Hypercore | ⏱ Time: ~2 min

For columns with repeated values (e.g., device IDs, status codes):

  • Store unique values once, reference by ID
  • Example: 1000 rows of "sensor_A" stored as "1 → sensor_A" + 1000 copies of "1"

For numeric sequences with small differences:

  • Store only differences between consecutive values
  • Example: temperatures [22.5, 22.6, 22.4, 22.7] → store [22.5, +0.1, -0.2, +0.3]

Specifically optimized for floating-point time-series (from Facebook's Gorilla paper):

  • Compresses timestamps and floating-point values in log-linear fashion
  • Achieves 10–40x compression on typical sensor/metric data

For repeated patterns or constant-width structures


ALTER TABLE sensor_readings SET (
timescaledb.compress,
timescaledb.compress_orderby = 'time DESC',
timescaledb.compress_segmentby = 'device_id'
);
-- Add automatic compression policy
SELECT add_compression_policy('sensor_readings', INTERVAL '7 days');