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")

任何帮助表示赞赏。

4

2 回答 2

0

看看将透视数据写入 InfluxDB,也许这就是您所需要的。使用此方法,您可以控制哪些列被写为字段,哪些列被写为标签:

使用experimental.to() 将透视数据写入InfluxDB。输入数据必须具有以下列:

_时间

_测量

除 _time 和 _measurement 之外的组键中的所有列都作为标签写入 InfluxDB。不在组键中的列作为字段写入 InfluxDB。

于 2021-10-01T13:26:32.650 回答
0

您的原始代码几乎就在那里,to() 函数有额外的字段允许这样做。如果您已经有一组数据,其中您有一个标签名称作为值,您可以将其指定为to()中的 tagColumn 。此外,新标签必须是字符串。

|> to(bucket: "NewBucketName",
   tagColumns: ["NewTagName"],
   fieldFn: (r) => ({"SomeValue": r._value })
   )
于 2021-10-05T13:50:21.000 回答