不同系统之间往往需要进行数据同步,保持数据的一致性。
比如每天需要从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表不存在,为新增的数据
相关推荐
这篇博客“如何实现多个系统间的数据同步”将深入探讨这个主题,旨在帮助开发者和系统管理员理解并掌握实现跨系统数据一致性的关键技术和方法。 首先,我们需要理解数据同步的含义。数据同步是指在两个或更多系统...
这是一个利用java中的定时任务和jdbc去同步数据库中的数据一个工具类。 1、在配置文件中synnum同步的数量必须要大于接口查询出来的数量。 2、在解析json数据的时候,如果同步记录数只有一条会同步不到,需要将其中...
同步不同数据库之间的数据,比如postgresql到oracle,oracle到oracle,不限于此,支持自己配置。 实现思路: 在主线程中创建若干子线程,每个子线程分别用来同步一张数据表,提供web页面,监控各个子线程运行状况,...
从文件名"定时同步系统"推测,该系统可能包含一个定时任务调度组件,如Quartz或Spring Scheduler,用于定期执行数据同步任务。 综上所述,Java数据实时同步系统通过高效的同步策略、可靠的框架和全面的错误处理...
在构建大型企业信息系统时,数据同步是至关重要的环节,尤其对于集团与分、子公司之间的信息交互。本方案探讨了两种数据同步方式:大集团与下属集团间的同步,以及集团与下属矿之间的同步。考虑到网络和硬件条件的...
该实施成功地解决了多个系统间的数据同步问题,为处理类似分布式系统间的数据同步提供了有价值的参考。 在实施过程中,我们遵循以下设计原则: 1. **可扩展性**:设计应支持未来的系统扩展,允许新的应用系统无缝接...
本文将深入探讨MySQL到Oracle的数据同步过程,以及如何在同步过程中修改MySQL数据表的标识。 首先,我们要理解MySQL和Oracle是两种不同的关系型数据库管理系统(RDBMS)。MySQL以其开源、轻量级、高效的特点被广泛...
7. **微服务架构**:在微服务中,每个服务通常维护自己的数据库,通过API Gateway或Service Mesh进行服务间的通信,实现数据同步。这种方法强调服务自治,但需要良好的服务间协调机制。 在实现过程中,需要注意以下...
Informatica 数据同步解决方案是指通过 Informatica 平台实现的数据同步解决方案,该方案使您的 IT 组织能够以批量、接近实时和实时模式使用高质量数据,实现所有运营和交易系统的同步。借助数据同步,降低成本、...
通过上述配置,SAP PI开发系统和生产系统的SLD数据将能够自动同步,确保开发过程基于最新的业务需求,同时降低了系统维护的工作负担。这种自动化方法对于大型企业或复杂集成环境来说尤其重要,有助于提升整体系统...
在标题“apache-camel-3.7.0_数据同步_”中提到的“数据同步”,是指利用Apache Camel实现不同系统、数据库或应用程序间的数据交换和一致性维护。在描述中,“数据同步Data synchronization”进一步强调了这个功能的...
苏文教务系统核心数据提取同步脚本,包括学年学期、学生、教师信息、作息时间表、课表、校历、考试安排、成绩等数据
细粒度数据同步策略的设计思想不仅在数据库领域得到了应用,在分布式存储系统中同样具有重要的参考价值。其核心思想是通过数据的细粒度管理和同步,实现系统性能的优化。在实践中,该策略能够有效地减轻事务节点的...
在IT行业中,数据库数据同步系统是一项关键的技术,它允许企业整合来自不同来源的数据,实现信息的一致性和实时性。本文将深入探讨“多数据库数据同步系统”,并关注其与MySQL、Oracle、SQL Server和Sybase等数据库...
在Greenplum数据库环境中,数据同步是常见的需求,尤其在多个集群或数据库之间。这可能出于备份、恢复、测试环境复制等目的。本文将详细介绍如何在Greenplum的不同集群之间同步数据,以及如何监控性能以确保过程的...
【SCADA系统与MySQL连接及数据同步】 SCADA(Supervisory Control And Data Acquisition)系统是一种用于监控和数据采集的工业控制系统,广泛应用于自动化生产环境中。力控SCADA平台软件eForceCon是一款专业的SCADA...
PDR (PlusWell Data Replication) 是一款由北京蓝科泰达科技有限公司开发的数据同步软件,主要应用于分布式系统中的数据同步需求。它通过在各个服务器节点间建立高效的数据同步机制来确保数据的一致性和可靠性。 ##...
1. **数据同步**:数据同步是确保在不同位置或系统之间数据一致性的重要过程。在分布式系统、多用户环境或实时更新的应用程序中,数据同步是必不可少的。它可以是单向的(例如,从主数据库到备份)或双向的(双方都...