You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Apache IoTDB中用填充函数按1分钟频率查询1小时频率数据

Apache IoTDB 1小时频率数据补全为1分钟频率查询方案

在IoTDB中,要将1小时存储的测点数据以1分钟频率补全查询,核心是利用**FILL子句**结合时间间隔指定实现。以下是几种常用填充策略的具体用法:

1. 前向填充(Forward Fill)

用最近的前一个非空值填充后续所有空的1分钟时间点,适合数据趋势平稳的场景。
示例SQL:

SELECT 你的测点字段 FROM root.你的存储组.你的设备 
WHERE time >= '起始时间' AND time <= '结束时间' 
INTERVAL 1 MINUTE 
FILL(forward);

比如查询2024年1月1日0点到3点的温度数据,补全为1分钟间隔:

SELECT temperature FROM root.sensor.room1 
WHERE time >= '2024-01-01 00:00:00' AND time <= '2024-01-01 03:00:00' 
INTERVAL 1 MINUTE 
FILL(forward);

2. 后向填充(Backward Fill)

用最近的后一个非空值填充前面所有空的1分钟时间点,适合需要补全起始段空值的场景。
示例SQL:

SELECT temperature FROM root.sensor.room1 
WHERE time >= '2024-01-01 00:00:00' AND time <= '2024-01-01 03:00:00' 
INTERVAL 1 MINUTE 
FILL(backward);

3. 线性插值填充(Linear Fill)

根据前后两个非空值的时间和数值做线性计算,生成中间1分钟点的填充值,适合数据连续变化的场景。
示例SQL:

SELECT temperature FROM root.sensor.room1 
WHERE time >= '2024-01-01 00:00:00' AND time <= '2024-01-01 03:00:00' 
INTERVAL 1 MINUTE 
FILL(linear);

4. 固定值填充

用指定的固定数值填充所有空的1分钟时间点,适合需要统一补全默认值的场景。
示例SQL:

SELECT temperature FROM root.sensor.room1 
WHERE time >= '2024-01-01 00:00:00' AND time <= '2024-01-01 03:00:00' 
INTERVAL 1 MINUTE 
FILL(value=0); -- 这里用0作为填充值,可根据需求修改

注意事项

  • INTERVAL 1 MINUTE用于指定输出结果的时间间隔为1分钟,IoTDB会自动生成该间隔内的所有时间点。
  • 填充仅作用于查询结果,不会修改原始存储的数据。
  • 多测点同时查询时,只需在SELECT后列出多个字段,FILL子句会对每个字段单独执行填充逻辑。

内容的提问来源于stack exchange,提问作者leonbear

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 08:42:15