Documentation

合并数据

使用 Flux join 根据公共值连接两个数据集。了解如何使用以下连接方法连接两个数据集:

何时使用连接包

我们推荐使用 join 包来连接大部分模式不同或来自两个独立数据源的流。如果您正在连接来自相同数据源且模式相同的数据,使用 union()pivot() 来合并数据可能会更加高效。

欲了解更多信息,请参阅 何时使用并集和透视而不是连接函数

连接函数的工作原理

join 函数将 两个 表流根据每个输入流中的共同值连接在一起。

输入流

每个输入流被分配到 leftright 参数中。输入流可以从任何有效的数据源定义。有关更多信息,请参见:

数据要求

要连接数据,每个输入流必须具有以下内容:

  • 一个或多个具有共同值以进行连接的列.
    列的标签不需要完全相同,但它们需要具有可比较的值。

  • 相同的 组键.
    join 包中的函数使用组键快速确定每个输入流中的哪些表应该配对并进行连接操作的评估。
    两个输入流应该具有相同的组键。 如果它们不相同,您的连接操作可能找不到任何匹配的表,并且会 返回意外输出。 如果您的输入流的组键不相同,请使用 group() 在将它们连接在一起之前重新分组每个输入流。

    只有具有相同 group key instance 的表才会被连接。

连接谓词函数(on)

join 包的函数需要 on 参数来比较来自每个输入流的值(由 l(左)和 r(右)表示),并返回 truefalse。返回 true 的行将被连接。这个参数是一个 谓词函数

(l, r) => l.column == r.column

连接输出函数(作为)

join 包函数 (不包括 join.time()) 需要 as 参数来定义连接的输出模式。 as 参数使用来自连接行的值返回一个新记录——左侧 (l) 和右侧 (r)。

(l, r) => ({l with name: r.name, location: r.location})

请勿修改分组键列

不要修改组键列。as 函数必须返回与两个输入流相同的组键,以成功执行连接。

执行连接操作

join包支持以下连接类型和特殊用例:

故障排除连接操作

有关使用 join 包时出现意外行为和错误的信息,请参阅 Troubleshoot join operations



Flux的未来

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

阅读更多

InfluxDB 3 开源版本现已公开Alpha测试

InfluxDB 3 Open Source is now available for alpha testing, licensed under MIT or Apache 2 licensing.

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

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

有关如何开始的更多信息,请查看: