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





這里的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就第一個結束啦;
