Как реализовать LEFT OUTER JOIN с потоками в Apache Flink - PullRequest
0 голосов
/ 08 июля 2019

У меня есть два потока слева и справа. Для того же временного окна скажем, что

  • левый поток содержит элементы L1, L2 (число ключ)
  • правый поток содержит элементы R1, R3

Интересно, как реализовать LEFT OUTER JOIN в Apache Flink, чтобы результат, полученный при обработке этого окна, был следующим:

(L1, R1), (L2, null)

L1, R1 совпадают по ключу (1), а L2, R3 не совпадают. L2 включен, потому что слева

1 Ответ

1 голос
/ 14 июля 2019

Ну, вы должны быть в состоянии получить правильные результаты с оператором coGroup и правильно реализованным CoGroupFunction.Функция дает Вам доступ ко всей группе в методе coGroup.Документация гласит, что для CoGroupFunction одна из групп может быть пустой, поэтому это должно позволить вам реализовать Outer Join.Единственная проблема заключается в том, что группы в настоящее время создаются в памяти, поэтому вам необходимо убедиться, что ваши группы не станут слишком большими, поскольку они могут эффективно убивать JVM.

...