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

关于Apache IoTDB SESSION函数GAP参数边界定义的技术问询

Apache IoTDB 2.0.5 SESSION函数GAP边界调整问题

我使用Apache IoTDB 2.0.5版本,尝试用SESSION函数做会话窗口分析,但查询结果和预期不符,对GAP参数的边界定义存在疑问。

原始数据

select * from bid

+-----------------------------+--------+-----+
| `time`                      | stock_id|price|
+-----------------------------+--------+-----+
|2021-01-01T09:05:00.000+08:00| AAPL    |100.0|
|2021-01-01T09:07:00.000+08:00| AAPL    |103.0|
|2021-01-01T09:09:00.000+08:00| AAPL    |102.0|
+-----------------------------+--------+-----+

当前查询语句及结果

SELECT * FROM SESSION( DATA => bid PARTITION BY stock_id ORDER BY `time`, TIMECOL => '`time`', GAP => 2m);

+-----------------------------+-----------------------------+-----------------------------+--------+-----+
| window_start                | window_end                  | `time`                      | stock_id|price|
+-----------------------------+-----------------------------+-----------------------------+--------+-----+
|2021-01-01T09:05:00.000+08:00|2021-01-01T09:09:00.000+08:00|2021-01-01T09:05:00.000+08:00| AAPL    |100.0|
|2021-01-01T09:05:00.000+08:00|2021-01-01T09:09:00.000+08:00|2021-01-01T09:07:00.000+08:00| AAPL    |103.0|
|2021-01-01T09:05:00.000+08:00|2021-01-01T09:09:00.000+08:00|2021-01-01T09:09:00.000+08:00| AAPL    |102.0|
+-----------------------------+-----------------------------+-----------------------------+--------+-----+

问题说明

AAPL的三条数据(09:05、09:07、09:09)被分到同一个会话窗口,说明GAP=2m是将≤2分钟的时间间隔视为同一会话。但我的预期是:当时间差恰好等于2分钟时开启新会话——09:05和09:07属于同一窗口(差值=2分钟),但09:09与09:07差值恰好为2分钟,应开启新窗口。

直接将GAP设为1.99m的方式不够稳健,可能引入数据偏差或精度问题。请问如何调整SQL查询,实现当时间差等于指定GAP值时开启新会话的分组行为?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 15:04:55