Documentation

union() 函数

union() 将两个或多个输入流合并成一个单一的输出流。

union() 的输出模式是所有输入模式的并集。 union() 不会保留表内行的排序顺序。 如果您需要特定的排序顺序,请使用 sort()

Union 与 join 的比较

union() 不会修改行中的数据,而是将独立的表流联合成一个单一的表流,并根据现有的组键对数据行进行分组。 join() 基于一个或多个指定列中的公共值创建新行。 输出行还包含来自每个连接流的不同值。

函数类型签名
(tables: [stream[A]]) => stream[A] where A: Record

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

参数

tables

(必需) 要联合在一起的两个或多个表流的列表。

示例

联合具有唯一组键的两个表流

import "generate"

t1 =
    generate.from(
        count: 4,
        fn: (n) => n + 1,
        start: 2022-01-01T00:00:00Z,
        stop: 2022-01-05T00:00:00Z,
    )
        |> set(key: "tag", value: "foo")
        |> group(columns: ["tag"])

t2 =
    generate.from(
        count: 4,
        fn: (n) => n * (-1),
        start: 2022-01-01T00:00:00Z,
        stop: 2022-01-05T00:00:00Z,
    )
        |> set(key: "tag", value: "bar")
        |> group(columns: ["tag"])

union(tables: [t1, t2])

查看示例输出

联合具有空组键的两个表流

import "generate"

t1 =
    generate.from(
        count: 4,
        fn: (n) => n + 1,
        start: 2021-01-01T00:00:00Z,
        stop: 2021-01-05T00:00:00Z,
    )
        |> set(key: "tag", value: "foo")
        |> group()

t2 =
    generate.from(
        count: 4,
        fn: (n) => n * (-1),
        start: 2021-01-01T00:00:00Z,
        stop: 2021-01-05T00:00:00Z,
    )
        |> set(key: "tag", value: "bar")
        |> group()

union(tables: [t1, t2])

查看示例输出


此页对您有帮助吗?

感谢您的反馈!


Flux 的未来

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

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。 更快扩展。

获取更新

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

有关更多信息,请查看