网站首页 > 博客文章 正文
一、概述
本文介绍下如何将分表数据同步到一个目标表当中。
二、案例
源库:source_db
源表:8张分表:student_0......student_7
注意:分表id需保证全局唯一:即student_0表中的主键id,不可和student_1...7分表主键id重复
本案例中,每张分表只有1条数据,主键id分别为:1、2、3、4、5、6、7、8
create table student_{0...7}
(
id bigint auto_increment primary key,
stu_code varchar(32) null,
stu_name varchar(100) null,
create_user varchar(32) null,
create_time datetime null,
update_user varchar(32) null,
update_time datetime null,
delete_flag tinyint null
);
目标库:target_db
目标表:student
项目管理和数据源管理,我们在上一章节中已经新建完毕,这里我们不是通过任务构建模块来获取datax-json文件,而是参照上一节案例,自己编写datax-json文件,具体如下:
{
"job": {
"setting": {
"speed": {
"channel": 3,
"byte": 1048576
},
"errorLimit": {
"record": 0,
"percentage": 0.02
}
},
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "yRjwDFuoPKlqya9h9H2Amg==",
"password": "4NKHycqSpV7alObg+7qq33IvNYz9jQhaZFxAJUTGJ4c=",
"splitPk": "",
"connection": [
{
"querySql": [
"SELECT * FROM student_0 UNION ALL SELECT * FROM student_1 UNION ALL SELECT * FROM student_2 UNION ALL SELECT * FROM student_3 UNION ALL SELECT * FROM student_4 UNION ALL SELECT * FROM student_5 UNION ALL SELECT * FROM student_6 UNION ALL SELECT * FROM student_7;"
],
"jdbcUrl": [
"jdbc:mysql://localhost:3306/source_db"
]
}
]
}
},
"writer": {
"name": "mysqlwriter",
"parameter": {
"writeMode": "replace",
"username": "yRjwDFuoPKlqya9h9H2Amg==",
"password": "4NKHycqSpV7alObg+7qq33IvNYz9jQhaZFxAJUTGJ4c=",
"column": [
"*"
],
"connection": [
{
"table": [
"student"
],
"jdbcUrl": "jdbc:mysql://localhost:3306/target_db"
}
]
}
}
}
]
}
}
querySql:
使用querySql来自定义筛选SQL,更加灵活,可满足复杂多变的业务。
当配置querySql时,xxxReader直接忽略table、column、where条件的配置
writeMode:
replace:有则更新,无则插入
column:
* 号代表全部列
执行任务:
三、总结
将分表同步到一个目标表,需保证主键ID全局唯一,我们可以借助雪花算法等等来生成主键ID。几个案例介绍下来,可以发现datax在数据同步这一块确实可以节省许多人力成本,同步性能也比较高,后面章节我们再接着介绍下datax数据同步流程。
猜你喜欢
- 2025-07-09 字节跳动在 Spark SQL 上的核心优化实践
- 2025-07-09 Elasticsearch:painless script语法编程和入门实战
- 2025-07-09 Rust元编程: 让你的代码在编译时开始「自我繁殖」
- 2025-07-09 Elasticsearch(三):实战(elasticsearch 快速入门)
- 2025-07-09 AI+低代码技术揭秘(三):引擎、提供程序和服务
- 2025-07-09 基于Java实现,支持在线发布API接口读取数据库,有哪些工具?
- 2025-07-09 外卖广告大规模深度学习模型工程实践
- 2025-07-09 搜索引擎onesearch3升级到Elasticsearch8系列(一)-概述
- 2025-07-09 MySQL分库分表高效联合查询架构设计:破局分布式查询困境
- 2025-07-09 揭秘:一条SQL语句的执行过程是怎么样的?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- messagesource (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)