Flink| 第一個窗口觸發時間


 

 

 窗口的第一個時間窗口是如何定義的呢?查看源碼:

滑動窗口:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 這里的offset是用來指定時間戳的時區的,timestamp(1970年1月1號的毫秒數,默認是格林威治0時區的時間),北京時間是東八區,我們的時間比他們早8h,如果要跟他們標准時間統一的話offset應該是 -8;但在國內無所謂的,默認offset = 0。這里的windowSize是slide,上一步傳進來的值(即windowSize 是滑動步長)

如果watermark = 1s, 窗口大小15s,步長5s;

比如第一個進來的事件時間的時間戳為1547718199 :

    1547718199 - (1547718199 + 5) % 5 = 1547718195
即第一個window: [195, 210),但實際中到200的時間已經關了

 

 lastStart最近的一次起點,lastStart = 195,for循環追加了好幾個window:195 > 199 - 15 = 184  ---> windows.add (195, 210)

                                                                             190(195-5) > 184   ----> (190,205) 

                      185 > 184              -------> (185,200)

[195, 210)、[200, 215)、[205, 220)

滾動步長源碼:

 

 直接195開始,210結束。而滑動窗口,如上是195開始,200就第一個結束啦;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM