2017-04-12 61 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)將觸發每隔一小時。