MongoDB可以用作Apache Flink的数据源来处理流数据吗?
使用 No-SQL 数据库作为数据源的 Apache Flink 原生实现是什么?
目前,Flink 没有专用的连接器可以从 MongoDB 读取。您可以执行以下操作:
- 使用
StreamExecutionEnvironment.createInput
并使用 Flink 的包装器输入格式为 MongoDB 提供 Hadoop 输入格式 - 通过实现
SourceFunction
/ParallelSourceFunction
来实现自己的MongoDB源代码
前者应该至少为您提供一次处理保证,因为在恢复的情况下会完全重新读取MongoDB集合。根据MongoDB客户端的功能,您可能能够使用后一种方法实现恰好一次的处理保证。