文档文档

pivot() 函数

pivot() 收集垂直存储(按列)的唯一值,并将它们水平对齐(按行)到逻辑集中。

输出数据

结果表的组键与输入表相同,但不包括 columnKeyvalueColumn 参数中找到的列。 这些列不属于结果输出表,并且从组键中删除。

每个输入行都应该与输出表中的特定行和列组合具有 1:1 的映射。 行和列的组合由 rowKeycolumnKey 参数确定。 如果为同一行和列对标识了多个值,则在表行集中遇到的最后一个值将用作结果。

输出构建如下

  • 新表的列集是 rowKey 与组键的并集,但不包括 columnKeyvalueColumn 指示的列。
  • columnKey 参数标识的每个唯一值,将新列添加到列集中。
  • 新列的标签是使用 _ 作为分隔符的 columnKey 值的串联。 如果值为 null,则使用“null”。
  • rowKey 参数标识的每个唯一值创建一个新行。
  • 对于每个新行,组键列的值保持不变,而新列的值由输入表中 valueColumnrowKey 值和新列标签标识的行的值确定。 如果未找到任何值,则该值设置为 null
  • 未包含在组键中或未在 rowKeycolumnKeyvalueColumn 参数中指定的任何列都将被删除。
函数类型签名
(<-tables: stream[A], columnKey: [string], rowKey: [string], valueColumn: string) => stream[B] where A: Record, B: Record

有关更多信息,请参阅 函数类型签名

参数

rowKey

必需)用于唯一标识输出行的列。

columnKey

必需)用于标识新输出列的列。

valueColumn

必需)用于填充透视 columnKey 列的值的列。

tables

输入数据。 默认值为管道转发数据 (<-)。

示例

根据时间将字段对齐到行

data
    |> pivot(rowKey: ["_time"], columnKey: ["_field"], valueColumn: "_value")

查看示例输入和输出

按时间将值与标签关联

import "sampledata"

sampledata.int()
    |> pivot(rowKey: ["_time"], columnKey: ["tag"], valueColumn: "_value")

查看示例输入和输出


此页面是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。 您可以继续像现在一样使用它,而无需对代码进行任何更改。

阅读更多

InfluxDB 3 开源版现已推出公开 Alpha 版本

InfluxDB 3 开源版现已发布以供 Alpha 测试,并根据 MIT 或 Apache 2 许可进行许可。

我们将发布两个产品作为 Alpha 版本的一部分。

InfluxDB 3 Core 是我们新的开源产品。 它是时间序列和事件数据的最新数据引擎。 InfluxDB 3 Enterprise 是一个商业版本,它建立在 Core 的基础上,增加了历史查询能力、读取副本、高可用性、可扩展性和细粒度的安全性。

有关如何入门的更多信息,请查看