将输入流拆分为多个窗口并单独处理

时间:2017-04-12 08:32:52

标签: apache-flink flink-streaming

我有一个数据流。我必须应用窗口功能1小时,2小时,3小时...... 24小时。每个分割都有自己的窗口功能

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

我能想到的最脏的方式是

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

1 个答案:

答案 0 :(得分:1)

更高效的是实现基于EventTimeTrigger的自定义触发器(假设您正在处理事件时间,否则ProcessingTimeTrigger)每小时触发一次。