如何回填 InfluxDB 中的连续查询?
Posted
技术标签:
【中文标题】如何回填 InfluxDB 中的连续查询?【英文标题】:How to backfill a continuous query in InfluxDB? 【发布时间】:2020-08-02 21:59:58 【问题描述】:我有一个存储多年历史数据的数据库。
我的目标是以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
子句进行回填,但没有任何反应。
为什么会这样,我该如何解决?
【问题讨论】:
【参考方案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), *
【讨论】:
以上是关于如何回填 InfluxDB 中的连续查询?的主要内容,如果未能解决你的问题,请参考以下文章
如何将管道中的版本号添加到 K6-InfluxDB-Grafana 堆栈中,以便在 grafana 中我们也可以根据版本号过滤结果