异构数据源实时同步系统及方法

文档序号:8543749阅读:771来源:国知局
异构数据源实时同步系统及方法
【技术领域】
[0001]本发明涉及数据同步技术领域,尤其涉及一种异构数据源实时同步系统及方法。
【背景技术】
[0002]随着互联网行业的飞速发展,各行业、单位或者机构、部门内部逐渐实现了业务信息化。一项业务或功能往往涉及多个应用系统的配合,每个应用系统具有单独的数据源。但由于业务和功能归属不同,所采用的计算机环境由不同平台组成,形成了大量异构数据源。为了实现对多个异构数据源提供统一的表示、存储、查询和管理,需要进行异构数据源同步。
[0003]例如,当用户下订单时,目标系统需要知道订单情况、商品信息等。订单涉及财务系统、用户账户系统、库存系统等应用系统,而不同商品分属于不同的库存系统的数据库,因此目标系统需要对多个数据库的数据源进行操作。当某一业务需要调用多个不同数据源时,需要读取多个应用系统的数据库的数据,并同步到目标系统的数据库中。当前,针对多个数据库进行操作时,先将各个数据库做备份,每隔固定时间进行一次数据库数据的读取,并在目标库插入其中一数据库的数据后再去查询其它数据库。当涉及的应用系统较多,需要对多个数据库同步时,同步的任务量较大,影响系统稳定性;且同步判断逻辑较复杂,需要用户具备一定的背景知识,正确配置相关参数。同时,由于需要目标系统主动同步,即订阅各数据库并每隔固定时间进行一次同步;因此,不具备实时性,且仅能针对同类的、已订阅的数据库进行同步,缺乏灵活性、可扩展性。

【发明内容】

[0004]本发明的目的在于,针对现有技术中分数据同步需要目标系统主动同步,不具备实时性,且影响系统稳定性,缺乏灵活性的技术问题,提供一种操作简单的异构数据源实时同步系统及方法,有效提高系统稳定性及同步实时性、灵活性。
[0005]为实现上述目的,本发明提供了一种异构数据源实时同步系统,包括:至少一待同步应用系统、同步中心以及至少一目标系统,每一所述待同步应用系统内设有一同步控制组件;所述至少一待同步应用系统,用于在执行到数据层访问时标记待同步数据,并通知其内部的同步控制组件;所述同步控制组件,用于捕获同步标记并异步传送至所述同步中心触发同步操作,其中,所述同步标记包含系统标识以及数据变化特征值;所述同步中心,用于根据所述同步标记从相应待同步应用系统的数据库中读取待同步数据并处理后,传送至所述至少一目标系统的数据库,完成数据同步。
[0006]为实现上述目的,本发明还提供了一种异构数据源实时同步方法,所述方法包括:(O为每一待同步应用系统设置一同步控制组件;(2)当待同步应用系统执行到数据层访问时,标记待同步数据并通知其内部的同步控制组件;(3)同步控制组件捕获同步标记并异步传送至同步中心触发同步操作,其中,所述同步标记包含系统标识以及数据变化特征值;(4)同步中心根据所述同步标记从相应待同步应用系统的数据库中读取待同步数据并处理后,传送至目标系统的数据库,完成数据同步。
[0007]本发明的优点在于:通过在待同步应用系统中设置一同步控制组件与同步中心沟通,系统的数据库中数据有变化时,由变化端主动通知变化触发同步,同步实时性较高;且系统可以关联各种类型的数据库。待同步应用系统仅通过简单标记的方式告知同步控制组件哪些数据是需要同步的,同时同步控制组件向同步中心发送的是数据变化特征值而非待同步数据本身,传送数据量较小,因此,对于待同步应用系统来说是低入侵的,系统稳定性较好。同步中心可以通过订阅的方式将一份待同步数据分别格式化成异构的数据库目标数据,推送至多个异构数据库系统,实现了数据广播推送功能。
【附图说明】
[0008]图1,本发明所述的异构数据源实时同步系统一实施例的架构示意图;
图2,本发明所述的异构数据源实时同步系统另一实施例的架构示意图;
图3,本发明所述的异构数据源实时同步方法的流程示意图。
【具体实施方式】
[0009]以下结合附图对本发明提供的异构数据源实时同步系统及方法做详细说明。实施例中待同步应用系统均以3个为例进行说明,在其它实施例中,待同步应用系统可以为单个、2个或3个以上,其同步方式与包含3个的待同步应用系统的同步方式相似;因此实施例中待同步应用系统的个数不用于限制本发明。
[0010]参考图1,本发明所述的异构数据源实时同步系统一实施例的架构示意图。在本实施例中所述系统包括三个待同步应用系统11、同步中心12以及一目标系统13 ;每一待同步应用系统11内设有一同步控制组件111,以下给出详细解释。
[0011]所述待同步应用系统11,用于在执行到数据层访问时标记待同步数据,并通知其内部的同步控制组件111。具体而言,各应用系统的数据库在数据层访问时总要调用相应的增删改查组件,若相应的增删改查组件被调用则数据发生变化。各待同步应用系统11运行时,执行到数据操作时,也即数据库在数据层访问时,标记需要同步的数据,并通知内部的同步控制组件111 ;也即,通过简单标记的方式告知同步控制组件111哪些数据是需要同步的。各待同步应用系统11可以为结构相同的同类型数据库,也可为异构的数据库系统。
[0012]所述同步控制组件111,用于捕获同步标记并异步传送至所述同步中心12触发同步操作。其中,所述同步标记包含系统标识以及数据变化特征值。所述同步控制组件111可以采用对应待同步应用系统11的语言平台的程序实现,也即同步控制组件111的程序实现所采用的编程语言为其对应的待同步应用系统11的语言平台的语言,从而降低开发难度,减小对待同步应用系统的入侵。关于系统标识:同步控制组件111设置在对应的待同步应用系统11内部,因此可以在设置时初始化设定一系统标识,以对应标识其所在的系统。关于数据变化特征值:数据库的数据修改时总要涉及到调用相应的增删改查组件,相应组件的调用对应一方法体参数的变化;同步控制组件111可以通过捕获方法体参数变化(入参、出参)获取需要同步数据的数据变化特征值。同步控制组件111捕获到数据变化特征值后,即可另走一条线程,将包含系统标识以及数据变化特征值的同步标记异步发送到同步中心12。由于待同步应用系统11仅通过简单标记的方式告知同步控制组件111哪些数据是需要同步的,同时同步控制组件111向同步中心12发送的是数据变化特征值而非待同步数据本身,传送数据量较小,因此,对于待同步应用系统来说是低入侵的,系统稳定性较好。
[0013]作为优选的实施方式,所述同步控制组件111进一步用于在捕获同步标记后,判断是否捕获到同步标记对应的更新事物的发起和结束标识,若是则将所述同步标记以及更新事物的发起和结束标识异步传送至所述同步中心12触发同步操作。事物的变化可能涉及多个方法体,此时若仅捕获单个方法体参数的变化,不能对应同步完整的事物变化。而更新事物的发起、结束均有唯一 ID,捕获到更新事物的发起和结束标识即可判定更新事物被有效执行完成,需要进行同步操作,则将所述同步标记以及更新事物的发起和结束标识异步传送至所述同步中心12触发同步操作。若同步控制组件111捕获不到完整的更新事物的发起和结束标识,则更新事物执行失败,失败的数据可以不同步。
[0014]所述同步中心12,用于根据所述同步标记从相应待同步应用系统11的数据库中读取待同步数据并处理后,传送至所述目标系统13的数据库中。具体而言,所述同步中心12接收同步控制组件111传送来的同步标记,获取系统标识以及数据变化特征值;根据系统标识对应出待同步数据所在的待同步应用系统11,根据数据变化特征值从对应出的待同步应用系统11的数据库中读取发生变化的完整数据,即待同步数据。同步中心12对待同步数据进行处理后,例如格式转换、数据清洗等,即可传送至所述目标系统13的数据库中,完成数据同步。若待同步应用系统11的数据库类型与目标系统13的数据库类型相同,也即两者的数据格式相同,同步中心12可以直接将从待同步应用系统11获取的待同步数据进行数据清洗后,传送至目标系统13的数据库;若待同步应用系统11的数据库类型与目标系统13的数据库类型不同,也即两者的数据格式不同,同步中心12则需将从待同步应用系统11获取的待同步数据格式化为可被目标系统13识别的数据形式并进行数据清洗后,传送至目标系统13的数据库。
[0015]以用户下订单为例,针对用户所下订单,需要查扣库存、扣款、加积分、分配物流;涉及订单系统、产品系统、账务系统等数据库的操作,也即需要针对多个应用系统的数据库进行数据调取。用户提交订单后,订单系统记录下单操作,产品系统进行减库存操作,账务系统进行扣款以及加积分操作,即进行各数据库的增删查改;各系统将数据变化通知对应的同步控制组件,同步控制组件捕获到变更数据的特征型数据(即数据变化特征值)发送到同步中心;同步中心依据特征型数据从各数据库获取相应更新数据,处理后同步到目标数据库中(例如用户的会员中心数据库),供用户查询。用户可以在会员中心查看到订单信息以及订单所涉及的所有商品。其中,若某一数据库操作失败,即其发起的事物执行失败,则该系统不发起同步操作。
[0016]参考图2,本发明所述的异构数据源实时同步系统另一实施例的架构示意图。与图1所示实施例不同之处在于,在本实施例中所述系统包括三个目标系统13。
[0017]作为可选的实施方式,三个目标系统13可以为数据库类型相同的数据库系统,同步中心12将待同步数据进行相同的格式化操作后,分别进行数据清洗,然后通过订阅方式分别推送至相应目标系统13的数据库中。
[0018]作为可选的实施方式,三个目标系统13可以为数据库类型不同的异构数据库系统,所述同步中心12进一步将待同步数据分别格式化为异构的数据库目标数据,进行数据清洗后,通过订阅方式分别推送至相应目标系统13的数据库中。
[0019]本发明所提供的异构数据源实时同步系统通过在待同步应用系统中设置一同步控制组件与同步中心沟通,系统的数据库中数据有
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1