连续聚合通常用于下采样历史数据。如果数据仅用于分析查询且从不修改,则可以压缩聚合以节省存储空间。
连续聚合的压缩工作方式类似于 超表的压缩。启用压缩且未提供其他选项时,segment_by
值将自动设置为连续聚合的 group by 列,并且 time_bucket
列将在压缩配置中用作 order_by
列。
您可以通过在更改视图时设置 compress
参数来启用和禁用连续聚合的压缩。
对于现有的连续聚合,在
psql
提示符下,启用压缩ALTER MATERIALIZED VIEW cagg_name set (timescaledb.compress = true);禁用压缩
ALTER MATERIALIZED VIEW cagg_name set (timescaledb.compress = false);
如果连续聚合有关联的压缩块,则禁用连续聚合的压缩将失败。在这种情况下,您需要解压缩块,然后在禁用压缩之前删除连续聚合上的任何压缩策略。有关更多详细信息,请参阅解压缩块部分
SELECT decompress_chunk(c, true) FROM show_chunks('cagg_name') c;
在连续聚合上设置压缩策略之前,您应该设置刷新策略。应设置压缩策略间隔,以使主动刷新的区域不被压缩。这是为了防止刷新策略失败。例如,考虑如下刷新策略
SELECT add_continuous_aggregate_policy('cagg_name',start_offset => INTERVAL '30 days',end_offset => INTERVAL '1 day',schedule_interval => INTERVAL '1 hour');
对于这种刷新策略,压缩策略需要 compress_after
参数大于连续聚合策略的 start_offset
参数
SELECT add_compression_policy('cagg_name', compress_after=>'45 days'::interval);
关键词
在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页。