timescaledb - TimescaleDB 连续聚合视图不会在旧存储桶上刷新
问题描述
我正在尝试使用每天刷新一次视图的策略在超表上创建一个连续的聚合视图。
当我创建视图时它第一次运行很流畅,在 Grafana 上一切看起来都很好。然而,几天后,我发现后台作业大多失败,因此只汇总了部分数据。我试图通过使用以下查询来查找发生了什么,但仍然完全不知道为什么作业失败了!
SELECT *
FROM timescaledb_information.job_stats
WHERE hypertable_name = '_materialized_hypertable_17';
我得到的只是
超表模式 | 超表名 | job_id | last_run_started_at | last_successful_finish | 上次运行状态 | 工作现状 | last_run_duration | 下一个开始 | 总运行次数 | 总成功 | total_failures |
---|---|---|---|---|---|---|---|---|---|---|---|
_timescaledb_internal | _materialized_hypertable_17 | 1013 | 2021-09-05 10:46:11.810904 | 2021-09-01 11:53:41.759126 | 失败的 | 预定的 | 0 年 0 月 0 天 0 小时 0 分钟 0.022373 秒 | 2021-09-08 09:38:41.833277 | 5 | 2 | 3 |
所以我尝试刷新那些丢失的桶的视图。该命令在几毫秒内完成,并说视图已经是最新的,但事实并非如此!那些部分聚合的存储桶根本没有更新。
CALL refresh_continuous_aggregate('daily_system_agg', '2020-09-01', '2020-09-06');
总之,我有两个问题:
1. 我在哪里可以找到有关后台作业失败原因的更多信息?
2. 为什么refresh_continuous_aggregate
没有刷新数据?
创建连续聚合和策略的脚本
CREATE MATERIALIZED VIEW daily_requests_agg
WITH (timescaledb.continuous) AS (
SELECT
time_bucket('1 day', timestamp) as time,
gway,
dest,
api,
count(*) as total
FROM requests
GROUP BY
time,
gway,
dest,
api
);
SELECT add_continuous_aggregate_policy('daily_requests_agg',
start_offset => INTERVAL '1 month',
end_offset => INTERVAL '1 day',
schedule_interval => INTERVAL '1 day');
解决方案
推荐阅读
- javascript - 如何读取文件的内容并将其附加到字符串中,以便稍后将其添加到 html 中?
- java - 重命名类时应该对 javadoc 进行哪些更改?
- python-3.x - 使用字符串而不是 ID 从数据库中获取数据
- php - 如何通过电子邮件查找客户完成的订单?
- c# - 在 Linq 中使用 Group by 获取数据表的数组或 Ienumerable
- docker - Docker - Kibana、APM、Elasticsearch 问题 -
- c++ - 我收到错误“矩阵”类型的无效操作数
*' 和 'int' 到二进制 'operator*' - java - 如何在java中提取双引号之间的字符串?
- c# - 如何从第三种形式将表单打开到面板中?
- c# - 为什么我的模型属性在尝试 POST 时为空?