ZBLOG

influxdb 2.x 如何分组

在 InfluxDB 2.x 中,分组的概念发生了变化。传统的 InfluxDB 版本中使用的 GROUP BY 关键字,在 InfluxDB 2.x 中被替换为 Flux 查询语言中的 group() 函数。Flux 是一种新的查询语言,是 InfluxData 公司开发的一种基于时间序列数据处理和分析的函数式编程语言。

在 Flux 中,可以使用 group() 函数来实现对结果集进行分组。该函数需要指定一个或多个用于分组的标签(tag)作为参数。例如:

  1. from(bucket: "telegraf/autogen")
  2. |> range(start: -1h)
  3. |> filter(fn: (r) => r._measurement == "cpu")
  4. |> group(columns: ["_field"])
  5. |> max()

这段代码表示从“telegraf”数据库中选择“cpu”测量值,并且在最近 1 小时内查找它们。然后通过 group(columns: ["_field"]) 分组,以 _field 标签为基础进行聚合操作,并且计算每个字段值得最大值。

此外,在 Flux 中还有许多其他函数可以用于数据处理和转换。例如,可以使用 pivot() 函数将行转置为列,并且在结果集中创建一个名为“_value”字段,其中包含原始行值:

  1. from(bucket: "telegraf/autogen")
  2. |> range(start: -1h)
  3. |> filter(fn: (r) => r._measurement == "cpu")
  4. |> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")

该代码与前面的示例非常相似,但是使用了 pivot() 函数将 _field 值作为列名,并且在结果集中创建一个“_value”字段。这样,在查询结果时就可以更方便地访问每个字段的值。

总之,在 InfluxDB 2.x 中,分组和聚合操作都由 Flux 查询语言来实现,使用 group() 函数进行分组,可以根据需要选择其他函数进行数据处理和转换。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=3488

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?