Documentation

按时间连接

使用 join.time() 基于 _time 列中的时间值连接两个数据流。此类型的连接操作在连接两个 时间序列数据 时是常见的。

join.time() 可以使用任何可用的连接方法。您使用哪种方法取决于您期望的行为:

  • 内连接 (默认): 删除两个输入流中没有在另一个流中匹配的行。

  • left: 对于left数据流中的每一行,输出与right数据流中匹配的数据。如果在right数据流中没有匹配的数据,则right数据流中非分组键的列的值为null

  • 右边: 为每个在右边数据流中的行输出一行,与左边数据流中的匹配数据。如果在左边数据流中没有匹配的数据,来自左边数据流的非分组键列的值为null

  • full: 输出左侧和右侧输入流中的所有行,并根据它们的 _time 值连接匹配的行。

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

  1. 导入 join 包。

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

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

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

  3. 使用 join.time() 根据时间值将两个流连接在一起。
    提供以下参数:

    • left: (必需) 表示连接左侧的数据流。
    • right: (必需) 表示连接的右侧的数据流。
    • as: (必需) 连接输出函数 返回一个包含来自每个输入流的值的记录。 例如: (l, r) => ({r with column1: l.column1, column2: l.column2}).
    • method: 使用的连接方法。默认是 inner

以下示例使用来自machineProduction 示例数据集的过滤选择作为数据流。

示例数据分组

以下示例将左流和右流重新组合,以从组键中移除 _field 列。因为 join.time() 仅比较具有匹配 group key instances 的表,所以要连接具有不同 _field 列值的流,_field 不能成为组键的一部分。

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 == "pressure")
        |> limit(n: 5)
        |> group(columns: ["_time", "_value", "_field"], mode: "except")

right =
    sample.data(set: "machineProduction")
        |> filter(fn: (r) => r.stationID == "g1" or r.stationID == "g2" or r.stationID == "g3")
        |> filter(fn: (r) => r._field == "pressure_target")
        |> limit(n: 5)
        |> group(columns: ["_time", "_value", "_field"], mode: "except")

join.time(method: "left", left: left, right: right, as: (l, r) => ({l with target: 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 企业版是建立在核心基础之上的商业版本,增加了历史查询能力、读取副本、高可用性、可扩展性和细粒度安全性。

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