2017-04-12 54 views
1

我有一个Datastream。我必须使用窗口功能1小时,2小时,3小时... 24小时。并且每个分割都有自己的窗口功能将输入流分割为多个窗口并单独处理

如何以有效的方式分割窗口。

我能想到的最肮脏的方式是

for(int i=1; i < 24 ;i++){ 
    inputStream.keyBy("id").timeWindow(Time.hours(i)).apply(..); 
} 
+0

我不确定是否理解你真正想要的。你想以同样的方式同时拥有不同的窗口,对吧? – ImbaBalboa

+0

单流,不同窗口,不同时间间隔,平行 – madhairsilence

+0

这是一个有趣的问题。你提出的建议显然有效,你可以制作24个不同的窗口。但是,我不能相信更好的方式是不可能的。根据您的窗口功能,您可以使用1小时开窗输出2小时窗口等等吗?我的意思是,2小时开窗可能是两个连续1小时开窗的合并。 – ImbaBalboa

回答

0

更有效地将实现基于EventTimeTrigger自定义触发(假设你用事件时间的工作,否则ProcessingTimeTrigger)将触发每隔一小时。