influxDB:如何在 influxDB v2.0 中将字段转换为标签

influxDB: How to convert field to tag in influxDB v2.0

我们需要在 influxDB v2.0 中将字段转换为标签,但找不到任何合适的解决方案。 有人可以帮我实现同样的目标吗?

我们找到的解决方案是通过更改现有测量的字段和标签来创建新的测量,但无法使用 Flux 语言实现。

使用下面的通量查询,我们可以将数据从一个测量复制到另一个测量,但在新测量中添加数据时无法更改字段以标记。

from(bucket: "bucket_name")
    |> range(start: -10y)
    |> filter(fn: (r) => r._measurement == "cu_om")
    |> aggregateWindow(every: 5s, fn: last, createEmpty: false)
    |> yield(name: "last")
    |> set(key: "_measurement", value: "cu_om_new1")
    |> to(org: "org_name", bucket: "bucket_name")

感谢任何帮助。

看看writing pivoted data to InfluxDB,也许这就是您所需要的。使用此方法,您可以控制哪些列写为字段,哪些列写为标签:

Use experimental.to() to write pivoted data to InfluxDB. Input data must have the following columns:

_time

_measurement

All columns in the group key other than _time and _measurement are written to InfluxDB as tags. Columns not in the group key are written to InfluxDB as fields.

您的原始代码就快完成了,还有一些带有 to() 函数的额外字段允许这样做。 如果您已有一组数据,其中标签名称作为值,则可以将其指定为 to() 中的 tagColumn。 此外,新标签必须是字符串。

|> to(bucket: "NewBucketName",
   tagColumns: ["NewTagName"],
   fieldFn: (r) => ({"SomeValue": r._value })
   )