You can enable compression on individual hypertables, by declaring which column you want to segment by.

This procedure uses an example table, called example, and segments it by the device_id column. Every chunk that is more than seven days old is then marked to be automatically compressed. The source data is organized like this:

timedevice_idcpudisk_ioenergy_consumption
8/22/2019 0:00188.2200.8
8/22/2019 0:052300.5300.9
  1. At the psql prompt, alter the table:

    ALTER TABLE example SET (
    timescaledb.compress,
    timescaledb.compress_segmentby = 'device_id'
    );
  2. Add a compression policy to compress chunks that are older than seven days:

    SELECT add_compression_policy('example', INTERVAL '7 days');

For more information, see the API reference for ALTER TABLE (compression) and add_compression_policy.

To view the compression policy that you've set:

SELECT * FROM timescaledb_information.jobs
WHERE proc_name='policy_compression';

For more information, see the API reference for timescaledb_information.jobs.

To remove a compression policy, use remove_compression_policy. For example, to remove a compression policy for a hypertable named cpu:

SELECT remove_compression_policy('cpu');

For more information, see the API reference for remove_compression_policy.

You can disable compression entirely on individual hypertables. This command works only if you don't currently have any compressed chunks:

ALTER TABLE <TABLE_NAME> SET (timescaledb.compress=false);

If your hypertable contains compressed chunks, you need to decompress each chunk individually before you can turn off compression.

Keywords

Found an issue on this page?Report an issue or Edit this page in GitHub.