第一章

1.1 什么是cdc 

cdc 是change data capture 变更数据获取的简称。核心思想是,监测并捕获数据库的变动(包括数据或数据表的插入,更新以及删除等),将这些变更按发生的顺序完整记录下来,写入到消息中间件以供其他服务进行订阅及消费。

1.2 cdc的种类

cdc主要分为基于查询和基于binlog两种方式。

cdc的主要分为 基于查询和基于binblog两种方式,我们主要了解一下这两种之间的区别。


基于查询的cdc

基于binlog的cdc

开源产品

sqoop,datax

canal,maxwall,debezium

执行模式

batch

streaming

是否可以捕获所有数据的变化

延迟性

高延迟

低延迟

是否增加数据库压力

1.3 flink cdc 

社区开发了flink cdc connecctors 组件,是一个可以直接从mysql ,postgresql,等数据库读取全量数据和增量变更数据的souce 组件。

目前也已开源。

flink cdc 3.x  _mysql

第2章flink cdc案例实操

2.1 数据准备

在mysql中创建数据库及表

mysql到doris 的streamingetl实现

环境准备:

tar -zxvf flink-cdc-3.0.0-bin.tar.gz -C /opt/module

拖mysql以及doris依赖包

将flink cdc pipeline-connector-doris-3.0.0.jar 以及 flink cdc pipeline-connector-mysql-3.0.0.jar 在flinkcdc的lib目录下。

同步变更:

在flink cdc 目录下创建job文件夹,并在该目录下创建同步变更配置文件。

mkdir job 

cd job 

vim mysql-to-doris.yaml

source:
    type: mysql
    hostname: hadoop301
    port: 3306
    username: root
    passwd: "root"
    server-id: 5400-5404
    server-time-zone: UTC+8
 
 sink:
     type: doris
     fenodes: hadoop102:7030
     username: root
     password: "000000"
     table.create.properties.light_schema_change: true
     table.create.properties.replication_num: 1
 
 pipline:
     name: sysmysql database to doris
     parallelism: 1
     

启动任务并测试

开启flink集群:

flink 配置信息中打开checkpoint

###添加如下配置信息

execution.checkpointing.inerval:5000 

flink cdc 实现数据源。