您可以在单个超表上启用压缩,方法是声明要按哪个列进行分段。

此页面使用一个名为 example 的示例表,并按 device_id 列对其进行分段。然后,将超过七天前的每个数据块标记为自动压缩。源数据组织如下

时间设备 IDCPU磁盘 IO能耗
8/22/2019 0:00188.2200.8
8/22/2019 0:052300.5300.9
  1. psql 提示符下,更改表

    ALTER TABLE example SET (
    timescaledb.compress,
    timescaledb.compress_segmentby = 'device_id'
    );
  2. 添加压缩策略以压缩超过七天的数据块

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

有关更多信息,请参阅 API 参考文档 ALTER TABLE (compression)add_compression_policy

要查看您设置的压缩策略

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

有关更多信息,请参阅 API 参考文档 timescaledb_information.jobs

要临时禁用压缩策略,请找到相应的作业 ID,然后调用 alter_job 以暂停它

SELECT * FROM timescaledb_information.jobs where proc_name = 'policy_compression' AND relname = 'example'
SELECT alter_job(<job_id>, scheduled => false);

要再次启用它

SELECT alter_job(<job_id>, scheduled => true);

要移除压缩策略,请使用 remove_compression_policy

SELECT remove_compression_policy('example');

有关更多信息,请参阅 API 参考文档 remove_compression_policy

您可以完全禁用单个超表上的压缩。此命令仅在您当前没有任何压缩数据块时有效

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

如果您的超表包含压缩的数据块,您需要先解压缩每个数据块,然后才能关闭压缩。

关键词

在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页