文档文档

填充数据中的空白

InfluxDB 3 Core 处于公开 Alpha 阶段

InfluxDB 3 Core 处于公开 alpha 阶段,可用于测试和反馈,但不适用于生产环境。产品和本文档都在不断完善中。我们欢迎并鼓励您提供关于 alpha 体验的意见,并邀请您加入我们的公共频道以获取更新和分享反馈。

Alpha 预期和建议

使用 date_bin_gapfillinterpolatelocf 填充没有数据返回的时间空白。填充空白的 SQL 查询通过填充内插值或向前结转上次可用的观测值来处理时间序列数据中的缺失数据。

要填充数据中的空白

  1. 使用 date_bin_gapfill 函数将您的数据窗口化为基于时间的组,并将聚合函数应用于每个窗口。如果窗口中没有数据,date_bin_gapfill 将插入一个新行,其中包含窗口的起始时间戳、GROUP BY 子句中的所有列,以及查询字段的空值。

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

    • interpolate:通过在非空值之间插值来填充空值。
    • locf:通过向前结转上次观测值来填充空值。

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

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

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

填充数据空白的示例

以下示例使用家庭传感器示例数据来展示如何使用 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 1, room
时间房间AVG(home.temp)
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 1, room
时间房间AVG(home.temp)
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 开源版本现已可用于 alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

我们正在发布两个作为 alpha 版本一部分的产品。

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

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