填充数据中的空白
InfluxDB 3 Core 处于公开 Alpha 阶段
InfluxDB 3 Core 处于公开 alpha 阶段,可用于测试和反馈,但不适用于生产环境。产品和本文档都在不断完善中。我们欢迎并鼓励您提供关于 alpha 体验的意见,并邀请您加入我们的公共频道以获取更新和分享反馈。
Alpha 预期和建议
- 在 alpha 期间,我们可能会进行破坏性更改,需要您删除数据并重新开始。如果您使用的数据很重要,请在其他地方保留备份副本。
- 在 alpha 期间,我们在每次合并到 InfluxDB
main
分支时都会生成新的构建版本。更改频繁,相关更新会发布到我们的公共频道。
使用 date_bin_gapfill
和 interpolate
或 locf
填充没有数据返回的时间空白。填充空白的 SQL 查询通过填充内插值或向前结转上次可用的观测值来处理时间序列数据中的缺失数据。
要填充数据中的空白
使用 date_bin_gapfill
函数将您的数据窗口化为基于时间的组,并将聚合函数应用于每个窗口。如果窗口中没有数据,date_bin_gapfill
将插入一个新行,其中包含窗口的起始时间戳、GROUP BY
子句中的所有列,以及查询字段的空值。
使用 interpolate
或 locf
填充指定列中插入的空值。
- interpolate:通过在非空值之间插值来填充空值。
- locf:通过向前结转上次观测值来填充空值。
传递给 interpolate
或 locf
的表达式必须使用聚合函数。
包含一个 WHERE
子句,用于设置时间和日期的上限和下限。例如
WHERE time >= '2022-01-01T08:00:00Z' AND time <= '2022-01-01T10:00:00Z'
填充数据空白的示例
以下示例使用家庭传感器示例数据来展示如何使用 date_bin_gapfill
以及 interplate
和 locf
的不同结果。
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 |
支持和反馈
感谢您成为我们社区的一份子!我们欢迎并鼓励您提供关于 InfluxDB 3 Core 和本文档的反馈和错误报告。要寻求支持,请使用以下资源
拥有年度或支持合同的客户可以联系 InfluxData 支持。