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");
相关推荐
zxsz_com_cn3 分钟前
设备预测性维护数据采集方案设计
大数据
夕除9 分钟前
Mysql--09
数据库·mysql
尽兴-14 分钟前
仿京东电商商品搜索服务实战:基于 Elasticsearch 的实现与落地
大数据·elasticsearch·jenkins·建模·dsl查询
AI扑社18 分钟前
AI+GEO 驱动的全新数字营销解决方案
大数据·人工智能·geo·ai搜索
zhangren0246821 分钟前
Laravel8.x核心特性全解析
vue.js·spring boot·mysql
Java源码jdk25 分钟前
基于javaweb和mysql的springboot校园二手书交易管理系统(java+springboot+vue+elementui+layui+mysql)
java·spring boot·mysql
无忧智库33 分钟前
破局与重构:基于“中台战略”的大型集团数字化转型深度解构(PPT)
大数据
沪漂阿龙1 小时前
掌握MySQL这些函数,SQL水平直接起飞!
数据库·sql·mysql
大嘴皮猴儿1 小时前
零基础入门:跨境电商产品图片多语言翻译的完整流程与跨马翻译实操
大数据·数据库·人工智能·自动翻译·教育电商
逸Y 仙X1 小时前
文章十四:ElasticSearch Reindex重建索引
java·大数据·数据库·elasticsearch·搜索引擎·全文检索