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

Apache flink Flink支持键控水印吗?如果没有,是否有在未来版本中实施的计划?我的选择是什么?,apache-flink,flink-streaming,Apache Flink,Flink Streaming,我们从数千名用户收集驾驶数据,每辆车都与IMEI(唯一代码)关联。安装在这些车辆上的设备每隔5秒发射GPS点。我的要求是为给定的IMEI集合属于一次出行的所有GPS点,并构建一个出行对象 我使用事件时间和会话窗口来检测行程的结束(10分钟未接收GPS坐标),以及另外15分钟允许的迟到时间来等待迟到事件。然后,水印将提前到最近接收到的事件时间。假设这是针对IMEI=100的。现在,如果我收到IMEI的1到99的数据,这些数据的事件时间在这个水印之后,那么所有这些数据都将被认为是延迟的,不会被处理

我们从数千名用户收集驾驶数据,每辆车都与IMEI(唯一代码)关联。安装在这些车辆上的设备每隔5秒发射GPS点。我的要求是为给定的IMEI集合属于一次出行的所有GPS点,并构建一个出行对象

我使用事件时间和会话窗口来检测行程的结束(10分钟未接收GPS坐标),以及另外15分钟允许的迟到时间来等待迟到事件。然后,水印将提前到最近接收到的事件时间。假设这是针对IMEI=100的。现在,如果我收到IMEI的1到99的数据,这些数据的事件时间在这个水印之后,那么所有这些数据都将被认为是延迟的,不会被处理

换句话说,如果一辆车的数据提前了水印,那么来自所有其他车辆的数据将被视为延迟,因为水印是全局的

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


任何帮助都将不胜感激

Flink不支持每键水印,至少目前还不支持

另一方面,支持Kafka使用者的每分区水印。因此,如果您使用卡夫卡,并且能够为每辆车提供一个分区,那么这可能是一个解决方案


< >否则,您可能会考虑使用FLINK的低级API来建立会话,而不是依赖于会话窗口。但如果不能使用水印触发事件时间计时器,这听起来并不简单。

Flink不支持每键水印,至少目前还不支持

另一方面,支持Kafka使用者的每分区水印。因此,如果您使用卡夫卡,并且能够为每辆车提供一个分区,那么这可能是一个解决方案


< >否则,您可能会考虑使用FLINK的低级API来建立会话,而不是依赖于会话窗口。但如果不能使用水印触发事件时间计时器,这听起来并不简单。

您找到解决方案了吗?我们也遇到了类似的问题,缺少密钥水印使我们转向了另一个流媒体平台。不,Flink似乎不可能,至少目前是这样。你找到解决方案了吗?我们也遇到了类似的问题,缺少关键的水印使得我们转向了另一个流媒体平台。不,这在Flink看来是不可能的,至少现在是这样。