Documentation

join.right() 函数

join.right() 在两个表流上执行右外连接。

该函数调用 join.tables(),将 method 参数设置为 "right"

函数类型签名
(<-left: stream[A], as: (l: A, r: B) => C, on: (l: A, r: B) => bool, right: stream[B]) => stream[C] where A: Record, B: Record, C: Record

有关更多信息,请参见 Function type signatures

参数

左输入流。默认是管道转发数据 (<-).

(必填) 右输入流。

开启

(必需) 一个接受左侧和右侧记录(lr)的函数,并返回一个布尔值。

函数的主体必须是一个单一的布尔表达式,由一个或多个属性之间的相等比较组成,lr的属性,通过 and 运算符连接在一起。

作为

(必需) 接收左侧和右侧记录的函数(lr),并返回一个记录。 返回的记录包含在最终输出中。

示例

执行右外连接

在右外连接中,r 被保证不是默认记录,但 l 可能是默认记录。因为 l 更可能包含空值,输出记录几乎完全由 r 的属性构成,除了 v_left,我们期望它有时为空。

有关外连接行为的更多信息,请参阅外连接部分在join包文档中。

import "array"
import "join"

left =
    array.from(
        rows: [
            {_time: 2022-01-01T00:00:00Z, _value: 1, label: "a"},
            {_time: 2022-01-01T00:00:00Z, _value: 2, label: "b"},
            {_time: 2022-01-01T00:00:00Z, _value: 3, label: "d"},
        ],
    )
right =
    array.from(
        rows: [
            {_time: 2022-01-01T00:00:00Z, _value: 0.4, id: "a"},
            {_time: 2022-01-01T00:00:00Z, _value: 0.5, id: "c"},
            {_time: 2022-01-01T00:00:00Z, _value: 0.6, id: "d"},
        ],
    )

join.right(
    left: left,
    right: right,
    on: (l, r) => l.label == r.id and l._time == r._time,
    as: (l, r) => ({_time: r._time, label: r.id, v_left: l._value, v_right: r._value}),
)

查看示例输出



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 企业版是建立在核心基础之上的商业版本,增加了历史查询能力、读取副本、高可用性、可扩展性和细粒度安全性。

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