连续查询以计算 InfluxDB 中的差异
Continuous query to calculate difference in InfluxDB
连续查询最常见的用途是计算平均值等
CREATE CONTINUOUS QUERY minnie ON world BEGIN SELECT min(mouse) INTO min_mouse FROM zoo GROUP BY time(30m) END
我有带增量值的数据点
我正在尝试计算每个间隔的价值差异。
INSERT mydb value=4 1470101034546846145
INSERT mydb value=8 1470101042290558132
INSERT mydb value=10 1470101043594271416
我想得到 10 - 4 = 6 例如。
有没有办法使用连续查询来实现这一点?
尝试在您的查询中使用新的 DIFFERENCE()
函数:
https://docs.influxdata.com/influxdb/v0.13/query_language/functions/#difference
SELECT DIFFERENCE(<function>(<field_key>)) FROM <measurement_name> WHERE <stuff> GROUP BY time(<time_interval>)
我认为这是从 v0.13 开始可用的。
你的选择是
DIFFERENCE()
用于顺序差异。在您的示例中,DIFFERENCE(mouse)
会给出 8-4、10-8 等。这可能对您有用,但不符合您的描述。
SPREAD()
: 好像是你要找的,也就是区间上的shorthand for MAX(mouse) - MIN(mouse)
。所以类似于:SELECT SPREAD(mouse) AS "mouse_range" INTO mouse_calcs FROM zoo GROUP BY time(30m)
,其中 mouse_range
和 mouse_calcs
是我选择的没有特殊含义的名称。
连续查询最常见的用途是计算平均值等
CREATE CONTINUOUS QUERY minnie ON world BEGIN SELECT min(mouse) INTO min_mouse FROM zoo GROUP BY time(30m) END
我有带增量值的数据点 我正在尝试计算每个间隔的价值差异。
INSERT mydb value=4 1470101034546846145
INSERT mydb value=8 1470101042290558132
INSERT mydb value=10 1470101043594271416
我想得到 10 - 4 = 6 例如。
有没有办法使用连续查询来实现这一点?
尝试在您的查询中使用新的 DIFFERENCE()
函数:
https://docs.influxdata.com/influxdb/v0.13/query_language/functions/#difference
SELECT DIFFERENCE(<function>(<field_key>)) FROM <measurement_name> WHERE <stuff> GROUP BY time(<time_interval>)
我认为这是从 v0.13 开始可用的。
你的选择是
DIFFERENCE()
用于顺序差异。在您的示例中,DIFFERENCE(mouse)
会给出 8-4、10-8 等。这可能对您有用,但不符合您的描述。SPREAD()
: 好像是你要找的,也就是区间上的shorthand forMAX(mouse) - MIN(mouse)
。所以类似于:SELECT SPREAD(mouse) AS "mouse_range" INTO mouse_calcs FROM zoo GROUP BY time(30m)
,其中mouse_range
和mouse_calcs
是我选择的没有特殊含义的名称。