TimescaleDB:如何停用数据库中所有连续聚合作业
禁用TimescaleDB所有连续聚合作业操作指南
如果当前测试副本处于只读状态,需要先临时调整为可写状态完成配置修改,操作完成后可切回只读模式。
操作步骤
- 第一步:查询所有现存连续聚合作业的ID和对应信息
执行以下SQL获取全量连续聚合刷新作业列表:SELECT job_id, hypertable_schema, hypertable_name, proc_name FROM timescaledb_information.jobs WHERE proc_name = 'policy_refresh_continuous_aggregate'; - 第二步:禁用连续聚合作业,支持两种操作方式
- 单个指定作业禁用
将下方语句中的JOB_ID替换为第一步查询到的对应作业ID即可:
SELECT alter_job(JOB_ID, scheduled => false);- 批量禁用所有连续聚合作业
直接执行以下匿名块语句一键禁用全部符合条件的作业:
DO $$ DECLARE r record; BEGIN FOR r IN SELECT job_id FROM timescaledb_information.jobs WHERE proc_name = 'policy_refresh_continuous_aggregate' LOOP PERFORM alter_job(r.job_id, scheduled => false); END LOOP; END $$; - 单个指定作业禁用
- 第三步:验证禁用结果
执行以下SQL查看作业调度状态,scheduled列全部返回f即代表禁用成功:SELECT job_id, hypertable_name, scheduled FROM timescaledb_information.jobs WHERE proc_name = 'policy_refresh_continuous_aggregate';
补充说明
如果后续需要手动刷新某一个连续聚合的数据,可直接执行以下语句,不会触发自动调度:
CALL refresh_continuous_aggregate('你的连续聚合名称', '刷新起始时间', '刷新结束时间');
内容的提问来源于stack exchange,提问作者Mikko Ohtamaa
相关产品推荐
相关产品推荐

