背景
现在软件开发很多是多系统多模块,经常会遇到要将设备、人员、区域等资源同步到本系统数据库保存一份。资源同步常用的方案为全量同步和增量同步结合的方式,全量同步一般情况下为项目启动时和每天定时任务去同步所需资源,增量同步一般利用mq去接收资源的变更(增删改)通知然后修改到本地数据库。这里介绍下如何进行高效安全的全量同步。
全量同步
准备工作:
假设要同步的表为region表,关键字段为(id, name, create_time, update_time),其他如(name, type, code)等根据业务而不同。另外创建一张region_temp表字段同region表。
调用其他系统的分页接口获取全量的region资源数据,并批量插入到region_temp表。
region_temp表中已有最近同步的全量资源数据,但是,我们最终的目的是全量更新region表,针对以下场景分别阐述如何更新region表:
- 新增的数据
insert into region (id, name, code, create_time, update_time)
select t.id, t.name, t.code, t.create_time, t.update_time
from