Поддерживает ли Flink ключевые водяные знаки? Если нет, есть ли план по его внедрению в будущих версиях? Каковы мои альтернативы? - PullRequest
0 голосов
/ 05 сентября 2018

Мы собираем данные о вождении от тысяч пользователей, каждое транспортное средство связано с IMEI (уникальный код). Устройство, установленное в этих транспортных средствах, излучает точки GPS с интервалами в 5 секунд. Мое требование состоит в том, чтобы собрать все точки GPS, которые принадлежат одной поездке, и построить объект Поездки для данного IMEI.

Я использую время события и окна сеанса для определения конца поездки (10 минут без получения координат GPS) и еще 15 минут допустимого опоздания для ожидания поздних событий. Водяной знак затем продвигается к последнему полученному времени события. Допустим, это для IMEI = 100. Теперь, если я получу данные для IMEI с 1 по 99, у которых есть время события за этим водяным знаком, все эти данные будут считаться запоздалыми и не будут обрабатываться.

Другими словами, если данные одного транспортного средства опережают водяной знак, то данные от всех других транспортных средств будут считаться запоздалыми, поскольку водяные знаки являются глобальными.

Учитывая мою проблему, есть ли способ реализовать разные водяные знаки для разных клавиш? Если это невозможно, могу ли я каким-то образом смоделировать его в соответствии с моим приложением?

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 05 сентября 2018

Flink не поддерживает водяные знаки для каждого ключа, по крайней мере, пока.

С другой стороны, есть поддержка водяных знаков для каждого раздела для потребителя Kafka. Поэтому, если вы используете Kafka и можете позволить себе раздел для каждого транспортного средства, это может быть решением.

В противном случае вы можете рассмотреть возможность создания сеансов самостоятельно, используя низкоуровневые API Flink, а не полагаясь на окна сеансов. Но без возможности использовать водяные знаки для запуска таймеров времени события, это не кажется простым.

...