eventTime+watermarker+allowedLateness到底窗口关闭时间是什么?

结论:窗口的关闭需要带 watermarker 的时间我想使用 kafkaUI 界面发送 json 数据给 kafka,json 数据长这个样子:这个数据我是编写了一个代码生成的:编写一个 flink 读取 kafka 数据的代码这个代码中可以读取 kafka 数据,并且必须使用 evenetTime 时间语义,并且还需要有watermarker+allowedLateness开始测试:使用 kafkaUI 界面发送第一条数据:我使用时间戳转换器看一下是什么时候:https://www.beijing-time.org/shijianchuo/1764303530000 = 12:18:50 也就意味着 第一个区间是 [12:18:50,12:18:55)接着在这个区间造一些数据:

javascript 复制代码
{"money":47,"orderId":"6ce94dcefaac4106bb7b66302bb9e785","timeStamp":1764303531000,"uid":0}

{"money":47,"orderId":"6ce94dcefaac4106bb7b66302bb9e785","timeStamp":1764303532000,"uid":0}

控制台不会有输出,因为没有触发。输入以下数据可以触发:12:18:58

javascript 复制代码
{"money":47,"orderId":"6ce94dcefaac4106bb7b66302bb9e785","timeStamp":1764303538000,"uid":0}

控制台输出了数据:

2025-11-28 12:18:50->2025-11-28 12:18:55->0-->141
得到了一个结论: 水印时间 (12:18:58)>= 区间结束时间 就会触发该区间的计算 【2025-11-28 12:18:50->2025-11-28 12:18:55)此时这个 【2025-11-28 12:18:50->2025-11-28 12:18:55) 区间触发了,没有关闭接着在这个区间【2025-11-28 12:18:50->2025-11-28 12:18:55)继续放入数据:

java 复制代码
{"money":47,"orderId":"6ce94dcefaac4106bb7b66302bb9e785","timeStamp":1764303533000,"uid":0}

{"money":47,"orderId":"6ce94dcefaac4106bb7b66302bb9e785","timeStamp":1764303534000,"uid":0}

我们在这个里面又放入了12:18:53 12:18:54 的数据,放入一条,计算一次,放入一条计算一次,为什么?触发条件不是当前的时间-3 ,而是 最大的那个时间 -3 ,以前放的最大的事件时间是12:18:58接着造一个 结束时间+10s 的数据:

java 复制代码
{"money":47,"orderId":"6ce94dcefaac4106bb7b66302bb9e785","timeStamp":1764303545000,"uid":0}

此时触发了一个区间的运行 【2025-11-28 12:18:55->2025-11-28 12:19:00) ,我们不关系,而关系的是【2025-11-28 12:18:50->2025-11-28 12:18:55) 有没有关闭?按照以前的理解,事件时间>= 窗口的结束时间+ allowedLateness 就关闭该窗口,如何测试呢?

java 复制代码
{"money":47,"orderId":"6ce94dcefaac4106bb7b66302bb9e785","timeStamp":1764303533000,"uid":0}

发现依然输出了结果,说明 添加了allowedLateness 之后,窗口的结束时间 不是 事件时间>= 窗口的结束时间+ allowedLateness那关闭时间到底是多少?事件时间 >= 窗口结束12:18:55 + watermarker(3s) + allowedLateness(10s)接着需要造一个数据:12:19:08 秒

java 复制代码
{"money":47,"orderId":"6ce94dcefaac4106bb7b66302bb9e785","timeStamp":1764303548000,"uid":0}

发现没有任何的输出,接着测试 【2025-11-28 12:18:50->2025-11-28 12:18:55) 是否关闭:

javascript 复制代码
{"money":47,"orderId":"6ce94dcefaac4106bb7b66302bb9e785","timeStamp":1764303533000,"uid":0}
相关推荐
bugcome_com12 小时前
零基础入门C#:一篇搞懂核心知识点
c#
TTBIGDATA15 小时前
【Atlas】Ambari 中 开启 Kerberos + Ranger 后 Atlas Hook 无权限访问 Kafka Topic:ATLAS_HOOK
大数据·kafka·ambari·linq·ranger·knox·bigtop
程序员敲代码吗15 小时前
如何通过命令行启动COMSOL的参数化、批处理和集群扫描
java·c#·bash
缺点内向17 小时前
C#: 告别繁琐!轻松移除Word文档中的文本与图片水印
c#·自动化·word·.net
喵叔哟18 小时前
06-ASPNETCore-WebAPI开发
服务器·后端·c#
2501_9307077818 小时前
使用 C# .NET 从 PowerPoint 演示文稿中提取背景图片
c#·powerpoint·.net
初级代码游戏19 小时前
套路化编程 C# winform 自适应缩放布局
开发语言·c#·winform·自动布局·自动缩放
大空大地202620 小时前
流程控制语句--switch多分支语句使用、while循环语句的使用、do...while语句、for循环
c#
kylezhao20191 天前
C#序列化与反序列化详细讲解与应用
c#
JQLvopkk1 天前
C# 实践AI :Visual Studio + VSCode 组合方案
人工智能·c#·visual studio