【问题标题】:How to query all measurements in InfluxDB where a value from one measurement equals X如何查询 InfluxDB 中的所有测量值,其中一个测量值等于 X
【发布时间】:2021-08-11 12:52:18
【问题描述】:

我从 Influx 数据库中查询所有测量值,如下所示:

http://localhost:8086/query?pretty=true&db=boatdata&q=SELECT value FROM /.*/ LIMIT 1

工作正常。但是,我需要获取所有测量值的值而不是LIMIT 1,其中一个测量值=x,所以我期望类似 SELECT value FROM /.*/ WHERE measurement1.value=x 但它不起作用。我希望这是有道理的。知道如何使它工作吗?谢谢。

...为了更好地解释它:在我在这篇文章中列出的第一个查询 (http://localhost...) 中,我得到了所有测量值的 1 条记录。但我想为所有测量值获取 1 条记录,其中measurement1(其中一个测量值)的值等于 X。

【问题讨论】:

    标签: influxdb influxql


    【解决方案1】:

    使用 InfluxQL 是不可能的。您要求的所有测量值都是不同系列的数据 - 因此它们没有组合在一个表中。 InfluxDB 的想法是测量是单独的“表”,由时间和标签键索引。我建议您通过将值写入不同的值字段来更改数据库架构。 您应该将数据放在一次测量中,以便按照您的意愿进行查询。 您可以将所有数据从其他测量转移到一个测量,例如:

    从“measurement1”中选择“value”作为“value1”到“measurement”组中*

    对于每个移入“measurement”的“measurement1”,它将收集许多值字段。 然后就可以查询了:

    select * from "measurement" where "value1"=5

    上面的查询应该为您提供移动到“测量”中的所有值字段,其中字段“value1”=5。 提示:如果您的测量中有 value1,value2,value3,那么您可以使用如下正则表达式:

    从“测量”中选择 /value/ 其中“value1”=5

    为了避免接收到你不想要的标签键值或字段值。

    【讨论】:

    • 太棒了。很有帮助。谢谢!
    猜你喜欢
    • 2016-11-29
    • 2018-08-18
    • 2019-10-26
    • 1970-01-01
    • 1970-01-01
    • 2020-10-03
    • 1970-01-01
    • 1970-01-01
    • 2020-07-29
    相关资源
    最近更新 更多