网易首页 > 网易号 > 正文 申请入驻

大数据培训:Flink窗口的开始时间的计算

0
分享至

我还记得的在我刚学习flink的时候,B站的老师说过,Flink窗口的开始时间和结束时间和你想的不一样。那个时候我好像记得老师说过,flink的窗口大小会根据你的时间单位来进行修正。

然后在现如今,很多人还是不是很了解窗口机制,以及watermark。更别提什么窗口什么时候,什么时候结束。所以呢,今天从源码角度给大家普及一下窗口什么时候开始,什么时候结束。

我们可以来编写一个简单的代码,来看一下效果,我习惯用java来写flink,所以也就使用java了。

@Override

public Collection

assignWindows(Object element, long timestamp, WindowAssignerContext context) {

if (timestamp > Long.MIN_VALUE) {

List

windows = new ArrayList<>((int) (size / slide));

//获取窗口开始时间

long lastStart = TimeWindow.getWindowStartWithOffset(timestamp, offset, slide);

for (long start = lastStart;

start > timestamp - size;

start -= slide) {

windows.add(new TimeWindow(start, start + size));

return windows;

} else {

throw new RuntimeException("Record has Long.MIN_VALUE timestamp (= no timestamp marker). " +

"Is the time characteristic set to 'ProcessingTime', or did you forget to call " +

"'DataStream.assignTimestampsAndWatermarks(...)'?");

public static long getWindowStartWithOffset(long timestamp, long offset, long windowSize) {

//窗口开始计算的时间

return timestamp - (timestamp - offset + windowSize) % windowSize;

我们可以看出来窗口开始时间, 是取模过后的时间,我们来简单的分析一番。

假如我们第一条数据的时间戳是1000,offset暂时不需要管,【关注尚硅谷,轻松学IT】因为他是时间的偏移量例如,东八区什么的。我们假如窗口大小是5s,

那么接下来的公式计算也就是 1000 - (1000 - 0 + 5000)% 5000,那么我们可以计算出来的结果就是0,也就是说,窗口开始的时间是0.更大的时间窗口大小,各位大佬可以下面自己算一下。

也就是说开始时间是 0,结束的时间窗口也就是4999,因为到5000的时候就触发计算了。那么我们接下来就进行验证一番和我们分析的是否一致。

接下来我们写一个简单的wordcount,因为在多并行度下,www.atguigu.com不是很好分析,我们设置为单并行读。

* @author :qingzhi.wu

* @date :2022/1/18 8:36 下午

public class WindowSizeTest {

public static void main(String[] args) throws Exception {

StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);

DataStreamSource

source = env.socketTextStream("localhost", 9999);

SingleOutputStreamOperator

source1 = source.assignTimestampsAndWatermarks(new BoundedOutOfOrdernessTimestampExtractor

(Time.of(0, TimeUnit.MILLISECONDS)) {

@Override

public long extractTimestamp(String s) {

return Long.parseLong(s.split(",")[0]);

SingleOutputStreamOperator

> map = source1.map(new MapFunction

@Override

public Tuple2

map(String s) throws Exception {

return Tuple2.of(s.split(",")[1],1);

WindowedStream

, Tuple, TimeWindow> window = map.keyBy(0).window(TumblingEventTimeWindows.of(Time.of(5000, TimeUnit.MILLISECONDS)));

window.sum(1).print();

env.execute();

接下来我们,就看看我们分析的是否正确

很明显是正确的。那么一天的窗口大小你会计算吗?

文章来源于好胖子的大数据之路

大数据开发之Flink sql 的基础用法

大数据培训:在 flink 中使用 hive udf的原因分析

大数据开发之Spark和Flink的对比(转载)

大数据开发之Flink SQL建设实时数仓实践

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
张雪峰去世20天后,爱将突然官宣离职,多条回复言论令人浮想联翩

张雪峰去世20天后,爱将突然官宣离职,多条回复言论令人浮想联翩

草莓解说体育
2026-04-19 10:35:52
拉住跳楼女友5分钟至力竭,仍被判10%责赔8万:司法自由裁量+无限责任令人不寒而栗

拉住跳楼女友5分钟至力竭,仍被判10%责赔8万:司法自由裁量+无限责任令人不寒而栗

少爷写春秋
2026-04-18 22:47:55
张本兄妹改名风波再升级,韩媒强烈批评,这就是狠毒的创姓改称

张本兄妹改名风波再升级,韩媒强烈批评,这就是狠毒的创姓改称

有范又有料
2026-04-19 00:03:10
结束五连败,邱彪:主要贺希宁没打,困难时期感谢这帮兄弟们

结束五连败,邱彪:主要贺希宁没打,困难时期感谢这帮兄弟们

懂球帝
2026-04-19 22:16:18
62岁李连杰新封面认不出!刀削脸冷冽,当年黄飞鸿判若两人

62岁李连杰新封面认不出!刀削脸冷冽,当年黄飞鸿判若两人

喜欢历史的阿繁
2026-04-19 21:49:06
“高挑甜妹”来袭!

“高挑甜妹”来袭!

文刀万
2026-04-18 10:31:29
本菲卡帅位不保?穆里尼奥松口:若皇马召唤,我不会说不!

本菲卡帅位不保?穆里尼奥松口:若皇马召唤,我不会说不!

体育闲话说
2026-04-19 20:11:07
加内特:文班亚马应该和美国黑女约会,需要去成人夜总会逛逛

加内特:文班亚马应该和美国黑女约会,需要去成人夜总会逛逛

懂球帝
2026-04-19 11:17:26
新华社点名曝光:拼多多暴力抗法细节!

新华社点名曝光:拼多多暴力抗法细节!

仕道
2026-04-18 20:55:32
疯狂小杨哥最新照片曝光,满脸憔悴,神采不再

疯狂小杨哥最新照片曝光,满脸憔悴,神采不再

微微热评
2026-04-17 12:35:11
黎巴嫩的命,真惨

黎巴嫩的命,真惨

虚声
2026-04-18 20:12:56
油价,爆了!

油价,爆了!

江南晚报
2026-04-19 08:23:10
台北买房无望,马筱梅吐槽北京房子旧,楼上装修太吵,人设崩塌了

台北买房无望,马筱梅吐槽北京房子旧,楼上装修太吵,人设崩塌了

八斗小先生
2026-04-17 11:14:22
81年宋庆龄病重住院,邓小平特意前去探望后,当即下达了一道命令

81年宋庆龄病重住院,邓小平特意前去探望后,当即下达了一道命令

谈古论今历史有道
2026-04-18 19:20:03
放弃冰球转行当导演!65岁英达砸数千万培养终成空,英如镝曾喊话内涵巴图

放弃冰球转行当导演!65岁英达砸数千万培养终成空,英如镝曾喊话内涵巴图

喜欢历史的阿繁
2026-04-16 15:40:35
A股:周末,利空突袭,股民散户注意,明天将迎来更大的暴风雨?

A股:周末,利空突袭,股民散户注意,明天将迎来更大的暴风雨?

云鹏叙事
2026-04-19 17:01:09
好冤!杜兰特被队友撞倒!右膝挫伤了!

好冤!杜兰特被队友撞倒!右膝挫伤了!

柚子说球
2026-04-18 22:03:51
离大谱!大妈冲进餐厅强行放生龙虾,结果人家是宠物,直接被她救死了...

离大谱!大妈冲进餐厅强行放生龙虾,结果人家是宠物,直接被她救死了...

英国那些事儿
2026-04-17 23:25:19
许家印案最新进展:68岁认罪,前恒大歌舞团长白珊珊被曝定居澳门

许家印案最新进展:68岁认罪,前恒大歌舞团长白珊珊被曝定居澳门

鉴史录
2026-04-19 09:44:38
在韩国遭日籍男子骚扰的中国女生最新发声:涉事者被警方限期返韩接受调查,韩国警方已就前期处置疏漏致歉,并将对涉事警务人员开展调查

在韩国遭日籍男子骚扰的中国女生最新发声:涉事者被警方限期返韩接受调查,韩国警方已就前期处置疏漏致歉,并将对涉事警务人员开展调查

大风新闻
2026-04-19 15:49:08
2026-04-19 22:27:00
IT爱好者小尚
IT爱好者小尚
分享IT教育类信息
630文章数 55关注度
往期回顾 全部

科技要闻

50分26秒破人类纪录!300台机器人狂飙半马

头条要闻

印度当晚召见伊朗大使抗议两船只遭开火袭击 伊朗回应

头条要闻

印度当晚召见伊朗大使抗议两船只遭开火袭击 伊朗回应

体育要闻

湖人1比0火箭:老詹比乌度卡像教练

娱乐要闻

张天爱评论区沦陷!被曝卷入小三风波

财经要闻

华谊兄弟,8年亏光85亿

汽车要闻

29分钟大定破万 极氪8X为什么这么多人买?

态度原创

家居
教育
房产
数码
军事航空

家居要闻

法式线条 时光静淌

教育要闻

挑战30天:用60道逻辑题,练出孩子的理解力与变通力

房产要闻

官宣签约最强城更!海口楼市,突然杀入神秘房企!

数码要闻

何刚晒华为WATCH FIT 5 Pro手表真机,明日亮相

军事要闻

伊朗逼退美扫雷艇:美方求给15分钟撤退

无障碍浏览 进入关怀版