如何查看TimescaleDB中指定连续聚合视图对应任务的上次运行时间?
排查TimescaleDB连续聚合视图的更新状态
我来帮你搞定TimescaleDB连续聚合视图的更新状态排查问题,直接上实用的SQL查询和解读:
1. 找出所有正常更新的连续聚合视图
TimescaleDB的连续聚合更新依赖后台定时作业,我们可以通过关联系统信息表来筛选出运行正常的视图:
SELECT ca.view_name AS 连续聚合视图名称, j.job_id AS 后台作业ID, j.schedule_interval AS 更新间隔, j.last_run_success AS 上次运行是否成功, j.last_run_start AS 上次运行开始时间, j.last_run_end AS 上次运行结束时间 FROM timescaledb_information.continuous_aggregates ca JOIN timescaledb_information.jobs j ON ca.materialization_hypertable_name = j.hypertable_name WHERE j.proc_name = 'policy_refresh_continuous_aggregate';
解读结果:
上次运行是否成功为t(true)表示该视图的更新任务上次执行成功- 对比
上次运行结束时间和当前时间,如果和你的更新间隔匹配,说明视图在正常自动刷新 - 如果
上次运行结束时间很久没更新,或者上次运行是否成功为f(false),那这个视图的更新大概率有问题
2. 查看特定连续聚合视图的任务上次运行时间
如果你只关心某个特定视图的状态,直接过滤视图名称即可:
SELECT j.last_run_start AS 上次运行开始时间, j.last_run_end AS 上次运行结束时间, j.last_run_success AS 上次运行是否成功, j.next_run_start AS 下次运行时间 FROM timescaledb_information.continuous_aggregates ca JOIN timescaledb_information.jobs j ON ca.materialization_hypertable_name = j.hypertable_name WHERE ca.view_name = '你的连续聚合视图名称' AND j.proc_name = 'policy_refresh_continuous_aggregate';
记得把你的连续聚合视图名称替换成你要查询的视图名,从结果里就能直接看到这个视图更新任务的最近运行记录,以及下次计划运行的时间。
内容的提问来源于stack exchange,提问作者Mikko Ohtamaa
相关产品推荐
相关产品推荐

