不同系统之间往往需要进行数据同步,保持数据的一致性。
比如每天需要从HR主数据中同步人员数据到其他的业务系统系统
对于这种不同数据库之间的数据同步,无非就是要解决远程数据变化的三种形式:insert、update、delete。
1、当远程数据insert的时候,新增数据插入为本地数据。
2、当远程数据update的时候,如果更新的数据为需要的字段,更新本地数据,否则不处理
3、当远程数据delete的时候,在本地数据执行物理删除或者逻辑删除。
解决第一种情况需要一个唯一字段:比如下表中的ID,ID全局唯一,当远程数据产生新的ID可判断为insert,
解决第二种情况需要一个唯一字段+一个增长字段:比如下表中的UpdateTime,该字段根据时间增长,通过比较两天的数据ID,ID重复的为update
解决第三种情况需要在第二种情况的基础上加上一个删除标志位,当满足第二种情况且删除标准位为Y,则为delete
总结一下要实现两个数据库之间的数据同步需要满足以上描述的三种条件:
唯一字段、增长字段、删除标志位
ID |
Data1 |
Data2 |
UpdateTime |
Isdelete |
1 |
新增数据1 |
A |
2013-10-20 |
N |
2 |
新增数据2 |
B |
2013-10-20 |
N |
3 |
新增数据3 |
C |
2013-10-20 |
N |
ID |
Data1 |
Data2 |
UpdateTime |
Isdelete |
2 |
更新数据2 |
A |
2013-10-21 |
N |
3 |
删除数据3 |
B |
2013-10-21 |
Y |
4 |
新增数据4 |
C |
2013-10-21 |
N |
假设另外一种情况、以上的条件只有一个唯一的ID,比如下面的表格,没有增长字段、没有删除标志位。
如何去同步两边的数据?
ID |
Data1 |
Data2 |
1 |
新增数据1 |
A |
2 |
新增数据2 |
B |
3 |
新增数据3 |
C |
ID |
Data1 |
Data2 |
2 |
更新数据2 |
A |
3 |
删除数据3 |
C |
4 |
新增数据4 |
B |
解决的方法是:第一次同步数据之后,生成一张表A,包含两个字段,第一个字段是ID,第二个字段是除了ID之外的其他所有字段拼接起来的Hash字段;
第二次同步的时候将源表做同样的处理生成B表,关联A表和B表,
比较ID相同,Hash字段不相等的,为更新的数据;
ID在A表存在、B表不存在,为删除的数据;
ID在B表存在、A表不存在,为新增的数据
相关推荐
NULL 博文链接:https://goodscript.iteye.com/blog/1963423
解决多系统登录问题,多系统同步方案等问题
这是一个利用java中的定时任务和jdbc去同步数据库中的数据一个工具类。 1、在配置文件中synnum同步的数量必须要大于接口查询出来的数量。 2、在解析json数据的时候,如果同步记录数只有一条会同步不到,需要将其中...
同步不同数据库之间的数据,比如postgresql到oracle,oracle到oracle,不限于此,支持自己配置。 实现思路: 在主线程中创建若干子线程,每个子线程分别用来同步一张数据表,提供web页面,监控各个子线程运行状况,...
苏文教务系统核心数据提取同步脚本,包括学年学期、学生、教师信息、作息时间表、课表、校历、考试安排、成绩等数据
java数据实时同步系统,把远程数据库数据实时同步到本地数据库
一种基于spring boot插件的数据同步方法和系统.docx一种基于spring boot插件的数据同步方法和系统.docx一种基于spring boot插件的数据同步方法和系统.docx一种基于spring boot插件的数据同步方法和系统.docx一种基于...
一个数据同步系统的设计及实现,一个数据同步系统的设计及实现一个数据同步系统的设计及实现一个数据同步系统的设计及实现一个数据同步系统的设计及实现
SAP PI 开发系统和生产系统SLD数据自动同步的配置 目标:实现SAP PI开发系统和SAP PI生产系统SLD信息的自动同步,开发系统的SLD定期读取生产系统的SLD更新数据,减少手工维护两个SLD可能导致的数据差异,并减轻维护工作...
用rsync实现windows和windows、windows与linux、linux与linux之间的数据同步 含本人自己使用时的配置说明和搜集的安装教程 设置之后可以达到开机就同步一次数据的功能 可以用于svn仓库和其他重要数据的的备份
直接搭建就可以运营或则自己学习都是不错的,数据...公众号源码_知识付费系统源码带课程数据+一键同步功能 内含两套前端模板,附带500+课程数据,带一键同步功能(具体配置方法请自行查看文档),已对接个人免签支付。
我们可以通过CDC(ChangeDataCapture)工具进行解除耦合,同步到下游需要同步的存储系统。通过这种方式提高系统的稳健性,也方便后续的维护。CDC全称是ChangeDataCapture,它是一个比较广义的概念
DBSyncer是一款开源的数据同步中间件,提供MySQL、Oracle、SqlServer、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL等同步场景。 支持上传插件自定义同步转换业务,提供监控全量和增量数据统计图、应用性能...
DBSync 数据同步工具是一款异构数据库之间数据同步的工具,目前支持的数据库有:access、sqlserver、oracle、 db2、sybase ase 11-15,Mysql,同时,该软件提供的ODBC的同步功能,可以间接实现对FireBird,INTERBASE等...
基于FPGA的多路数据同步采编存储系统设计.pdf
LinkedIn最近发布了一套源无关的分布式数据同步系统Databus。简单说,就是把交易数据同步到各个不同的应用中。一个大的特色是这系统采用pull模式从log中取得数据,以达到对生产系统最小影响。 标签:...
针对煤矿用普通中小型回转钻机的随钻测斜系统姿态数据无法在线上传的问题,提出了一种离线式数据同步方法。该方法是在打钻过程中,孔口同步仪和孔底探管分别对钻杆数据和钻孔测点姿态数据进行实时采集,打钻完成后,同步...
为了在系统协同工作过程中使异构数据库的数据同步,基于agent技术给出了一个数据同步模型。在该模型中,agent的局部代理利用数据同步监听器对数据的变化进行实时监听,全局代理利用数据同步检测器对数据是否同步进行...
达梦数据同步软件(Heterogeneous database Synchronization for DM,缩写为DMHS)是达梦公 司推出的新一代支持异构环境的高性能、高可靠、高可扩展数据库实时同步系统。该产品基于成熟 的关系数据模型和标准接口,...
关于分布式异构数据库数据同步系统的研究PDF版本