一、源码展示:




可以看到计算公式如下
/**
* Method to get the window start for a timestamp.
*
* @param timestamp epoch millisecond to get the window start.
* @param offset The offset which window start would be shifted by.
* @param windowSize The size of the generated windows.
* @return window start
*/
public static long getWindowStartWithOffset(long timestamp, long offset, long windowSize) {
return timestamp - (timestamp - offset + windowSize) % windowSize;
}
二、代码测试:
import java.time.Duration
import org.apache.flink.api.common.eventtime.{
SerializableTimestampAssigner, WatermarkStrategy}
import org.apache.flink.streaming.api

本文深入探讨了Flink中窗口计算的起始和结束时间,通过源码分析及代码测试,解释了如何确定窗口的开启与关闭时间点,尤其关注第一条数据时间戳减去4秒作为窗口开始时间的逻辑。
最低0.47元/天 解锁文章
708

被折叠的 条评论
为什么被折叠?



