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");
相关推荐
天下无敌笨笨熊16 分钟前
ES作为向量库研究
大数据·python·elasticsearch
Hello.Reader17 分钟前
Flink CDC 用 SqlServer CDC 实时同步数据到 Elasticsearch
elasticsearch·sqlserver·flink
数据知道24 分钟前
FastAPI项目:从零到一搭建一个网站导航系统
python·mysql·fastapi·python web·python项目
Leon-Ning Liu1 小时前
MySQL 5.7大表索引优化实战:108GB数据建索引效率提升50%
运维·数据库·mysql
千寻技术帮1 小时前
50030_基于微信小程序的生鲜配送系统
mysql·微信小程序·源码·安装·文档·ppt·答疑
Wang's Blog1 小时前
MySQL: 数据库监控核心要素与实施策略
数据库·mysql
海奥华22 小时前
分库分表技术详解:从入门到实践
数据库·后端·mysql·golang
paperxie_xiexuo3 小时前
如何用自然语言生成科研图表?深度体验PaperXie AI科研绘图模块在流程图、机制图与结构图场景下的实际应用效果
大数据·人工智能·流程图·大学生
就是ping不通的蛋黄派4 小时前
MySQL数据库 管理与维护
数据库·mysql
旗讯数字5 小时前
旗讯 OCR 技术解析:金融行业手写表格识别方案与系统集成实践
大数据·金融·ocr