flink实时读取mongodb方案调研-实现mongodb cdc

背景介绍

mongodb目前是很多企业业务上常用的nosql数据库。我们需要对这些业务mongodb数据库进行 数据同步到 数据仓库中进行 数据分析处理。

技术选型

CDC介绍

CDC (Change Data Capture) 是一种用于捕捉数据库变更数据的技术

CDC 技术的应用场景非常广泛:

数据同步:用于备份,容灾;
数据分发:一个数据源分发给多个下游系统;
数据采集:面向数据仓库 / 数据湖的 ETL 数据集成,是非常重要的数据源。
CDC 的技术方案非常多,目前业界主流的实现机制可以分为两种:

基于查询的 CDC

离线调度查询作业,批处理。把一张表同步到其他系统,每次通过查询去获取表中最新的数据;
无法保障数据一致性,查的过程中有可能数据已经发生了多次变更;
不保障实时性,基于离线调度存在天然的延迟。

基于日志的 CDC

实时消费日志,流处理,例如 Mongodb 的 oplog 日志完整记录了数据库中的变更,可以把 oplog 文件当作流的数据源;
保障数据一致性,因为 oplog 文件包含了所有历史变更明细;
保障实时性,因为类似 oplog 的日志文件是可以流式消费的,提供的是实时数据。

对比常见的开源 CDC 方案,我们可以发现:

上一篇:[Flutter]Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns解决


下一篇:linux安装python