【问题标题】:How to find time intervals with no data points in InfluxDB如何在 InfluxDB 中查找没有数据点的时间间隔
【发布时间】:2017-05-15 19:53:57
【问题描述】:

我有一堆 IoT 传感器,它们可以将数据逐秒上传到 InfluxDB。由于他们的网络不可靠,有时他们不报告数据。

我正在尝试弄清楚如何确定 InfluxDB 中没有数据的时间段,并且遇到了一些带有子查询的古怪行为。

到目前为止我已经尝试过:

统计每秒的点数,例如:

select count(power) 
from energy 
where time < '2017-05-14T00:05:10Z' 
  and time >= '2017-05-14T00:04:30Z' 
group by time(1s);

这看起来很有希望,因为它返回间隔中每一秒的结果和数据点的计数:

...
1494720297000000000 1  
1494720298000000000 1
1494720299000000000 0
1494720300000000000 0
...

现在我只想要点数为 0 的时间段,但是当我尝试这样做时,只报告点数非零的时间段:

select "points" 
from 
    (select count(power) as "points" 
     from energy 
     where time < '2017-05-14T00:05:10Z' 
       and time >= '2017-05-14T00:04:30Z' 
     group by time(1s));

返回:

...
1494720297000000000 1
1494720298000000000 1

在 1494720298000000000 之后没有数据返回,即使子查询确实返回了行。

在制定查询或方法以仅识别没有数据的时间区域时,我们将不胜感激。

【问题讨论】:

    标签: influxdb


    【解决方案1】:

    在查询后添加填充(无)

    示例-从能量中选择计数(功率),其中时间 = '2017-05-14T00:04:30Z' 按时间(1s)组填充(无)

    【讨论】:

      猜你喜欢
      • 2019-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多