TimescaleDB 压缩
在 TimescaleDB 中压缩一段时间的数据,可通过 自动压缩策略 或 手动压缩 实现。以下是具体方法及示例:
一、自动压缩策略(推荐)
通过 add_compression_policy
设置自动压缩规则,系统会在数据超过指定时间后自动压缩。
1. 语法
-- 启用超表压缩
ALTER TABLE 表名 SET (timescaledb.compress,timescaledb.compress_orderby = '时间字段 DESC', -- 按时间倒序压缩(提升查询性能)timescaledb.compress_segmentby = '分组字段' -- 可选,按字段分组压缩(如设备ID)
);-- 添加自动压缩策略(压缩超过 N 天的数据)
SELECT add_compression_policy('表名', INTERVAL 'N days');
2. 示例
-- 1. 启用压缩(按时间倒序,按设备ID分组)
ALTER TABLE sensor_data SET (timescaledb.compress,timescaledb.compress_orderby = 'time DESC',timescaledb.compress_segmentby