首页 > 解决方案 > Timescaledb:如何停止数据库中的所有连续聚合作业

问题描述

我通过转储和重新导入数据从 TimescaleDB 创建测试和静态分析副本。这些数据库是只读的,没有新数据进入。但是,由于它们是原始 TimescaleDB 数据库的副本,它们仍然在运行连续聚合作业。

这些作业,因为它们无关紧要,似乎仍然会导致不必要的唤醒和后台 CPU 使用。

如何禁用 TimescaleDB 中的所有连续聚合作业?

标签: timescaledb

解决方案


这些作业通过自动化策略进行管理。您应该能够识别由此安排的作业

SELECT * FROM timescaledb_information.jobs;

您可以使用作业 ID 更改作业(示例使用 id 1000):

SELECT alter_job(1000, scheduled => false);

...或更改所有连续聚合作业...

SELECT alter_job(job_id, scheduled => false)
FROM timescaledb_information.jobs
WHERE proc_name = 'policy_refresh_continuous_aggregate' 
AND hypertable_name = 'yourhypertablename'

或者,如果您想完全删除它们,那么您可以使用

SELECT delete_job(1000);

注意:这也会停止任何当前正在运行的作业。如果您想重新启动它们,那么更改可能比删除更好。

您可以通过查找自动化策略从 TimescaleDB 文档中获得此信息,最好通读一遍,以便了解这可能产生的任何影响。

透明度:我为 Timescale 工作


推荐阅读