Timescale Cloud:性能、扩展、企业级

自托管产品

MST

连续聚合通常用于对历史数据进行降采样。如果数据仅用于分析查询且从不修改,您可以压缩该聚合以节省存储空间。

旧 API 自 TimescaleDB v2.18.0 已替换为 将连续聚合转换为列式存储
警告

2.11.0 版本之前,您无法刷新连续聚合的压缩区域。为避免压缩和刷新之间的冲突,请确保将 compress_after 设置为比 刷新策略start_offset 更大的时间间隔。

连续聚合的压缩工作方式与超表上的压缩类似。启用压缩且未提供其他选项时,segment_by 值将自动设置为连续聚合的 group by 列,而 time_bucket 列将用作压缩配置中的 order_by 列。

您可以通过在修改视图时设置 compress 参数来启用和禁用连续聚合的压缩。

  1. 对于现有的连续聚合,在 psql 提示符下,启用压缩

    ALTER MATERIALIZED VIEW cagg_name set (timescaledb.compress = true);
  2. 禁用压缩

    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);

关键词