Documentation

填补数据中的空白

使用 date_bin_gapfillinterpolatelocf 来 填补没有返回数据的时间间隔的空白。 填补空白的 SQL 查询通过用插值填充 缺失数据的时间序列数据的空白,或通过向前填充最后一个可用观测值。

填补数据中的空白:

  1. 使用date_bin_gapfill函数将您的数据分组成基于时间的组,并对每个窗口应用聚合函数。如果在某个窗口中没有数据,date_bin_gapfill将插入一行新数据,该行具有窗口的起始时间戳,GROUP BY子句中的所有列已填充,并且查询字段的值为null。

  2. 使用 interpolatelocf 来填充指定列中插入的空值。

    • interpolate: 通过对非空值之间的插值填充空值。
    • locf: 通过向前填充最后观察到的值来填充空值.

    传递给 interpolatelocf 的表达式必须使用 聚合函数

  3. 包含一个 WHERE 子句,用于设置上限和下限时间界限。 例如:

WHERE time >= '2022-01-01T08:00:00Z' AND time <= '2022-01-01T10:00:00Z'

填补数据空白的示例

以下示例使用在 开始使用InfluxDB教程 中提供的示例数据集来展示如何使用 date_bin_gapfill 以及 interplatelocf 的不同结果。

SELECT
  date_bin_gapfill(INTERVAL '30 minutes', time) as _time,
  room,
  interpolate(avg(temp))
FROM home
WHERE
    time >= '2022-01-01T08:00:00Z'
    AND time <= '2022-01-01T10:00:00Z'
GROUP BY _time, room
时间房间平均(家里温度)
2022-01-01T08:00:00Z厨房21
2022-01-01T08:30:00Z厨房22
2022-01-01T09:00:00Z厨房23
2022-01-01T09:30:00Z厨房22.85
2022-01-01T10:00:00Z厨房22.7
2022-01-01T08:00:00Z客厅21.1
2022-01-01T08:30:00Z客厅21.25
2022-01-01T09:00:00Z客厅21.4
2022-01-01T09:30:00Z客厅21.6
2022-01-01T10:00:00Z客厅21.8
SELECT
  date_bin_gapfill(INTERVAL '30 minutes', time) as _time,
  room,
  locf(avg(temp))
FROM home
WHERE
    time >= '2022-01-01T08:00:00Z'
    AND time <= '2022-01-01T10:00:00Z'
GROUP BY _time, room
时间房间平均(家里温度)
2022-01-01T08:00:00Z厨房21
2022-01-01T08:30:00Z厨房21
2022-01-01T09:00:00Z厨房23
2022-01-01T09:30:00Z厨房23
2022-01-01T10:00:00Z厨房22.7
2022-01-01T08:00:00Z客厅21.1
2022-01-01T08:30:00Z客厅21.1
2022-01-01T09:00:00Z客厅21.4
2022-01-01T09:30:00Z客厅21.4
2022-01-01T10:00:00Z客厅21.8


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

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