更新时间:2024-12-09 GMT+08:00

CDL

CDL简介

CDL(全称Change Data Loader)是一个基于Kafka Connect框架的实时数据集成服务。 CDL服务能够从各种OLTP数据库中捕获数据库的Data Change事件,并推送到kafka,再由sink connector推送到大数据生态系统中。

CDL目前支持的数据源有MySQL、PostgreSQL、Hudi、Kafka、ThirdParty-Kafka,目标端支持写入Kafka、Hudi、DWS以及ClickHouse。

CDL结构

CDL服务包含了两个重要的角色:CDLConnector和CDLService,CDLConnector是具体执行数据抓取任务的实例,包含了Source Connector和Sink Connector,CDLService是负责管理和创建任务的实例。

CDL服务中的CDLService是多主模式,任意一个CDLService都可以进行业务操作;CDLConnector是分布式模式,提供了高可靠和Rebalance的能力,创建任务时指定的task数量会在整个集群中的CDLConnector实例之间做均衡,保证每个实例上运行的task数量大致相同,如果某个CDLConnector实例异常或者节点宕机,该任务会在其它节点重新平衡task的数量。

图1 Task的Rebalance示意图

CDL与其他组件的关系

CDL组件基于Kafka Connect框架,抓取的数据都是通过kafka的topic做中转,所以首先依赖Kafka组件,其次CDL本身存储了任务的元数据信息和监控信息,这些数据都存储在数据库,因此也依赖DBService组件。