Compression Methods
Learn how Hypercore compresses time-series data
Tiger Data 101 → TimescaleDB | Section: Hypercore | ⏱ Time: ~2 min
Key compression methods
Section titled “Key compression methods”Dictionary encoding
Section titled “Dictionary encoding”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"
Delta encoding
Section titled “Delta encoding”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]
Gorilla compression
Section titled “Gorilla compression”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
Array encoding
Section titled “Array encoding”For repeated patterns or constant-width structures
Enabling compression
Section titled “Enabling compression”ALTER TABLE sensor_readings SET ( timescaledb.compress, timescaledb.compress_orderby = 'time DESC', timescaledb.compress_segmentby = 'device_id');
-- Add automatic compression policySELECT add_compression_policy('sensor_readings', INTERVAL '7 days');