使用InfluxDB差异函数

cmo*_*tor 3 influxdb influxql

我的 influxdb 数据库中有一些测量数据,我可以通过以下方式查询:

select * from E_real_con
名称:E_real_con
时间值
---- -----
1537920001044785525 | 57160036.00
1538006401069651036 | 57227208.00
1538092800108297103 | 57294112.00
1538179200697333731 | 57366108.00

但是,“值”是一个累积值,我想获取两个连续值之间的增量/差值。

我尝试了以下方法:

SELECT difference(last(value)) FROM E_real_con WHERE time >= now() - 7d GROUP BY time(1d) fill(null)
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误消息:

ERR: unsupported difference iterator type: *query.stringInterruptIterator
Run Code Online (Sandbox Code Playgroud)

我很乐意获得一些如何解决我的问题的提示和反馈。

我正在使用 influxdb 1.6.1

多谢!克里斯托夫

cmo*_*tor 5

我找到了解决方案。必须纠正以下两个错误:

1)测量中的值是“字符串”类型而不是“浮点”类型。由于数据来自nodered,所以在将数据写入influxdb之前,我清除了数据库并在nodered中使用了parseFloat()。顺便说一句:您可以通过以下方式检查测量字段的数据类型:

SHOW FIELD KEYS FROM E_real_con
Run Code Online (Sandbox Code Playgroud)

2)查询命令好像需要一个“where”

这有效:

SELECT difference(last(value)) FROM E_real_del WHERE time >= now() - 7d GROUP BY time(1d)
Run Code Online (Sandbox Code Playgroud)

然而:

SELECT difference(last(value)) FROM E_real_del GROUP BY time(1d)
Run Code Online (Sandbox Code Playgroud)

不起作用。

我希望这可以帮助别人。