在一个步骤中向连续聚合添加刷新、压缩和数据保留策略。添加的压缩和保留策略应用于连续聚合,而不是原始超表。

timescaledb_experimental.add_policies(
relation REGCLASS,
if_not_exists BOOL = false,
refresh_start_offset "any" = NULL,
refresh_end_offset "any" = NULL,
compress_after "any" = NULL,
drop_after "any" = NULL
) RETURNS BOOL
警告

实验性功能可能存在错误。它们可能不向后兼容,并可能在未来的版本中移除。使用这些功能风险自负,请勿在生产环境中使用任何实验性功能。

注意

add_policies() 不允许设置连续聚合的 schedule_interval,而是使用默认值 1 小时。

如果您想设置此值,请手动添加您的策略(请参阅 add_continuous_aggregate_policy)。

名称类型描述
relationREGCLASS策略应应用到的连续聚合
名称类型描述
if_not_existsBOOL如果为 true,则在连续聚合不存在时打印警告而不是报错。默认为 false。
refresh_start_offsetINTERVALINTEGER连续聚合刷新窗口的开始时间,表示为策略运行时间的偏移量。
refresh_end_offsetINTERVALINTEGER连续聚合刷新窗口的结束时间,表示为策略运行时间的偏移量。必须大于 refresh_start_offset
compress_afterINTERVALINTEGER如果连续聚合数据块完全包含早于此间隔的数据,则会对其进行压缩。
drop_afterINTERVALINTEGER如果连续聚合数据块完全包含早于此间隔的数据,则会将其删除。

对于可以是 INTERVALINTEGER 的参数,如果您的时间桶基于时间戳,请使用 INTERVAL。如果您的时间桶基于整数,请使用 INTEGER

如果成功,则返回 true。

给定一个名为 example_continuous_aggregate 的连续聚合,向其添加三个策略

  1. 定期刷新连续聚合以物化 1 天到 2 天旧的数据。
  2. 在 20 天后压缩连续聚合中的数据。
  3. 在 1 年后删除连续聚合中的数据。
SELECT timescaledb_experimental.add_policies(
'example_continuous_aggregate',
refresh_start_offset => '1 day'::interval,
refresh_end_offset => '2 day'::interval,
compress_after => '20 days'::interval,
drop_after => '1 year'::interval
);

关键词

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