数据实时同步系统及方法

文档序号:7802622阅读:213来源:国知局
数据实时同步系统及方法
【专利摘要】本发明公开了一种数据实时同步系统及方法。该系统包括:同步内容管理器,用于根据用户配置的数据库标签点之间的映射关系获取同步配置信息;数据订阅管理器,用于根据所述同步配置信息生成订阅请求并发送到源端数据库,还用于接收源端数据库根据所述订阅请求生成的订阅结果;多路任务调度器,用于接收所述同步内容管理器接收到的订阅结果,并对其中的数据进行整理和调度处理;数据筛选器,用于对所述多路任务调度器整理和调度处理后的数据进行压缩处理、滤波处理或条件筛选处理;实时通信中间件,用于将所述数据筛选器处理后的数据发送到相应的目的端数据库,完成同步。本发明解决了全量和增量同步需求带来的数据冗余问题。
【专利说明】数据实时同步系统及方法
【技术领域】
[0001]本发明涉及数据同步【技术领域】,具体地说,是一种数据实时同步的系统及方法。
【背景技术】
[0002]本发明针对多个数据库之间同步部分数据源的需求,提出多路数据同步方法和实现这一方法的系统,解决了全量和增量同步需求带来的数据冗余问题,系统通过采用通用数据缓存机制,降低了一次同步不成功带来的源端数据库节点的压力,系统通过采用双机制的数据传输方式,解决了高吞吐实时数据的同步问题。
[0003]基于网络的数据共享已成为人们获得最新数据资源不可或缺的方式,而数据同步是主要的资源共享手段之一。数据同步方式有以下优点:高冗余,提高了数据的抗灾容灾能力;远程数据本地化,减少了访问数据时的网络开销,提高了数据访问效率;可以充分利用每个节点的CPU和I/O资源,提高整体的数据访问效率。
[0004]然而,现有的数据同步方法实现简单但存在很多问题,无法满足日益增长的数据共享需求。主要表现在:
(I)传统的同步方式为简单的复制式同步,缺乏对各种资源的有机整合,造成各共享节点大量冗余数据。
[0005](2)传统的同步方式基本上是基于扫描的数据共享,实时性差,并且在数据没有发生变化时往往会耗用无谓的网络带宽和CPU资源去监视数据的变化以便及时同步。当对数据同步实时性要求增高时,造成的系统开销是指数增长的。
[0006](3)现有的同步方式,要求同步的节点同时保持在线,一旦有节点不在线情况,需要访问数据源节点获取差异部分数据,有的甚至要对全部数据进行重新同步,大大增加数据源节点的工作负担。
[0007](4)传统的同步方式基本是针对传统的关系数据或文件系统数据的,没有考虑针对高吞吐实时数据的同步方案。

【发明内容】

[0008]本发明要解决的技术问题是提供一种数据实时同步系统及方法,可以实现多个数据库之间任意标签点数据的同步,提高同步的灵活性,并可以降低系统的负担。
[0009]为了解决上述技术问题,本发明提供了一种数据实时同步系统,包括:
同步内容管理器,用于根据用户配置的数据库标签点之间的映射关系获取同步配置信
息;
数据订阅管理器,用于根据所述同步配置信息生成订阅请求并发送到源端数据库,还用于接收源端数据库根据所述订阅请求生成的订阅结果,并将订阅结果发送给所述同步内
容管理器;
多路任务调度器,用于接收所述同步内容管理器接收到的订阅结果,并对其中的数据进行整理和调度处理; 数据筛选器,用于对所述多路任务调度器整理和调度处理后的数据进行压缩处理、滤波处理或条件筛选处理;
实时通信中间件,用于将所述数据筛选器处理后的数据发送到相应的目的端数据库,完成冋步。
[0010]进一步地,还包括:
通用文件缓存器,用于在无法与目的端数据库建立连接时,对需要同步的数据进行缓存;并在与目的端数据库建立连接后,将缓存的数据发送到目的端数据库。
[0011]进一步地,所述实时通信中间件在将高频的小包数据发送到目的端数据库之前,先将高频的小包数据缓存到内存,待缓存的数据达到一定阈值或缓存时间超出设定的时间时,再将缓存的数据发送到对应目的端数据库。
[0012]进一步地,所述数据筛选器对数据进行条件筛选所依据的条件由用户配置或预先设置。
[0013]进一步地,所述实时通信中间件根据所述多路任务调度器的调度也采用多个通路将同步数据发送到对应的目的端数据库。
[0014]本发明还提供了一种数据实时同步方法,包括:
A、根据用户配置的数据库标签点之间的映射关系获取同步配置信息;
B、根据所述同步配置信息生成订阅请求并发送到源端数据库,所述源端数据库根据所述订阅请求生成订阅结果;
C、根据订阅结果,对其中的数据进行整理和调度处理;
D、对整理和调度处理后的数据进行压缩处理、滤波处理或条件筛选处理;
E、将所述压缩处理、滤波处理或条件筛选处理后的数据发送到相应的目的端数据库,完成冋步。
[0015]进一步地,所述步骤E中,在无法与目的端数据库建立连接时,对需要同步的数据进行缓存;并在与目的端数据库建立连接后,将缓存的数据发送到目的端数据库。、
进一步地,所述步骤E中,在将所述压缩处理、滤波处理或条件筛选处理后的数据发送到相应的目的端数据库前,先缓存高频的小包数据,待缓存的数据达到一定阈值或缓存时间超出设定的时间时,将缓存的数据发送到对应目的端数据库。
[0016]进一步地,所述步骤E中,对数据进行条件筛选所依据的条件由用户配置或预先设置。
[0017]进一步地,所述步骤E中,根据所述多路任务调度器的调度采用多个通路将同步数据发送到对应的目的端数据库。
[0018]本发明针对多个数据库之间同步部分数据源的需求,解决了全量和增量同步需求带来的数据冗余问题,通过采用通用数据缓存机制,降低了一次同步不成功带来的源端数据库节点的压力,系统通过采用双机制的数据传输方式,解决了高吞吐实时数据的同步问题。
【专利附图】

【附图说明】
[0019]图1是本发明的数据实时同步系统的原理框图。
[0020]图2是本发明的数据实时同步方法的流程图。[0021]图3是利用本发明的数据实时同步系统进行同步的流程图。
【具体实施方式】
[0022]下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
[0023]如图1所示,本发明的数据实时同步系统用于将源端数据库中的数据同步到目的端数据库,其中,源端数据库和目的端数据库均可以是多个实时数据库系统,且源端数据库和目的端数据库不是固定的。例如某数据库在一次同步中是作为源端数据库的,而在另一次同步中则可能作为目的端数据库,本发明对此不作限定。本发明的多路实时数据同步系统可以独立部署在一台服务器上,也可以在多台服务器上部署多路实时数据同步系统。其包括:
同步内容管理器,用于根据用户配置的数据库标签点之间的映射关系获取同步配置信
息;
数据订阅管理器,用于根据所述同步配置信息生成订阅请求并发送到源端数据库,还用于接收源端数据库根据所述订阅请求生成的订阅结果,并将订阅结果发送给所述同步内
容管理器;
多路任务调度器,用于接收所述同步内容管理器接收到的订阅结果,并对其中的数据进行整理和调度处理;
数据筛选器,用于对所述多路任务调度器整理和调度处理后的数据进行压缩处理、滤波处理或条件筛选处理;
实时通信中间件,用于将所述数据筛选器处理后的数据发送到相应的目的端数据库,完成冋步。
[0024]其中,多路任务调度器所执行的整理是根据用户配置的每条映射关系将数据进行整理。调度处理是将每条映射看成一个任务,根据优先级将数据下发给数据筛选器。数据筛选器处理的是流数据,其个数的确定方法为:有多少个通路或目的端,就会生成多少个数据筛选器实例,即每个通路对应一个数据筛选器实例。一个数据筛选器对一个通路里的数据进行压缩、滤波或条件筛选处理。
[0025]本发明使用基于订阅机制的数据共享,提高了同步的实时性,可以满足更高级的应用需求,并可用于传统的关系数据或文件系统数据。
[0026]另外,本发明的数据实时同步系统还包括通用文件缓存器,用于在无法与目的端数据库建立连接时,对需要同步的数据进行缓存;并在与目的端数据库建立连接后,将缓存的数据发送到目的端数据库。实时通信中间件在将高频的小包数据发送到目的端数据库之前,先将高频的小包数据缓存到内存,待缓存的数据达到一定阈值或缓存时间超出设定的时间时,将缓存的数据发送到对应目的端数据库。本发明使用多路缓存机制,通过添加通用的实时数据缓存模块,实时数据缓存模块根据通路的个数生成多个实例。针对每个通路或目的端的通信情况,确定是否调用实时数据缓存功能。当目的端不在线时可以把数据缓存到本地,待目的端在线时会将缓存数据顺序地发送到目的端,以实现实时数据的同步需求,又不增加数据源节点的负担。
[0027]其中,数据筛选器对数据压缩处理和滤波处理是系统预先设定的方法;条件筛选可以是系统预先设定的方法,也可以根据用户的需求设定。本发使用实时数据压缩、滤波和条件筛选机制,将大量无参考意义的采集数据过滤掉,降低系统吞吐压力的同时,又不会丢失任何关键信息。
[0028]实时通信中间件根据所述多路任务调度器的调度采用多个通路将同步数据发送到对应的目的端数据库,其中一个通路负责一个目的端数据库的数据同步,多路任务调度器根据优先级别对每个通路中的多个任务进行任务调度。在多路模式下,数据订阅管理器需要识别收到的实时订阅结果分别属于源端的哪个数据库的哪个标签点。本发明使用多路设计机制来实现N对N的数据同步方式,方便资源灵活有机整合。
[0029]在本发明中,同步内容管理器实现了对同步数据进行配置和管理的功能。为了实现灵活的资源整合功能,用户可以使用同步内容管理器按目的端数据标签点的需求,灵活在源端数据库中配置关心的数据内容,同步内容管理器将配置信息进行管理和组织,在运行同步时,按照配置的需求将数据订阅管理器发来的源端数据库的数据进行整理分发到不同的目的端。多路任务调度器在多路模式下负责对多路任务进行上下文管理和基于订阅机制的实时任务调度。当多路任务调度器接收到实时订阅结果后,则激活相应任务进行数据整理、数据调度、实时数据发送等一系列操作,最终完成一次完整的任务调度。数据筛选器负责每个目的端标签点对数据的筛选的需求,对数据进行压缩处理、滤波处理、条件筛选等处理,形成最终目的端标签点想要得到的有意义的数据,达到降低网络资源消耗的目的,又不影响目的端应用的效果。该数据筛选器根据每个不同目的端配置有独立数据处理上下文问题,满足各目的端灵活又差异化的数据同步需求。另外,当配置好的目的端与同步系统出现网络通信问题,或目的端由于宕机或维护等原因没有即时启动,通用文件缓存器负责在此时针对每个目的端网络滞留数据进行文件级的缓存,以避免数据丢失。待目的端再次在线时,实时通信中间件会把缓存数据顺序发送到目的端,实现一种离线数据的同步。增强数据同步部署的易用性和易维护性。而实时通信中间件是一个高效又不失实时性的特殊通信模块,通过数据缓存和数据超时双机制配合,来完成实时数据的高效且实时的发送。在普通网络通信模块下,没有数据缓存机制的话,高频的小包数据会对网络造成比较大的传输压力。而普通的数据缓存机制又会影响数据传输实时性。所以通过缓存和超时双机制来实现实时且高效的通信。
[0030]本发明的一种数据实时同步方法,包括:
A、根据用户配置的数据库标签点之间的映射关系获取同步配置信息;
B、根据所述同步配置信息生成订阅请求并发送到源端数据库,所述源端数据库根据所述订阅请求生成订阅结果;
C、根据订阅结果,对其中的数据进行整理和调度处理;
D、对整理和调度处理后的数据进行压缩处理、滤波处理或条件筛选处理;
E、将所述压缩处理、滤波处理或条件筛选处理后的数据发送到相应的目的端数据库,完成冋步。
[0031]其中,所述步骤E中,在无法与目的端数据库建立连接时,对需要同步的数据进行缓存;并在与目的端数据库建立连接后,将缓存的数据发送到目的端数据库。
[0032]所述步骤E中,在将所述压缩处理、滤波处理或条件筛选处理后的数据发送到相应的目的端数据库前,先缓存高频的小包数据,待缓存的数据达到一定阈值或缓存时间超出设定的时间时,将缓存的数据发送到对应目的端数据库。
[0033] 所述步骤E中,对数据进行条件筛选所依据的条件由用户配置或预先设置。
[0034]所述步骤E中,根据所述多路任务调度器的调度采用多路将同步数据发送到对应的目的端数据库。
[0035]参见图2所示,并结合图1,数据实时同步系统工作流程如图2所示:
(1)通过数据实时同步系统配置标签点映射关系,即目的端数据库中的某个标签点需要同步源端数据库中的哪一个标签点,得到同步配置信息,同步配置信息中包含有源端数据库标签点标识及目的端数据库标签点标识等,比如,目的端数据库A中的标签点Al、A2、A3分别需要同步需要同步源端数据库b中的标签点bl、源端数据库c中的标签点Cl、源端数据库η中的标签点nl,即需要将标签点bl、cl、nl源端数据分别同步到A中的标签点Al、A2、A3 ;
(2)根据同步配置信息生成订阅请求,并发送到源端数据库;源端数据库根据订阅请求生成订阅结果,即目的端数据库所请求的数据,该数据到达系统的数据订阅管理器,订阅管理器接收到订阅数据,连同源端标识一起交给同步内容管理器;
(3)同步内容管理器根据源端标识和订阅数据内容,对数据进行按目的端的整理,同时通知多路任务调度器进行任务调度,将目的端标识和订阅数据交给对应的任务进行数据处理;
(4)任务被唤醒后,根据自身上下文和数据筛选需求,对数据进行滤波、压缩、条件筛选等流程,最终将筛选后的数据交予实时通信中间件;
(5)实时通信中间件将数据实时发出,这里采用双机制进行数据发送,首先对高频的小包数据进行缓存,待缓存的数据达到一定阈值或缓存时间超出设定的时间,进行数据发送。如果发送失败,则将数据交给通用文件缓存器进行文件缓存处理。一旦发现网络通畅,实时通信中间件会主动从文件缓存器获取缓存数据,将数据发给对应的目的端。其中,对高频的小包数据进行缓存的操作是由实时通信中间件来完成的。
[0036]再结合图3所示进一步具体说明。根据配置的数据库标签点之间的映射关系,需要将bl、cl、dl源端数据同步到实时数据库系统A中的Al、A2、A3,将a2、c2、d2源端数据同步到实时数据库系统B中的B1、B2、B3,将a3、b3、d3源端数据同步到实时数据库C中的
C1、C2、C3,.......源端数据131、。1、(11、&2、。2、(12、&343、(13、......连同源端标识发送给
同步内容管理器;同步内容管理器按目的端数据库A、B、C、……整理这些源端数据和源端标识,交予多路任务调度器;多路任务调度器根据目的端数据库不同将任务划分给不同的通路,即每一路处理一个目的端的多个任务,多路任务调度器根据每个通路的上不同任务的优先级别对每一路任务进行处理,每个通路或目的端对应的数据筛选器根据任务需求对数据进行压缩、滤波或筛选处理后,将数据交予实时通信中间件;实时通信中间件根据源端标签点和目的端数据库标签点的对应关系,利用数据缓存和超时机制将数据同步到相应的目的端,否则对发送失败的数据缓存,直至发送成功。
[0037]本发明区别于以往全量式或增量式同步方式,采用灵活配置同步数据源的方式,提高了同步的实时性;本发明采用多路任务调度机制,支持多个数据库之间任意数据源点的同步,提高了同步的灵活性;本发明提供数据缓存机制,降低了因同步不成功导致的源端数据库的工作负担;本发明采用数据缓冲和数据超时机制的数据传输方式,解决了高吞吐实时数据的同步问题。
[0038]以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本【技术领域】的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
【权利要求】
1.一种数据实时同步系统,其特征在于,包括: 同步内容管理器,用于根据用户配置的数据库标签点之间的映射关系获取同步配置信息; 数据订阅管理器,用于根据所述同步配置信息生成订阅请求并发送到源端数据库,还用于接收源端数据库根据所述订阅请求生成的订阅结果,并将订阅结果发送给所述同步内容管理器; 多路任务调度器,用于接收所述同步内容管理器接收到的订阅结果,并对其中的数据进行整理和调度处理; 数据筛选器,用于对所述多路任务调度器整理和调度处理后的数据进行压缩处理、滤波处理或条件筛选处理; 实时通信中间件,用于将所述数据筛选器处理后的数据发送到相应的目的端数据库,完成冋步。
2.根据权利要求1所述的数据实时同步系统,其特征在于,还包括: 通用文件缓存器,用于在无法与目的端数据库建立连接时,对需要同步的数据进行缓存;并在与目的端数据库建立连接 后,将缓存的数据发送到目的端数据库。
3.根据权利要求2所述的数据实时同步系统,其特征在于,所述实时通信中间件在将高频的小包数据发送到目的端数据库之前,先将高频的小包数据缓存到内存,待缓存的数据达到一定阈值或缓存时间超出设定的时间时,再将缓存的数据发送到对应目的端数据库。
4.根据权利要求1所述的数据实时同步系统,其特征在于,所述数据筛选器对数据进行条件筛选所依据的条件由用户配置或预先设置。
5.根据权利要求1所述的数据实时同步系统,其特征在于,所述实时通信中间件根据所述多路任务调度器的调度也采用多个通路将同步数据发送到对应的目的端数据库。
6.一种数据实时同步方法,其特征在于,包括: A、根据用户配置的数据库标签点之间的映射关系获取同步配置信息; B、根据所述同步配置信息生成订阅请求并发送到源端数据库,所述源端数据库根据所述订阅请求生成订阅结果; C、根据订阅结果,对其中的数据进行整理和调度处理; D、对整理和调度处理后的数据进行压缩处理、滤波处理或条件筛选处理; E、将所述压缩处理、滤波处理或条件筛选处理后的数据发送到相应的目的端数据库,完成冋步。
7.根据权利要求6所述的数据实时同步方法,其特征在于,所述步骤E中,在无法与目的端数据库建立连接时,对需要同步的数据进行缓存;并在与目的端数据库建立连接后,将缓存的数据发送到目的端数据库。
8.根据权利要求6所述的数据实时同步方法,其特征在于,所述步骤E中,在将所述压缩处理、滤波处理或条件筛选处理后的数据发送到相应的目的端数据库前,先缓存高频的小包数据,待缓存的数据达到一定阈值或缓存时间超出设定的时间时,将缓存的数据发送到对应目的端数据库。
9.根据权利要求6所述的数据实时同步方法,其特征在于,所述步骤E中,对数据进行条件筛选所依据的条件由用户配置或预先设置。
10.根据权利要求6所述的数据实时同步方法,其特征在于,所述步骤E中,根据所述多路任务调度器的调度采用多个通路将同步数据发送到对应的 目的端数据库。
【文档编号】H04L29/08GK103942324SQ201410176486
【公开日】2014年7月23日 申请日期:2014年4月29日 优先权日:2014年4月29日
【发明者】王堃, 莫增文, 韩亚荣, 史丽坤, 孙浩宇, 王强 申请人:北京中科启信软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1