自动删除时间值超过特定间隔的数据。当您创建数据保留策略时,Timescale 会自动安排后台作业来删除旧的数据块。

通过使用 add_retention_policy 函数添加数据保留策略。

  1. 选择您要向其添加策略的超表。决定您要保留数据多长时间后再删除它。在此示例中,名为 conditions 的超表将数据保留 24 小时。

  2. 调用 add_retention_policy

    SELECT add_retention_policy('conditions', INTERVAL '24 hours');
注意

数据保留策略仅允许您根据数据块在过去的时间长短来删除它们。要根据数据块在未来的时间长短来删除它们,请手动删除数据块

通过使用 remove_retention_policy 函数移除现有的数据保留策略。传递要从中移除策略的超表的名称。

SELECT remove_retention_policy('conditions');

要查看您计划的数据保留作业及其作业统计信息,请查询 timescaledb_information.jobstimescaledb_information.job_stats 表。例如

SELECT j.hypertable_name,
j.job_id,
config,
schedule_interval,
job_status,
last_run_status,
last_run_started_at,
js.next_start,
total_runs,
total_successes,
total_failures
FROM timescaledb_information.jobs j
JOIN timescaledb_information.job_stats js
ON j.job_id = js.job_id
WHERE j.proc_name = 'policy_retention';

结果如下所示

-[ RECORD 1 ]-------+-----------------------------------------------
hypertable_name | conditions
job_id | 1000
config | {"drop_after": "5 years", "hypertable_id": 14}
schedule_interval | 1 day
job_status | Scheduled
last_run_status | Success
last_run_started_at | 2022-05-19 16:15:11.200109+00
next_start | 2022-05-20 16:15:11.243531+00
total_runs | 1
total_successes | 1
total_failures | 0

关键词

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