时间序列数据的一个内在部分是新数据不断积累,而旧数据很少更新,如果有的话,数据的相关性会随着时间的推移而减少。因此,通常希望删除旧数据以节省磁盘空间。
借助 TimescaleDB,您可以手动删除旧数据块或使用以下 API 实施策略。
创建策略以在后台按计划删除早于特定超表或连续聚合的给定间隔的块。这实施了数据保留策略并按计划删除数据。每个超表只能存在一个保留策略。
必需的参数
名称 | 类型 | 描述 |
relation | 字符串 | 要为其创建策略的超表或连续聚合的名称。 |
drop_after | 间隔或整数 | 策略运行时完全超过此时间间隔的块将被丢弃 |
该drop_after参数应根据超表时间列的类型不同指定:
可选参数
名称 | 类型 | 描述 |
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');删除策略以删除特定超表的块。
必需的参数
名称 | 类型 | 描述 |
relation | 字符串 | 要从中删除策略的超表或连续聚合的名称 |
可选参数
姓名 | 类型 | 描述 |
if_exists | 布尔值 | 设置为 true 以避免在策略不存在时引发错误。默认为假。 |
示例
删除表 conditions 的现有数据保留策略。
SELECT remove_retention_policy('conditions'); | 留言与评论(共有 0 条评论) “” |