Before you set up compression, you need to configure the hypertable for compression and then set up a compression policy.


Before you set up compression for the first time, read the compression blog post and documentation.

You can also compress chunks manually, instead of using an automated compression policy to compress chunks as they age.

Compressed chunks have the following limitations:

  • ROW LEVEL SECURITY is not supported on compressed chunks.
  • Creation of unique constraints on compressed chunks is not supported. You can add them by disabling compression on the hypertable and re-enabling after constraint creation.
  • Timescale SkipScan does not currently work on compressed chunks.

In general, compressing a hypertable imposes some limitations on the types of data modifications that you can perform on data inside a compressed chunk.

This table shows changes to the compression feature, added in different versions of TimescaleDB:

TimescaleDB versionSupported data modifications on compressed chunks
1.5 - 2.0Data and schema modifications are not supported.
2.1 - 2.2Schema may be modified on compressed hypertables. Data modification not supported.
2.3Schema modifications and basic insert of new data is allowed. Deleting, updating and some advanced insert statements are not supported.
2.11Deleting, updating and advanced insert statements are supported.

In TimescaleDB 2.1 and later, you can modify the schema of hypertables that have compressed chunks. Specifically, you can add columns to and rename existing columns of compressed hypertables.

In TimescaleDB 2.3 and later, you can insert data into compressed chunks and to enable compression policies on distributed hypertables.

In TimescaleDB 2.11 and later, you can update and delete compressed data. You can also use advanced insert statements like ON CONFLICT and RETURNING.


Found an issue on this page?

Report an issue!