第一章
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 组件。
目前也已开源。
第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 实现数据源。