开发者社区> 问答> 正文

Flink是否支持键控水印?如果没有,是否有任何计划在未来版本中实施?我有什么选择?

我们从数千名用户收集驾驶数据,每辆车都与IMEI(唯一代码)相关联。安装在这些车辆中的设备以5秒的间隔发射GPS点。我的要求是组装属于单个旅程的所有GPS点并为给定的IMEI构造Trip对象。

我正在使用事件时间和会话窗口来检测旅行的结束(非接收GPS坐标10分钟),以及另外15分钟允许迟到等待迟到的事件。然后水印进入最近收到的事件时间。假设这是IMEI = 100。现在,如果我收到IMEI 1到99的数据,这些数据在此水印后面有事件时间,则所有数据都将被视为迟到且不会被处理。

换句话说,如果一辆车的数据推进水印,那么来自所有其他车辆的数据将被认为是迟到的,因为水印是全球性的。

鉴于我的问题,有没有办法可以为不同的密钥实现不同的水印?如果不是直接可能的,有什么方法可以模拟它以适应我的应用程序?

展开
收起
flink小助手 2018-12-10 13:39:06 2168 0
1 条回答
写回答
取消 提交回答
  • Flink通过水印来推进事件时间。水印是嵌入在流中的常规记录。计算程序通常通过水获知某个时间点已到。比如对于一分钟的滚动窗口,假设水印标记时时间为:1:01,那么收到水印的窗口就知道不会再有早于该时间的记录出现,因为所有时间戳小于或等于该时间的事件都已经到达。这时,窗口就可以安全的计算并给出结果。水印使得事件时间和处理时间完全无关。迟到的水印并不会影响到结果的正确性,而会影响到结果的速度

    2019-07-17 23:19:14
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载