前期工作准备:https://blog.csdn.net/xueruixuan/article/details/86488703
实战案例场景描述:
2个数据库跨库同步数据, 2个库的数据进行同步的新增、修改、删除
1: 数据库模块
数据库A 为Mysql 数据库 存在表Table1
数据库B 为Sqlserver 数据库 存在表Table 2
每隔15分钟,将Table1的数据 同步到Table 2的数据中
2: 唯一性判断
2个表的数据唯一性都是依赖于主键GID (匹配字段)
2个表都是根据UpdateTime 和 状态码 、GID 3个条件判断数据的变化性 (数据字段)
案例实战步骤
1. 配置完成数据库配置,如果大家在同一个作业里面都使用1个 数据源,记得点击右键,数据共享
2. 搭建简易的流程
原始表:指的是数据来源的表
目标表:指的是将要同步的表
排序记录(划重点):是为了解决 后期2个表合并记录的时候准备使用的,原因是因为 每次合并记录的时候,默认是按50000一一次存储到内存中,如果不提前排序,可能会导致 2个表的结果集 合并记录时出现错误的情况,最后导致同步数据失败
字段选择:是为了解决 2个表跨库的过程中,数据库字段不一致的问题
合并记录(划重点)
匹配的关键字 对比出2个数据库是否存在相同的记录(简单理解为判断是否新增的依据),
数据字典 是对比2个数据库是否存在 变化的记录,此字段需要根据业务场景来进行调整处理 PS:字段越多对比数据越慢
根据合并记录的数据行来执行对应的流程处理
注意: 值千千万万一定要按这个上面的写,特别是changed,别写错了
后续的配置网上案例就比较多了,大家记得 提交数据的时候,还是把批量更新可能会对数据库的压力更小一点
如果涉及到多表的同步,而且直接没有关联性的,可以尝试用下面这个方式进行
总结:
1. 文章写得很乱,没有流程而言,只有每个地方简单切图
2. 排序的细节点和合并记录的细节点 非常非常重要
3. 自己也是初学者,无法跟大佬相比,如果更好的方案或者问题,请大佬指出。