InfluxDB:对具有相同时间戳的行进行分组

InfluxDB: Group rows with same timestamp

假设一个数据库有以下数据记录:

2018-04-12T00:00:00Z value=1000 [series=distance]
2018-04-12T00:00:00Z value=10   [series=signal_quality]
2018-04-12T00:01:00Z value=1100 [series=distance]
2018-04-12T00:01:00Z value=0    [series=signal_quality]

有一个名为 value 的字段。方括号表示标签(省略其他标签)。如您所见,数据是在不同数据记录中捕获的,而不是在相同记录上使用多个字段。

鉴于上述结构,如何查询距离的时间序列,按信号质量过滤?目标是仅在信号质量为高于固定阈值(例如 5)。

"Given the above structure",在普通的 InfluxDB 中无法做到这一点。

请记住 - Influx 是关系数据库的 NONE,它是不同的,尽管查询语言看起来很熟悉。

同样,给定该结构 - 您可以继续使用 Kapacitor,正如已经提到的那样。

但我强烈建议您重新考虑结构,如果可能的话,如果您能够控制收集指标的方式。

如果这不是一个选项 - 方法如下:在 Kapacitor 中旋转一个简单的作业,它将根据时间 (check this out for how) 将两点合并为一个,然后将其放入新的测量中。

数据点看起来像这样,然后:

DistanceQualityTogether,tag1=if,tag2=you,tag2=need,tag4=em distance=1000,signal_quality=10 2018-04-12T00:00:00Z

其他人对这样的测量一无所知。

但同样,如果您可以配置要像这样发送的指标 - 最好这样做。