TimescaleDB 超表数据保留

TimescaleDB 超表数据保留

时间序列数据的一个内在部分是新数据不断积累,而旧数据很少更新,如果有的话,数据的相关性会随着时间的推移而减少。因此,通常希望删除旧数据以节省磁盘空间。

借助 TimescaleDB,您可以手动删除旧数据块或使用以下 API 实施策略。

1.add_retention_policy()

创建策略以在后台按计划删除早于特定超表或连续聚合的给定间隔的块。这实施了数据保留策略并按计划删除数据。每个超表只能存在一个保留策略。

必需的参数

名称

类型

描述

relation

字符串

要为其创建策略的超表或连续聚合的名称。

drop_after

间隔或整数

策略运行时完全超过此时间间隔的块将被丢弃

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

  • 对于具有 TIMESTAMP、TIMESTAMPTZ 和 DATE 时间列的超表:时间间隔应该是 INTERVAL 类型。
  • 对于具有基于整数的时间戳的超表:时间间隔应该是整数类型。

可选参数

名称

类型

描述

if_not_exists

布尔值

如果 drop_chunks_policy 已经存在,设置为 true 以避免抛出错误。而是发出通知。默认为假。

返回值

类型

描述

job_id

整数

为实施此策略而创建的 TimescaleDB 后台作业 ID

示例

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

SELECT add_retention_policy('conditions', INTERVAL '6 months');

使用基于整数的时间列创建数据保留策略:

SELECT add_retention_policy('conditions', BIGINT '600000');

2.remove_retention_policy()

删除策略以删除特定超表的块。

必需的参数

名称

类型

描述

relation

字符串

要从中删除策略的超表或连续聚合的名称

可选参数

姓名

类型

描述

if_exists

布尔值

设置为 true 以避免在策略不存在时引发错误。默认为假。

示例

删除表 conditions 的现有数据保留策略。

 SELECT remove_retention_policy('conditions'); 



发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章