FlinkCDC 实现 MySQL 数据变更实时同步

文章目录

1、基本介绍

Flink CDC 是 Apache Flink 提供的一个功能强大的组件,用于实时捕获和处理数据库中的数据变更。可以实时地从各种数据库(如MySQL、PostgreSQL、Oracle、MongoDB等)中捕获数据变更并将其转换为流式数据,FlinkCDC 同步数据有两种方式:

  1. FlinkSQL
  2. Flink DataStream 和 Table API(本文使用该方式)
    在这里插入图片描述
    对比其他的CDC开源方案,发现FlinkCDC是绝大多数场景最好的选择方式,别在傻傻的只关注Canal了,如下图所示:
    在这里插入图片描述

2、代码实战

2.1、数据源准备

本次我是用MySQL 8.0版本,并且创建好数据库(库名为quick_chat),本次演示表结构如下:

CREATE TABLE `quick_chat_msg` (
  `id` bigint NOT NULL COMMENT '主键id',
  `from_id` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '账户id(发送人)',
  `to_id` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '账户id(接收人)',
  `relation_id` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '发送关联',
  `content` varchar(500) DEFAULT NULL COMMENT '消息内容',
  `msg_type` tinyint(1) DEFAULT NULL COMMENT '消息类型(1:文字,2:语音,3:表情包,4:文件,5:语音通话,6:视频通话)',
  `extra_info` varchar(500) DEFAULT NULL COMMENT '额外信息',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `deleted` tinyint(1) DEFAULT NULL COMMENT '删除标识',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;

需要保证MySQL的Binlog格式是ROW,不过MySQL 8.0版本格式默认就

Flink CDC是一个可以直接从MySQL数据库读取全量数据和增量变更数据的组件。它是由Flink社区开发的flink-cdc-connectors组件,可用于实时捕获数据库的变动并将其写入消息中间件以供其他服务进行订阅和消费。使用Flink CDC读取MySQL数据的过程如下: 1. 首先,确保你已经正确安装和配置了Flinkflink-cdc-connectors组件。 2. 在Flink的作业中,使用CDC Connector来定义一个source,用于读取MySQL的数据。通过配置连接参数、数据库表信息和读取起始位置等,你可以指定要读取的数据源和读取的方式。 3. 在作业中使用Flink的数据转换和处理算子对读取到的MySQL数据进行处理和转换。你可以根据具体需求进行数据清洗、过滤、聚合等操作。 4. 最后,将处理后的数据发送到目标位置,可以是其他存储系统、消息队列或其他下游服务。 需要注意的是,为了使用Flink CDC读取MySQL数据,你需要确保正确配置了MySQL数据库的连接信息和权限,并在Flink作业中正确配置了CDC Connector的参数。此外,你还需要确保Flink作业和MySQL数据库之间的网络连接正常。 引用<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Flink CDC实时获取MySQL数据](https://blog.csdn.net/weixin_41507897/article/details/120123176)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [基于FlinkSQLCDC实时数据同步方案](https://download.csdn.net/download/weixin_38691199/15541340)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值