Influxdb - 按时间分组(1m) - 缺少数据

时间:2017-01-22 00:46:17

标签: influxdb

我有一些数据是每隔一分钟从网络进入并被输入我的涌入数据库。由于它通过网络,它永远不会在一分钟标记上出现并且有一些抖动......

我正在尝试将这些不规则数据调和到一分钟间隔,但我看到一些缺失的空白,请参阅下面的示例。

> precision rfc3339
>
> select value from snmp_ecio where host = 'my_host_a' and time > now() - 10m
name: snmp_ecio
time                            value
----                            -----
2017-01-22T00:25:59.987735Z     -0.1
2017-01-22T00:27:00.003208Z     -0.1
2017-01-22T00:28:00.047265Z     -0.2
2017-01-22T00:29:00.142676Z     -0.1
2017-01-22T00:30:00.048707Z     -0.3
2017-01-22T00:31:00.211728Z     -0.1
2017-01-22T00:31:59.980621Z     -0.1
2017-01-22T00:32:59.795329Z     -0.1
2017-01-22T00:34:03.206552Z     -0.1
2017-01-22T00:35:00.01463Z      -0.1

> select mean(value) from snmp_ecio where host = 'my_host_a' and time > now() - 10m group by time(1m)
name: snmp_ecio
time                    mean
----                    ----
2017-01-22T00:25:00Z    -0.1
2017-01-22T00:26:00Z
2017-01-22T00:27:00Z    -0.1
2017-01-22T00:28:00Z    -0.2
2017-01-22T00:29:00Z    -0.1
2017-01-22T00:30:00Z    -0.3
2017-01-22T00:31:00Z    -0.1
2017-01-22T00:32:00Z    -0.1
2017-01-22T00:33:00Z
2017-01-22T00:34:00Z    -0.1
2017-01-22T00:35:00Z    -0.1

有没有人遇到过这个问题,或者能指出我正确的方向?

谢谢!

1 个答案:

答案 0 :(得分:1)

要填写缺少的时间间隔,请使用fill运算符。根据您使用的版本,您可以选择各种填充方式。如果您使用的是1.1+,我会使用fill(linear),否则我会选择fill(previous)

SELECT mean(value)
FROM snmp_ecio
WHERE host = 'my_host_a' AND time > now() - 10m
GROUP BY time(1m) fill(linear)