本发明属于数据同步传输领域,更具体地,涉及一种数据同步方法。
背景技术:
在现实业务中,不同的系统之间可能需要共用部分基础数据,这些基础数据在这些不同的系统中数据类型不一样,数据结构也不一样,在不同系统中的同步条件也不一样,有些同步工具,每次进行同步需要输入的条件,没有记录详细的条件,不便于用户下次使用,同时,输入的条件没有支持集团级系统的组织隔离。另外,目前的同步工具,同步的数据来源是固定的,数据类型是固定,数据结构是固定的,比较单一,缺乏数据的多样性。还有目前的同步工具,虽然提供了数据操作出错的日志信息,帮助客户定位操作错误信息,但是缺少对同步日志错误的详细记录,做到让客户快速方便的定位到出错的位置。
因此,特别需要一种方法可以使用户在不同系统中对不同数据源的数据,不同类型的数据和不同结构的数据同步,提高了数据同步的多样性,,适应了用户的个性化要求,提高了系统程序的维护性,扩展性,灵活性。
技术实现要素:
本发明的目的是提出一种可以使用户在不同系统中对不同数据源的数据,不同类型的数据和不同结构的数据同步,提高了数据同步的多样性,,适应了用户的个性化要求的数据同步方法。
为了实现上述目的,本发明提供一种数据同步方法,应用于多个业务系统之间的数据同步,所述多个业务系统包括综合管理系统、第一业务子系统和第二业务子系统,所述综合管理系统分别与所述第一业务子系统和第二业务子系统通信连接,所述综合管理系统中存储有第一业务子系统和第二业务子系统的基础数据,第一业务子系统和第二业务子系统需要的所述基础数据的类型和数据结构不同,所述方法包括:
在所述综合管理系统的数据库中建立同步临时表,并建立第一业务子系统和第二业务子系统数据同步的映射关系表;根据所述映射关系表,将第一业务子系统数据库中需要同步到第二业务子系统的数据表在所述第一业务子系统中设置对应的触发器;当所述第一业务子系统中设有所述触发器的数据表中的基础数据发生变更时,所述触发器被触发,并将变更的基础数据实时上传至所述同步临时表中;第二业务子系统定时读取所述同步临时表,获取对应变更的基础数据,并将对应变更的基础数据转换为需要的数据类型和数据结构后同步至所述第二业务子系统的本地数据库中;所述第一业务子系统设有数据同步调用接口;当所述第一业务子系统的基础数据发生变更时,通过所述数据同步调用接口将变更的基础数据同步到所述第二业务子系统。
优选的,所述通过所述数据同步调用接口将变更的基础数据同步到所述第二业务子系统包括:所述第一业务子系统通过数据同步调用接口发送同步请求至服务器,所述服务器根据所述同步请求,去应用所述第一业务子系统的客户端获取变更的基础数据,将所述基础数据转换为需要的数据类型和数据结构,将转换后的数据发送至所述第二业务子系统。
优选的,上传到所述同步临时表中的每条基础数据带有唯一的标识id和操作标识,所述服务器获取的变更的基础数据带有唯一的标识id。
优选的,所述第二业务子系统将通过所述数据同步调用接口获取的变更的基础数据的唯一的标识id与通过所述同步临时表中获取的变更的基础数据的唯一的标识id做比较,进行重复数据校验。
优选的,所述第二业务子系统定时读取所述同步临时表,对所述同步临时表的基础数据进行校验,获取对应变更的基础数据,将所述对应变更的基础数据转换为需要的数据类型和数据结构。
优选的,所述第二业务子系统将变更的基础数据同步至本地数据库后,所述综合管理系统在同步临时表删除已被同步的基础数据。
优选的,所述方法还包括:生成同步日志,所述同步日志包括每次同步的基础数据的详细信息及校验信息。
优选的,所述映射关系表反应所述第一业务子系统和所述第二业务子系统之间的组织关系,所述映射关系表中设有所述第一业务子系统的组织与所述第二业务子系统的组织进行同步的标志。
优选的,通过所述映射关系表指定同步的数据以及修改、增加需要同步的数据。
优选的,所述操作标识包括新增、修改、删除。
本发明的有益效果在于:本发明的数据同步方法支持多系统之间保持数据实时同步,可以实现毫秒级的数据同步,同时可以实现不同系统间的不同数据类型,不同数据结构的数据同步;通过建立两个子系统之间的映射关系,能够按照需求进行不同数据的同步;采有两种方式同时同步,避免了其中两个系统间因连接断开而导致同步种植,极大程度得减小了数据遗漏的概率。
本发明的方法具有其它的特性和优点,这些特性和优点从并入本文中的附图和随后的具体实施例中将是显而易见的,或者将在并入本文中的附图和随后的具体实施例中进行详细陈述,这些附图和具体实施例共同用于解释本发明的特定原理。
附图说明
通过结合附图对本发明示例性实施方式进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显,其中,在本发明示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了根据本发明的一个实施例的数据同步方法的流程图。
图2示出了根据本发明的一个实施例的数据同步方法的映射关系表。
图3示出了根据本发明的一个实施例的数据同步方法的日志界面图。
具体实施方式
下面将更详细地描述本发明的优选实施方式。虽然以下描述了本发明的优选实施方式,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。
根据本发明的一种数据同步方法,应用于多个业务系统之间的数据同步,多个业务系统包括综合管理系统、第一业务子系统和第二业务子系统,综合管理系统分别与第一业务子系统和第二业务子系统通信连接,综合管理系统中存储有第一业务子系统和第二业务子系统的基础数据,第一业务子系统和第二业务子系统需要的基础数据的类型和数据结构不同,方法包括:
在综合管理系统的数据库中建立同步临时表,并建立第一业务子系统和第二业务子系统数据同步的映射关系表;根据映射关系表,将第一业务子系统数据库中需要同步到第二业务子系统的数据表在第一业务子系统中设置对应的触发器;当第一业务子系统中设有触发器的数据表中的基础数据发生变更时,触发器被触发,并将变更的基础数据实时上传至同步临时表中;第二业务子系统定时读取同步临时表,获取对应变更的基础数据,并将对应变更的基础数据转换为需要的数据类型和数据结构后同步至第二业务子系统的本地数据库中;第一业务子系统设有数据同步调用接口;当第一业务子系统的基础数据发生变更时,通过数据同步调用接口将变更的基础数据同步到第二业务子系统。
具体的,有a,b,c三个系统,系统a为综合管理系统,拥有第一业务子系统b和第二业务子系统c中所有业务所需要的所有基本数据,系统b与系统c需要共用相同的数据,但是由于实际业务的需求不同,不同的系统所用到的数据类型和数据结构都不同,这部分数据需要实时同步。
初始的方案是,系统a作为综合管理库,基础数据在系统b中添加或者修改,所有的数据都需要传输到系统a中,系统c只需要与系统b中指定的表保持实时同步,在系统a中建立系统b与系统c的映射关系,系统b为了实现与系统c的数据实时同步,由系统b在库中给指定的需要同步的表写触发器,一旦表中数据有变动则传输到系统a的临时表中。系统c定时连接系统a的数据库取临时表中的同步数据,经过程序转换为系统c中的数据类型和数据结构插入系统c中,记录一个唯一标志,此唯一标志为三个系统统一的唯一标志,然后定时清理临时表中已经同步过的数据。同步到系统c中的数据,将同步字段设置为不可修改,在系统c中的其余字段可以修改,并且可以根据系统c是实际业务随时添加新字段,方便灵活。
但是在实际实现过程中会出现以下两点问题:(1)一旦系统a与系统c之间的连接断开,会影响系统c获取临时数据,导致系统c中的业务无法顺利进行下去;(2)在系统b向系统a传输数据时,偶尔会出现数据丢失的情况,造成系统c也会丢失一部分数据。为了解决上述问题,本发明采用双通道传输方式。
综合管理系统的数据库建立同步临时表及第一业务子系统和第二业务子系统数据同步的映射关系表;第一业务子系统的数据库中设置需要同步的数据表的触发器,一旦第一业务子系统中的数据有变化则传输到综合管理系统的同步临时表中,其中新增、修改、删除分别用3个标志标识,第二业务子系统设有定时任务,定时地连接综合管理系统的数据库读取同步临时表,并且转换为第二业务子系统的数据类型和数据结构。
第一业务子系统通过客户端浏览器向web应用服务器发送一个http请求,web应用服务器接收到请求,然后响应客户端上第一业务子系统的请求,利用浏览器内置的对象和方法,去调用第一业务子系统的客户端应用程序,客户端应用程序获取到变更的基础数据后,把变更的基础数据传递到服务器端,服务器端接收到变更的基础数据后,对变更的基础数据做一次解码,然后把封装好的变更的基础数据进行解析,处理,转换,然后再把正确格式的数据,发送到到第二业务子系统中。
根据示例性的实施方式,数据同步方法支持多系统之间保持数据实时同步,可以实现毫秒级的数据同步,同时可以实现不同系统间的不同数据类型,不同数据结构的数据同步;通过建立两个子系统之间的映射关系,能够按照需求进行不同数据的同步;采有两种方式同时同步,避免了其中两个系统间因连接断开而导致同步种植,极大程度得减小了数据遗漏的概率。
作为优选方案,通过数据同步调用接口将变更的基础数据同步到第二业务子系统包括:第一业务子系统通过数据同步调用接口发送同步请求至服务器,服务器根据同步请求,去应用第一业务子系统的客户端获取变更的基础数据,将基础数据转换为需要的数据类型和数据结构,将转换后的数据发送至第二业务子系统。
具体的,第一业务子系统通过客户端浏览器向web应用服务器发送一个http请求,web应用服务器接收到请求,然后响应客户端上第一业务子系统的请求,利用浏览器内置的对象和方法,去调用第一业务子系统的客户端应用程序,客户端应用程序获取到变更的基础数据后,把变更的基础数据传递到服务器端,服务器端接收到变更的基础数据后,对变更的基础数据做一次解码,然后把封装好的变更的基础数据进行解析,处理,转换,然后再把正确格式的数据,发送到到第二业务子系统中。
作为优选方案,上传到同步临时表中的每条基础数据带有唯一的标识id和操作标识,服务器获取的变更的基础数据带有唯一的标识id。
作为优选方案,第二业务子系统将通过数据同步调用接口获取的变更的基础数据的唯一的标识id与通过同步临时表中获取的变更的基础数据的唯一的标识id做比较,进行重复数据校验。
具体的,第二业务子系统将通过数据同步调用接口获取的变更的基础数据的唯一的标识id与通过同步临时表中获取的变更的基础数据的唯一的标识id做比较,基于唯一的标识id判断数据是否为重复获取,如果为重复获取,则后一种方式接收的数据不进行存储。
作为优选方案,第二业务子系统定时读取同步临时表,对同步临时表的基础数据进行校验,获取对应变更的基础数据,将对应变更的基础数据转换为需要的数据类型和数据结构。
具体的,第二业务子系统定时读取同步临时表,首先对同步临时表的基础数据进行校验,将同步临时表中的数据与本地数据库存储的数据做校验,判断对应的数据是否变更,当数据变更时,获取对应变更的基础数据,当数据没变更时,不获取同步临时表中的数据。
作为优选方案,第二业务子系统将变更的基础数据同步至本地数据库后,综合管理系统在同步临时表删除已被同步的基础数据。
作为优选方案,方法还包括:生成同步日志,同步日志包括每次同步的基础数据的详细信息及校验信息。
具体的,生成同步日志,每次同步的数据都可以同步日志进行查看,包括同步成功的数据与同步失败的数据及校验信息,方便对同步失败的原因进行排查。
作为优选方案,映射关系表反应第一业务子系统和第二业务子系统之间的组织关系,映射关系表中设有第一业务子系统的组织与第二业务子系统的组织进行同步的标志。
作为优选方案,通过映射关系表指定同步的数据以及修改、增加需要同步的数据。
具体的,通过映射关系表可以指定同步部分数据,并且可以随时修改、增加同步条件,能够按照需求进行不同数据的同步,同步条件比较灵活。
作为优选方案,操作标识包括新增、修改、删除。
实施例
图1示出了根据本发明的一个实施例的数据同步方法的流程图。图2示出了根据本发明的一个实施例的数据同步方法的映射关系表。图3示出了根据本发明的一个实施例的数据同步方法的日志界面图。
结合图1、图2和图3所示,该数据同步方法,应用于多个业务系统之间的数据同步,多个业务系统包括综合管理系统、第一业务子系统和第二业务子系统,综合管理系统分别与第一业务子系统和第二业务子系统通信连接,综合管理系统中存储有第一业务子系统和第二业务子系统的基础数据,第一业务子系统和第二业务子系统需要的基础数据的类型和数据结构不同,方法包括:
s102:在综合管理系统的数据库中建立同步临时表,并建立第一业务子系统和第二业务子系统数据同步的映射关系表;
s104:根据映射关系表,将第一业务子系统数据库中需要同步到第二业务子系统的数据表在第一业务子系统中设置对应的触发器;
s106:当第一业务子系统中设有触发器的数据表中的基础数据发生变更时,触发器被触发,并将变更的基础数据实时上传至同步临时表中;
s108:第二业务子系统定时读取同步临时表,获取对应变更的基础数据,并将对应变更的基础数据转换为需要的数据类型和数据结构后同步至第二业务子系统的本地数据库中;
s110:第一业务子系统设有数据同步调用接口;当第一业务子系统的基础数据发生变更时,通过数据同步调用接口将变更的基础数据同步到第二业务子系统。
其中,通过数据同步调用接口将变更的基础数据同步到第二业务子系统包括:第一业务子系统通过数据同步调用接口发送同步请求至服务器,服务器根据同步请求,去应用第一业务子系统的客户端获取变更的基础数据,将基础数据转换为需要的数据类型和数据结构,将转换后的数据发送至第二业务子系统。
其中,上传到同步临时表中的每条基础数据带有唯一的标识id和操作标识,服务器获取的变更的基础数据带有唯一的标识id。
其中,第二业务子系统将通过数据同步调用接口获取的变更的基础数据的唯一的标识id与通过同步临时表中获取的变更的基础数据的唯一的标识id做比较,进行重复数据校验。
其中,第二业务子系统定时读取同步临时表,对同步临时表的基础数据进行校验,获取对应变更的基础数据,将对应变更的基础数据转换为需要的数据类型和数据结构。
其中,第二业务子系统将变更的基础数据同步至本地数据库后,综合管理系统在同步临时表删除已被同步的基础数据。
其中,方法还包括:生成同步日志,同步日志包括每次同步的基础数据的详细信息及校验信息。
其中,映射关系表反应第一业务子系统和第二业务子系统之间的组织关系,映射关系表中设有第一业务子系统的组织与第二业务子系统的组织进行同步的标志。
其中,通过映射关系表指定同步的数据以及修改、增加需要同步的数据。
其中,操作标识包括新增、修改、删除。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。
1.一种数据同步方法,应用于多个业务系统之间的数据同步,所述多个业务系统包括综合管理系统、第一业务子系统和第二业务子系统,所述综合管理系统分别与所述第一业务子系统和第二业务子系统通信连接,所述综合管理系统中存储有第一业务子系统和第二业务子系统的基础数据,第一业务子系统和第二业务子系统需要的所述基础数据的类型和数据结构不同,其特征在于,所述方法包括:
在所述综合管理系统的数据库中建立同步临时表,并建立第一业务子系统和第二业务子系统数据同步的映射关系表;
根据所述映射关系表,将第一业务子系统数据库中需要同步到第二业务子系统的数据表在所述第一业务子系统中设置对应的触发器;
当所述第一业务子系统中设有所述触发器的数据表中的基础数据发生变更时,所述触发器被触发,并将变更的基础数据实时上传至所述同步临时表中;
第二业务子系统定时读取所述同步临时表,获取对应变更的基础数据,并将对应变更的基础数据转换为需要的数据类型和数据结构后同步至所述第二业务子系统的本地数据库中;
所述第一业务子系统设有数据同步调用接口;当所述第一业务子系统的基础数据发生变更时,通过所述数据同步调用接口将变更的基础数据同步到所述第二业务子系统。
2.根据权利要求1所述的数据同步方法,其特征在于,所述通过所述数据同步调用接口将变更的基础数据同步到所述第二业务子系统包括:所述第一业务子系统通过数据同步调用接口发送同步请求至服务器,所述服务器根据所述同步请求,去应用所述第一业务子系统的客户端获取变更的基础数据,将所述基础数据转换为需要的数据类型和数据结构,将转换后的数据发送至所述第二业务子系统。
3.根据权利要求2所述的数据同步方法,其特征在于,上传到所述同步临时表中的每条基础数据带有唯一的标识id和操作标识,所述服务器获取的变更的基础数据带有唯一的标识id。
4.根据权利要求3所述的数据同步方法,其特征在于,所述第二业务子系统将通过所述数据同步调用接口获取的变更的基础数据的唯一的标识id与通过所述同步临时表中获取的变更的基础数据的唯一的标识id做比较,进行重复数据校验。
5.根据权利要求1所述的数据同步方法,其特征在于,所述第二业务子系统定时读取所述同步临时表,对所述同步临时表的基础数据进行校验,获取对应变更的基础数据,将所述对应变更的基础数据转换为需要的数据类型和数据结构。
6.根据权利要求5所述的数据同步方法,其特征在于,所述第二业务子系统将变更的基础数据同步至本地数据库后,所述综合管理系统在同步临时表删除已被同步的基础数据。
7.根据权利要求1所述的数据同步方法,其特征在于,所述方法还包括:生成同步日志,所述同步日志包括每次同步的基础数据的详细信息及校验信息。
8.根据权利要求1所述的数据同步方法,其特征在于,所述映射关系表反应所述第一业务子系统和所述第二业务子系统之间的组织关系,所述映射关系表中设有所述第一业务子系统的组织与所述第二业务子系统的组织进行同步的标志。
9.根据权利要求8所述的数据同步方法,其特征在于,通过所述映射关系表指定同步的数据以及修改、增加需要同步的数据。
10.根据权利要求3所述的数据同步方法,其特征在于,所述操作标识包括新增、修改、删除。
技术总结