Сохраняйте значения из потока в Apache Flink - PullRequest
0 голосов
/ 11 февраля 2020

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

Каков наилучший способ чтобы достичь этого на Apache Flink.

Спасибо

1 Ответ

0 голосов
/ 11 февраля 2020

Хорошо, так что если вы хотите иметь возможность перезапустить задание и сохранить данные, тогда я бы предложил использовать состояние Flink, которое является контрольной точкой. Я не знаю точного варианта использования, поэтому я не могу сказать, следует ли Вам использовать KeyedState или Operator State. Но в основном идея состоит в том, чтобы сохранить номера карт или все, что вы используете для проверки, в состоянии, а затем отменить свою работу с точкой сохранения, и всякий раз, когда вы захотите запустить ее снова, вы можете начать с указанной точки сохранения. Таким образом, у вас никогда не будет пустого списка недействительных номеров карт. Вы можете прочитать больше о состоянии здесь: https://ci.apache.org/projects/flink/flink-docs-stable/dev/stream/state/state.html

Что касается случая, когда Вы хотите сохранить недействительные номера карт внешне, то Вы можете, например, вывести на сторону номера карт, которые были недействительными и потопить их в Кафку или файл. Таким образом, вы сможете получить к ним доступ в любом приложении или компоненте. Вы можете найти больше о побочных выходах здесь: https://ci.apache.org/projects/flink/flink-docs-stable/dev/stream/side_output.html

...