如何回填 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 等帖子中,我了解到可以通过添加INTOWHERE 子句进行回填,但没有任何反应。

为什么会这样,我该如何解决?

【问题讨论】:

【参考方案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 中的连续查询?的主要内容,如果未能解决你的问题,请参考以下文章

「influxDB 原理与实践(三)」连续查询

如何将管道中的版本号添加到 K6-InfluxDB-Grafana 堆栈中,以便在 grafana 中我们也可以根据版本号过滤结果

使用InfluxDB的连续查询解决聚合性能问题

InfluxDB(官方使用说明)

InfluxDB 监控指标分析

InfluxDB 监控指标分析