Flink CDC获取mysql 主从分库,分库分表的binlog

Flink CDC可以获取MySQL主从分库,分库分表的binlog,但是需要注意以下几点:

  • Flink CDC需要配置MySQL的binlog模式为row,以及开启GTID(全局事务标识符),以便正确地识别和处理binlog事件
  • Flink CDC需要配置MySQL的主从复制关系,以及指定主库或从库的地址,以便正确地连接和读取binlog数据
  • Flink CDC需要配置MySQL的分库分表规则,以及指定分库分表的键,以便正确地合并和转换binlog数据

一个可能的Flink CDC获取MySQL主从分库,分库分表的binlog的示例如下:

复制代码
-- 创建MySQL主从分库,分库分表的表对象
CREATE TABLE mysql_user (
  id INT PRIMARY KEY NOT ENFORCED,
  name STRING,
  age INT
) WITH (
  'connector' = 'mysql-cdc',
  'hostname' = 'master-host', -- 主库地址
  'port' = '3306',
  'username' = 'root',
  'password' = '123456',
  'database-name' = 'test', -- 分库名
  'table-name' = 'user_${0-9}', -- 分表名
  'server-id' = '5400', -- 从库ID
  'scan.startup.mode' = 'initial', -- 初始扫描模式
  'scan.split.size' = '8096', -- 扫描块大小
  'debezium.snapshot.locking.mode' = 'none', -- 快照锁定模式
  'debezium.gtid.source.includes' = '', -- GTID包含范围
  'debezium.gtid.source.excludes' = '' -- GTID排除范围
);

-- 使用Flink SQL或DataStream API将MySQL的增量数据写入到其他目标,如Hive、Doris等
INSERT INTO hive_user SELECT * FROM mysql_user;

-- DataStream API
DataStream<Row> stream = tEnv.toAppendStream(tEnv.sqlQuery("SELECT * FROM mysql_user"), Row.class);
tEnv.createTemporaryView("stream", stream);
tEnv.executeSql("INSERT INTO doris_user SELECT * FROM stream");
相关推荐
湘美书院--湘美谈教育9 分钟前
湘美书院AI时代的禅悟集:人机智能,反照诸我
大数据·人工智能·深度学习·机器学习·生活
‎ദ്ദിᵔ.˛.ᵔ₎2 小时前
MySQL 表约束
数据库·mysql
电商API_180079052472 小时前
拍照找同款是怎么实现的?淘宝以图搜图接口 item_search_img 对接实战
大数据·爬虫·数据挖掘·数据分析·代采api
洋洋不叫杨杨4 小时前
Codex 实战:用 AI 写运维脚本
大数据·python
linmengmeng_13144 小时前
【总结】MyBatis-Plus批量插入与清表的正确姿势
java·spring boot·mysql·mybatis
Regentsoft丽晶软件4 小时前
即时零售退货的库存归属、质检标准和退款时效,系统如何做到自动闭环
大数据·经验分享·数据库架构
动恰客流统计4 小时前
线下零售数字化浪潮下,客流统计的3个核心发展趋势
大数据·前端·人工智能
adinnet20265 小时前
Neo4j 凭什么叫原生图数据库?Cypher 查询能做什么
大数据·人工智能
见闻小天地5 小时前
脱硫脱硝塔选变频器避坑指南:四方DL500变频器使用体验分享
大数据·运维·人工智能·业界资讯
达梦数据6 小时前
DMDRS空间数据类型说明:Oracle、DM8、MySQL空间数据类型映射
数据库·mysql·oracle