您可以在单个超表上启用压缩,方法是声明要按哪个列进行分段。
此页面使用一个名为 example
的示例表,并按 device_id
列对其进行分段。然后,将超过七天前的每个数据块标记为自动压缩。源数据组织如下
时间 | 设备 ID | CPU | 磁盘 IO | 能耗 |
---|---|---|---|---|
8/22/2019 0:00 | 1 | 88.2 | 20 | 0.8 |
8/22/2019 0:05 | 2 | 300.5 | 30 | 0.9 |
在
psql
提示符下,更改表ALTER TABLE example SET (timescaledb.compress,timescaledb.compress_segmentby = 'device_id');添加压缩策略以压缩超过七天的数据块
SELECT add_compression_policy('example', INTERVAL '7 days');
有关更多信息,请参阅 API 参考文档 ALTER TABLE (compression)
和 add_compression_policy
。
要查看您设置的压缩策略
SELECT * FROM timescaledb_information.jobsWHERE 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 上编辑此页。