我们从数千名用户收集驾驶数据,每辆车都与IMEI(唯一代码)相关联。安装在这些车辆中的设备以5秒的间隔发射GPS点。我的要求是组装属于单个旅程的所有GPS点并为给定的IMEI构造Trip对象。
我正在使用事件时间和会话窗口来检测旅行的结束(非接收GPS坐标10分钟),以及另外15分钟允许迟到等待迟到的事件。然后水印进入最近收到的事件时间。假设这是IMEI = 100。现在,如果我收到IMEI 1到99的数据,这些数据在此水印后面有事件时间,则所有数据都将被视为迟到且不会被处理。
换句话说,如果一辆车的数据推进水印,那么来自所有其他车辆的数据将被认为是迟到的,因为水印是全球性的。
鉴于我的问题,有没有办法可以为不同的密钥实现不同的水印?如果不是直接可能的,有什么方法可以模拟它以适应我的应用程序?
Flink通过水印来推进事件时间。水印是嵌入在流中的常规记录。计算程序通常通过水获知某个时间点已到。比如对于一分钟的滚动窗口,假设水印标记时时间为:1:01,那么收到水印的窗口就知道不会再有早于该时间的记录出现,因为所有时间戳小于或等于该时间的事件都已经到达。这时,窗口就可以安全的计算并给出结果。水印使得事件时间和处理时间完全无关。迟到的水印并不会影响到结果的正确性,而会影响到结果的速度
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。