我有一些数据是每隔一分钟从网络进入并被输入我的涌入数据库。由于它通过网络,它永远不会在一分钟标记上出现并且有一些抖动......
我正在尝试将这些不规则数据调和到一分钟间隔,但我看到一些缺失的空白,请参阅下面的示例。
> 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
有没有人遇到过这个问题,或者能指出我正确的方向?
谢谢!
答案 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)