Documentation

执行内连接

使用 join.inner() 对两个数据流执行内连接。 内连接会删除两个输入流中没有匹配行的任何行。

查看内连接的表示例

使用 join.inner 来连接您的数据

  1. 导入 join 包。

  2. 定义要连接的 数据流:

    • 每个流必须有一个或多个具有共同值的列。列标签不需要匹配,但列值必须匹配。
    • 每个流应该具有相同的 group keys

    有关更多信息,请参见 join data requirements

  3. 使用 join.inner() 将两个流连接在一起。
    提供以下所需的参数:

    • left: 表示连接左侧的数据流。
    • right: 表示连接右侧的数据流。
    • on联接谓词。 例如:(l, r) => l.column == r.column
    • as: 连接输出功能 返回一条记录,其中包含来自每个输入流的值。 例如:(l, r) => ({l with column1: r.column1, column2: r.column2}).

以下示例使用来自 machineProduction 示例数据集 的过滤选择作为数据流,并使用array.from() 创建的临时表作为数据流。

示例数据分组

下面的示例将流解组,以匹配流的分组。 在两个流连接在一起后,连接的数据按stationID分组。

import "array"
import "influxdata/influxdb/sample"
import "join"

left =
    sample.data(set: "machineProduction")
        |> filter(fn: (r) => r.stationID == "g1" or r.stationID == "g2" or r.stationID == "g3")
        |> filter(fn: (r) => r._field == "oil_temp")
        |> limit(n: 5)

right =
    array.from(
        rows: [
            {station: "g1", opType: "auto", last_maintained: 2021-07-15T00:00:00Z},
            {station: "g2", opType: "manned", last_maintained: 2021-07-02T00:00:00Z},
        ],
    )

join.inner(
    left: left |> group(),
    right: right,
    on: (l, r) => l.stationID == r.station,
    as: (l, r) => ({l with opType: r.opType, maintained: r.last_maintained}),
)
    |> group(columns: ["stationID"])

查看示例输入和输出数据



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

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