Flink KeyedProcessFunction не вызывает логику времени процесса - PullRequest
0 голосов
/ 16 октября 2018

У меня есть четыре события

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.Все события обозначаются id.

Мое решение предполагает использование KeyedProcessFunction.Моя программа генерирует только последнюю запись, как показано ниже.

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

Полный модульный тест можно найти здесь

1 Ответ

0 голосов
/ 19 октября 2018

Из модульного теста выясняется, что вы намереваетесь использовать время события, но чтобы это произошло, вы должны использовать

env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);

Кроме того, каков ваш вопрос?

...