【发布时间】:2019-01-18 13:07:27
【问题描述】:
我正在使用如下所示的查询来跟踪特定字段的滚动总和:
SELECT id, SUM(quantity) AS quantity from stream \
WINDOW HOPPING (SIZE 1 MINUTE, ADVANCE BY 10 SECONDS) \
GROUP BY id;
现在,对于每个输入刻度,它似乎返回了 6 个不同的聚合值,我猜它们是针对以下时间段的:
[start, start+60] seconds
[start+10, start+60] seconds
[start+20, start+60] seconds
[start+30, start+60] seconds
[start+40, start+60] seconds
[start+50, start+60] seconds
如果我有兴趣只为每个进入的滴答获得 [start, start+60] 秒的结果。有什么办法只得到那个吗?
【问题讨论】:
-
应该是
start+70、start+80等吗?我不认为所有窗口都有相同的结束时间戳:) -
啊,我知道它是多么令人困惑。我的意思更多的是所包含的实际数据的时间范围。所以在前 60 秒结束时,数据被吐出就像:过去 60 秒、50 秒、40 秒、30 秒、20 秒和 10 秒的聚合。对吗?
-
您的意思是,当您处理的第一条记录具有例如时间戳 1005 时,您会得到窗口
[950,1010), [960, 1020), [970,1030), [980, 1040), [990,1050)和[1000,1060)?但是您只想获得窗口[1000,1060)而没有旧窗口? -
@Matthias J. Sax。使用流 API,如何仅根据您的示例获取窗口 [1000,1060) 结果的结果。过滤最新的窗口是唯一的选择吗?或者有什么办法可以抑制旧窗口的跳跃?
标签: apache-kafka streaming ksqldb