Маркировка окон Flink Tumbling - PullRequest
0 голосов
/ 07 марта 2019

У меня есть сценарий с приложением flink, которое получает потоки данных в следующем формате:

{"event_id": "c1s2s34", "event_create_timestamp": "2019-03-07 11:11:23", "amount": "104.67"}

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

keyValue.timeWindow (Time.seconds (60))

Однако как я могу обозначить агрегированный результат так, чтобы я мог сказать, что поток выходных данных между 16:20 и 16:21 агрегированными результатами будет сумма x, число y и среднее значение z.

Любая помощь присваивается.

1 Ответ

0 голосов
/ 07 марта 2019

Если вы посмотрите на пример окон на учебном сайте Flink - https://training.ververica.com/exercises/hourlyTips.html - вы увидите пример того, как использовать ProcessWindowFunction для создания выходных событий из окон, которые включают информацию о синхронизации и т. Д. Основная идея состоит в том, что методу process () в ProcessWindowFunction передается Context, который, в свою очередь, содержит объект Window, из которого вы можете определить время начала и окончания окна, например, context.window().getEnd().

Затем вы можете настроить функцию ProcessWindow для возврата кортежей или POJO, которые содержат всю информацию, которую вы хотите включить в ваши отчеты.

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