Flux 查询语言中 SELECT <certain columns> 的等价物是啥?
Posted
技术标签:
【中文标题】Flux 查询语言中 SELECT <certain columns> 的等价物是啥?【英文标题】: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()
函数等效于 SELECT
和 WHERE
子句,但给出的所有示例都等效于 WHERE
子句,SELECT
上没有任何内容。
这些是 FluxQL 的文档以便更好地参考:
https://docs.influxdata.com/flux/v0.50/introduction/getting-started
https://v2.docs.influxdata.com/v2.0/query-data/get-started/
【问题讨论】:
【参考方案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 您知道是否可以删除result
和table
列吗?删除 _start
、_stop
和 _measurement
列可以正常工作,但我不能删除这两列。
嗨@l.sypniewski 我不确定你能不能做到,因为结果和表格是你请求的元数据以上是关于Flux 查询语言中 SELECT <certain columns> 的等价物是啥?的主要内容,如果未能解决你的问题,请参考以下文章