我有一个数据库,其中存储了多年的历史数据。
我的目标是每隔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 one和that one之类的帖子中,我了解到通过添加INTO
和WHERE
子句可以实现回填,但是什么也没发生。
那是为什么,我该如何解决?
答案 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), *