基于Flink SQL CDC Mysql to Mysql数据同步

基于Flink SQL CDC Mysql to Mysql数据同步

Flink CDC有两种方式同步数据库:

  • 一种是通过FlinkSQL直接输入两表数据库映射进行数据同步,缺点是只能单表进行同步;
  • 一种是通过DataStream开发一个maven项目,打成jar包上传到服务器运行。

本方案使用FlinkSQL方法,同步两表中的数据。
其中Flink应用可以部署在具有公网IP的服务器上,同时可以连接其他局域网中服务器的数据进行同步工作,如不需要操作管理页面,则不对服务器IP有要求。

一、 服务器部署Flink

将Flink压缩包解压到服务器指定位置
Flink下载地址,点击进入
在这里插入图片描述

二、 配置Flink

1.配置端口号

进入到 根目录\conf\flink-conf.yaml文件,找到rest.port,将其配置为已开放的端口
在这里插入图片描述

2.配置rest.bind地址

找到rest.port位置,将其参数localhost改为0.0.0.0,不修改会导致管理页面无法正常打开。
在这里插入图片描述

三、 上传两个jar包到lib中

上面的是同步到目标mysql库的连接器
下面的是源mysql的连接器
下载地址:
flink-connector-jdbc:jar:3.0.0-1.16
flink-sql-connector-mysql-cdc:jar:2.3.0
在这里插入图片描述

四、 启动服务

进入到bin文件夹中

1. 运行start-cluster.sh
2. 运行sql-client.sh进入到FlinkSQL模式

创建两个表映射、一个启动任务指令

1)源数据库映射

create table ny_energy_data_source
(
    id             bigint ,
    enterprise_id  bigint     ,
    use_time       timestamp   ,
    date_type      int        ,
    attribute_id   bigint     ,
    PRIMARY KEY (`id`) NOT ENFORCED
)WITH (
    'connector' = 'mysql-cdc',
    'hostname' = 'ip地址',
    'port' = '3306',
    'username' = '用户名',
    'password' = '密码',
    'database-name' = '源数据库名',
    'table-name' = '表名'
);

2)目标数据库映射

	create table ny_energy_data_target
(
    id             bigint ,
    enterprise_id  bigint     ,
    use_time       timestamp   ,
    date_type      int        ,
    attribute_id   bigint     ,
    PRIMARY KEY (`id`) NOT ENFORCED
)WITH (
    'connector' = 'jdbc',
    'url' = 'jdbc:mysql://IP地址:3306/库名?serverTimezone=UTC',
    'username' = '用户名',
    'password' = '密码',
    'table-name' = '表名',
    'driver' = 'com.mysql.cj.jdbc.Driver',
    'scan.fetch-size' = '200'
);

3)启动任务
从ny_energy_data_source到ny_energy_data_target,先全量后增量

insert into ny_energy_data_target select * from ny_energy_data_source;

五、 进入到http://IP:8081(默认端口),查看任务运行情况

在这里插入图片描述

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
要使用Flink SQL创建MySQL CDC任务,你需要按照以下步骤进行操作: 1. 首先,确保你已经下载了所需的连接器。根据提供的引用内容,你需要下载`flink-connector-jdbc:jar:3.0.0-1.16`和`flink-sql-connector-mysql-cdc:jar:2.3.0`。 2. 启动Flink服务。可以使用`start-cluster.sh`脚本来启动Flink集群。 3. 运行`sql-client.sh`脚本进入Flink SQL模式。在Flink SQL模式下,你可以执行SQL语句来创建表映射和定义任务指令。 4. 针对目标数据库映射,你需要执行SQL语句来创建目标表。根据提供的引用内容,你可以使用以下SQL语句创建名为`ny_energy_data_target`的表: ``` create table ny_energy_data_target ( id bigint, enterprise_id bigint, use_time timestamp, date_type int, attribute_id bigint, PRIMARY KEY (`id`) NOT ENFORCED ) WITH ( 'connector' = 'jdbc', 'url' = 'jdbc:mysql://IP地址:3306/库名?serverTimezone=UTC', 'username' = '用户名', 'password' = '密码', 'table-name' = '表名', 'driver' = 'com.mysql.cj.jdbc.Driver', 'scan.fetch-size' = '200' ); ``` 请将`IP地址`、`库名`、`用户名`、`密码`、`表名`替换为实际的连接信息。 这样,你就成功创建了一个使用Flink SQL进行MySQL CDC的任务。你可以在该任务中使用其他SQL语句来进行数据处理和操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [基于Flink SQL CDC Mysql to Mysql数据同步](https://blog.csdn.net/weixin_43778515/article/details/129331056)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大可iii

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值