InfluxDB中如何检查指定标签是否存在于存储桶?
如何在InfluxDB中按名称查找特定标签键
你遇到的问题是错用了schema.tagKeys的predicate参数——这个参数的作用是筛选要收集标签键的目标系列(Series),而非直接过滤最终返回的标签键列表。
错误原因解析
当你在predicate中写(r) => r._value == "code"时,这里的r指代的是系列的元数据对象(包含测量名、系列已有的标签等属性),并不是schema.tagKeys返回的结果行。_value不属于系列元数据的合法属性,因此触发了field values unsupported的内部错误。
正确实现方式
要按名称过滤标签键,最直接的做法是先获取全量标签键,再用filter()函数对结果集进行筛选:
import "influxdata/influxdb/schema" schema.tagKeys(bucket: "bitcoin") |> filter(fn: (r) => r._value == "code")
关于exists r._value的补充
你之前用predicate: (r) => exists r._value能返回所有标签,是因为这个条件在你的数据环境中始终为真,但这属于对predicate参数的误用——它并没有实现过滤标签键的逻辑,只是没有排除任何系列,因此返回了全部标签键数据。
内容的提问来源于stack exchange,提问作者kio21
相关产品推荐
相关产品推荐

