如何在InfluxDB中回填连续查询?

时间:2020-04-20 11:50:32

标签: influxdb influxql

我有一个数据库,其中存储了多年的历史数据。 我的目标是每隔1m间隔对数据进行一次采样,然后保存到其他数据库中。 我的理解是,使用continous query可以轻松实现。

CREATE CONTINUOUS QUERY cq_name ON db_2 
BEGIN 
SELECT last(data_point) AS ldp 
INTO db_2.autogen.data_points 
FROM db.autogen.data_points 
WHERE time > now() - 12w AND time < now() - 10w 
GROUP BY time(1m), * 
END

上面的查询在没有WHERE子句的情况下可以正常工作,并从创建的角度重新采样-向前。 我添加了WHERE子句以回填特定时间段(12到10周前),但是什么也没发生。

从诸如this onethat one之类的帖子中,我了解到通过添加INTOWHERE子句可以实现回填,但是什么也没发生。

那是为什么,我该如何解决?

1 个答案:

答案 0 :(得分:1)

日期/ CQ中的时间被忽略。 CQ不能用于补余。

但是,您可以从查询中删除CQ“包装器”并手动运行它。只要记住要创建窗口即可。

CREATE CONTINUOUS QUERY cq_name ON db_2 
BEGIN 
SELECT last(data_point) AS ldp 
INTO db_2.autogen.data_points 
FROM db.autogen.data_points 
GROUP BY time(1m), * 
END

成为:

SELECT last(data_point) AS ldp 
INTO db_2.autogen.data_points 
FROM db.autogen.data_points 
WHERE time > now() - 12w AND time < now() - 10w 
GROUP BY time(1m), *