У меня есть поток данных flink, в котором я выполняю некоторую обработку с помощью KeyedProcessFunction, затем мне нужно сохранить данные в MongoDB после обработки, но я не могу этого сделать. Может ли кто-нибудь предоставить мне информацию о том, как я могу сохранить данные в Mongo из потока данных flink.
MongoDB не поддерживается в качестве приемника для Flink, и никто из сообщества не предоставил для него пакет в https://flink-packages.org/.
Это означает, что вам, возможно, придется написать собственный приемник, если только вы не найдете где-нибудь что-то подходящее.
Если вам нужно поддерживать транзакции, реализация приемника, который обрабатывает это, стала немного проще с Flink 1.12. Это описано в FLIP-143: Unified Sink API.
Если вам нужны примеры, то есть стоки в самом Flink, а также в Apache Bahir. Однако существует очень мало приемников двухфазной фиксации, и только один (пока) использует FLIP-143 (FileSink в Flink 1.12).
Спасибо за помощь. Я смог написать приемник и сохранить данные.
на самом деле я планировал то же самое, то есть написать собственный приемник, но не смог найти подходящего способа, показывающего, как я могу добиться этого для MongoDB. Везде то, что я вижу, это пользовательский приемник для rdbms.