Атрибут окна по времени и пу sh в поток - PullRequest
0 голосов
/ 06 февраля 2020

У нас есть входной поток, в котором события имеют атрибут времени (а не время обработки или время события), по которому их нужно поместить в группы по 1 минуте и поместить в поток (приемник kinesis / kafka), когда минута прибывает. Мы думали, что сможем сделать это, используя windows. У меня есть эти сомнения:

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

  2. Поскольку в конце обработки мне приходится отправлять sh события в приемник, как мы обрабатываем функции Reduction / Agg? ?

3. В ситуации, когда приложение flink было недоступно, когда мы возвращаем его обратно, как вызвать windows, который должен был быть запущен к тому времени? Получил ответ на это: таймеры проверены и запущены на следующий запуск.

Неужели мы полностью упускаем суть и есть ли лучший способ сделать это?

РЕДАКТИРОВАТЬ: Добавление контекста: у нас есть требование повторить события, основанные на определенных бизнес-логиках c (внутренний валидация). Поскольку оператор, который мы используем (asyn c IO), не поддерживает отставки и остается только один вариант - использовать Futures путем написания пользовательского кода, мы решили отправить его обратно во входной поток приложения. Время повторения событий зависит от бизнес-логики c снова (рассчитывается во время выполнения). Таким образом, для достижения sh этого мы думали, что можем собрать события в соответствии со значением даты и времени до минуты вычисленного значения и поместить их в поток точно в момент наступления времени.

...