【问题标题】:What is the equivalent of SELECT <certain columns> in Flux Query Language?Flux 查询语言中 SELECT <certain columns> 的等价物是什么?
【发布时间】:2020-06-21 06:32:29
【问题描述】:

SELECT address, name FROM addresses 的等效通量查询是什么? (我指的是 InfluxData 开发的新型查询语言 FluxQL)

我在有限的 Flux 文档中没有找到明确的答案。 Flux 文档说 filter() 函数等效于 SELECTWHERE 子句,但给出的所有示例都等效于 WHERE 子句,SELECT 上没有任何内容。

这些是 FluxQL 的文档以便更好地参考:

https://docs.influxdata.com/flux/v0.50/introduction/getting-started

https://v2.docs.influxdata.com/v2.0/query-data/get-started/

【问题讨论】:

    标签: influxdb influxdb-2


    【解决方案1】:

    您也可以尝试使用 keep(colums...) 函数。 与 drop 不同,它将列的名称作为参数保留,并删除其余的。 https://docs.influxdata.com/influxdb/v2.0/reference/flux/stdlib/built-in/transformations/keep/

    【讨论】:

      【解决方案2】:

      您可以使用 map() 函数来选择要保留的列,也可以进行一些字符串操作:

      (from and filter part...)
      |> map(fn: (r) => ({
                           address: r.address,
                           name: r.name
                         }))
      

      【讨论】:

        【解决方案3】:

        也许你需要这样的东西:

        filter(fn: (r) => r._measurement == "addresses" and (r._field == "address" or r._field == "name"))
        |> pivot(rowKey:["_time"], columnKey:["_field"], valueColumn:"_value")
        |> drop(columns:["_value", ...])
        

        在“drop”(而不是...)中,您可以列出所有多余的列

        【讨论】:

        • Drop 是我想要的,谢谢!但是,如果在这种情况下提供枢轴服务有什么目的?
        • 在“过滤”功能之后,您会得到包含以下列的表格:_time、_value、_measurement 和 _field。它没有列“地址”或“名称”,因为它们是 _field 列中的值。函数“pivot”将您“过滤”的结果转换为包含“address”和“name”列的表(也包含 _time 和 _measurement 列)。见doc
        • 您知道是否可以删除resulttable 列吗?删除 _start_stop_measurement 列可以正常工作,但我不能删除这两列。
        • 嗨@l.sypniewski 我不确定你能不能做到,因为结果和表格是你请求的元数据
        猜你喜欢
        • 2020-12-12
        • 1970-01-01
        • 1970-01-01
        • 2012-03-22
        • 1970-01-01
        • 2013-03-24
        • 2012-09-28
        • 2012-10-29
        • 1970-01-01
        相关资源
        最近更新 更多