Flink Объедините два потока в окне сеанса - PullRequest
1 голос
/ 14 октября 2019

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

На самом деле, как видно из документации, окно (сеанс) позволяет выполнять вычисления только для одного потока, не входящего в соединение.

Я пытался использовать комбинацию окна сеанса и функции сопроцессора, но результат неименно то, что я ожидал.

Есть ли способ объединить два потока, связанных с окном сеанса во Flink?

1 Ответ

2 голосов
/ 14 октября 2019

API Flink DataStream включает соединение окна сеанса, которое описано здесь .

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

Если это не отвечает вашим потребностям, я бы предложил функцию CoProcessFunction, но без окна сеанса. Другими словами, я предлагаю вам реализовать всю логику самостоятельно.

...