文档文档

pivot() 函数

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

输出数据

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

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

输出构造如下

  • 新表的列集是 rowKey 与组键的并集,但不包括 columnKeyvalueColumn 指示的列。
  • columnKey 参数标识的每个唯一值,都会向列集中添加一个新列。
  • 新列的标签是使用 _ 作为分隔符连接 columnKey 的值。如果值为 null,则使用 “null”。
  • rowKey 参数标识的每个唯一值,都会创建一个新行。
  • 对于每个新行,组键列的值保持不变,而新列的值由输入表中 valueColumn 中在由 rowKey 值和新列标签标识的行中的值确定。如果未找到值,则值设置为 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 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速、最近数据引擎,可实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 以 Core 的基础为构建基础,增加了高可用性、读取副本、增强的安全性以及数据压缩,从而实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层可供非商业家庭或业余爱好者使用。

有关更多信息,请查看