创建一个策略,用于在后台按计划删除特定超表或连续聚合中早于给定间隔的数据块。有关更多信息,请参阅 drop_chunks 部分。这实现了数据保留策略并按计划删除数据。每个超表只能存在一个保留策略。

名称类型描述
relationREGCLASS要为其创建策略的超表或连续聚合的名称
drop_afterINTERVAL 或 INTEGER当策略运行时,完全超过此间隔的数据块将被删除
schedule_intervalINTERVAL上次执行完成时间和下次开始时间之间的间隔。默认为 NULL。
initial_startTIMESTAMPTZ策略首次运行的时间。默认为 NULL。如果省略,则计划间隔是上次执行完成时间和下次开始时间之间的间隔。如果提供,它将作为计算 next_start 的原点。
timezoneTEXT有效的时区。如果还指定了 initial_start,则保留策略的后续执行将与其初始启动对齐。但是,夏令时 (DST) 的更改可能会改变这种对齐。如果这是一个您想要缓解的问题,请设置为有效的时区。如果省略,则执行 UTC 分桶。默认为 NULL

drop_after 参数应根据超表时间列的类型以不同的方式指定

  • 对于具有 TIMESTAMP、TIMESTAMPTZ 和 DATE 时间列的超表:时间间隔应为 INTERVAL 类型。
  • 对于具有基于整数的时间戳的超表:时间间隔应为整数类型(这需要设置 integer_now_func)。
名称类型描述
if_not_existsBOOLEAN如果 drop_chunks_policy 已存在,则设置为 true 以避免错误。而是发出通知。默认为 false
drop_created_beforeINTERVAL创建时间早于此截止点的数据块将被删除。截止点计算为 now() - drop_created_before。默认为 NULL。尚不支持连续聚合。
类型描述
job_idINTEGER为实现此策略而创建的 TimescaleDB 后台作业 ID

创建数据保留策略以丢弃超过 6 个月的数据块

SELECT add_retention_policy('conditions', drop_after => INTERVAL '6 months');

创建具有基于整数的时间列的数据保留策略

SELECT add_retention_policy('conditions', drop_after => BIGINT '600000');

创建数据保留策略以丢弃 6 个月前创建的数据块

SELECT add_retention_policy('conditions', drop_created_before => INTERVAL '6 months');

请注意,当使用 drop_after 时,将使用分区时间列中存在的时间数据范围来选择目标数据块。而当使用 drop_created_before 时,则选择 3 个月前创建的数据块。

关键词

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