大数据全系列 教程
1869个小节阅读:464.7k
目录
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
基于事件时间EventTime窗口的起止时间分析时,如果Job是第1次运行,此时第一个窗口的起始时间是如何确定的?
滚动窗口:(size=5秒)
第一条数据:sid_1,success,2030-12-28 16:28:41,4
计算
第1个窗口起始时间:2030-12-28 16:28:40
滚动窗口size 5秒
计算
第1个窗口结束时间:2030-12-28 16:28:45
以此类推下一个窗口开始时间和结束时间,
第2个窗口起始时间:2030-12-28 16:28:45 -- 2030-12-28 16:28:50
第3个窗口起始时间:2030-12-28 16:28:50 -- 2030-12-28 16:28:55
时间窗口源码:[start,end)
xxxxxxxxxx
package org.apache.flink.streaming.api.windowing.windows;
......
/**
* A {@link Window} that represents a time interval from {@code start} (inclusive) to {@code end}
* (exclusive).
*/
@PublicEvolving
public class TimeWindow extends Window {
private final long start;
private final long end;
public TimeWindow(long start, long end) {
this.start = start;
this.end = end;
}
......
}
时间窗口的计算:
滑动窗口:(窗口大小size=10秒 > 滑动间隔slide=5秒)
第一条数据:sid_1,success,2030-12-28 16:28:41,4
计算
第1个窗口起始时间:2030-12-28 16:28:40
滚动窗口size 10秒
计算
第1个窗口结束时间:2030-12-28 16:28:50
结合窗口滑动间隔,一次计算出,下一个窗口开始时间,再计算窗口结束时间,以此类推
第2个窗口时间:2030-12-28 16:28:45 -- 2030-12-28 16:28:55
第3个窗口时间:2030-12-28 16:28:50 -- 2030-12-28 16:29:00