flink keyedprocessfunction不调用进程时逻辑

u2nhd7ah  于 2021-06-21  发布在  Flink
关注(0)|答案(1)|浏览(280)

我有四件事

UserEvent(id = "customer-1", lat = 1.0 , lng = 0.0 , ts = "2018-10-16T00:00:00.01Z"),
UserEvent(id = "customer-1", lat = 2.0 , lng = 0.0 , ts = "2018-10-16T03:00:00.01Z"),
UserEvent(id = "customer-1", lat = 3.0 , lng = 0.0,  ts = "2018-10-16T04:00:00.01Z"),
UserEvent(id = "customer-1", lat = 4.0 , lng = 0.0 , ts = "2018-10-16T06:00:00.01Z")

我需要输出为

UserEvent(id = "customer-1", lat = 2.0 , lng = 0.0 , ts = "2018-10-16T03:00:00.01Z")
UserEvent(id = "customer-1", lat = 4.0 , lng = 0.0 , ts = "2018-10-16T06:00:00.01Z")

总而言之,我需要在 four hour Windows。所有事件都由 id .
我的解决方案是使用 KeyedProcessFunction . 我的程序只发出最后一条记录,如下所示。

UserEvent(id = "customer-1", lat = 4.0 , lng = 0.0 , ts = "2018-10-16T06:00:00.01Z")

完整的单元测试可以在这里找到

xdnvmnnf

xdnvmnnf1#

从单元测试来看,似乎您打算使用事件时间,但要实现这一点,您应该使用

env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);

此外,你的问题是什么?

相关问题