0

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

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)时获取距离数据点。

4

1 回答 1

2

“鉴于上述结构”,在普通的 InfluxDB 中无法做到这一点。

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

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

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

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

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

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

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

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

于 2018-12-04T16:05:57.220 回答