1 前言
MRS CDL是华为云FusionInsight MRS推出的一种数据实时同步服务,旨在将传统OLTP数据库中的事件信息捕捉并实时推送到大数据产品中去,本文档会详细为大家介绍CDL的整体架构以及关键技术。
2 CDL的概念
MRS CDL(Change Data Loader)是一款基于Kafka Connect的CDC数据同步服务,可以从多种OLTP数据源捕获数据,如Oracle、MySQL、PostgreSQL等,然后传输给目标存储,该目标存储可以大数据存储如HDFS,OBS,也可以是实时数据湖Hudi等。
2.1 什么是CDC?
CDC(Change Data Capture)是一种通过监测数据变更(新增、修改、删除等)而对变更的数据进行进一步处理的一种设计模式,通常应用在数据仓库以及和数据库密切相关的一些应用上,比如数据同步、备份、审计、ETL等。
CDC技术的诞生已经有些年头了,二十多年前,CDC技术就已经用来捕获应用数据的变更。CDC技术能够及时有效的将消息同步到对应的数仓中,并且几乎对当前的生产应用不产生影响。如今,大数据应用越来越普遍,CDC这项古老的技术重新焕发了生机,对接大数据场景已经是CDC技术的新使命。
当前业界已经有许多成熟的CDC to大数据的产品,如:Oracle GoldenGate(for Kafka)、 Ali/Canal、Linkedin/Databus、Debezium/Debezium等等。
2.2 CDL支持的场景
MRS CDL吸收了以上成熟产品的成功经验,采用Oracle LogMinner和开源的Debezium来进行CDC事件的捕捉,借助Kafka和Kafka Connect的高并发,高吞吐量,高可靠框架进行任务的部署。
现有的CDC产品在对接大数据场景时,基本都会选择将数据同步到消息队列Kafka中。MRS CDL在此基础上进一步提供了数据直接入湖的能力,可以直接对接MRS HDFS和Huawei OBS以及MRS Hudi、ClickHouse等,解决数据的最后一公里问题。
表1 MRS CDL支持的场景
3 CDL的架构
作为一个CDC系统,能够从源目标抽取数据并且传输到目标存储中去是基本能力,在此基础上,灵活、高性能、高可靠、可扩展、可重入、安全是MRS CDL着重考虑的方向,因此,CDL的核心设计原则如下:
- 系统结构必须满足可扩展性原则,支持在不损害现有系统功能的前提下添加新的源和目标数据存储。
- 架构设计应当满足不同角色间的业务侧重点分离
- 在合理的情况下减少复杂性和依赖性,最大限度的降低架构、安全性、韧性方面的风险。
- 需要满足插件式的客户需求,提供通用的插件能力,使得系统灵活、易用、可配置。
- 业务安全,避免横向越权和信息泄露。
3.1 架构图/角色介绍
图1 CDL架构
MRS CDL包含CDL Service和CDL Connector两个角色,他们各自的职能如下:
- CDL Service:负责任务的管理和调度,提供统一的API接口,同时监测整个CDL服务的健康状态。
- CDL Connector:本质上是Kafka Connect的Worker进程,负责真实Task的运行,在Kafka Connect高可靠、高可用、可扩展的特性基础上增加了心跳机制来协助CDL Service完成集群的健康监测。
3.2 为什么选择Kafka?
我们将Apache Kafka与Flume和Nifi等各种其他选项进行了比较,如下表所示:
|Flume|Nifi|Kafka
:--