一种数据同步方法和装置制造方法及图纸

技术编号:20493858 阅读:25 留言:0更新日期:2019-03-02 23:34
本发明专利技术公开了一种数据同步方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:以预设的时间间隔定期查询并获取与本地数据对应的数据库数据的第一版本信息;在每次执行所述查询并获取的操作之后,将所述本地数据的第二版本信息与所述第一版本信息进行比对,其中,当第一版本信息指示的版本高于第二版本信息指示的版本时,获取与所述本地数据对应的数据库数据,并根据该获取的数据库数据同步所述本地数据,然后将所述第二版本信息更新为所述第一版本信息。该实施方式能够确保同步后的本地数据与数据库的最新数据最终保持一致,此外,还可以使不同业务类型的数据同步平行运行、互不干扰,减少请求同步单个业务类型数据时的数据传输。

A Data Synchronization Method and Device

The invention discloses a data synchronization method and device, which relates to the field of computer technology. One specific embodiment of the method includes: periodically querying and acquiring the first version information of database data corresponding to local data at preset intervals; after each execution of the query and acquisition operation, comparing the second version information of the local data with the first version information, where the version indicated by the first version information is higher than the second version. In the version indicated by this information, the database data corresponding to the local data is acquired, and the local data is synchronized according to the acquired database data, and then the second version information is updated to the first version information. The implementation can ensure that the local data after synchronization is consistent with the latest data in the database. In addition, it can make the data of different business types run synchronously and parallel without interference, and reduce the data transmission when requesting synchronization of single business type data.

【技术实现步骤摘要】
一种数据同步方法和装置
本专利技术涉及计算机
,尤其涉及一种数据同步方法和装置。
技术介绍
目前多数应用场景下会使用定时将数据库中的数据进行获取同步,从而进行数据使用操作,在具体业务领域中,许多系统线上应用时会使用到配置信息数据,例如风控系统的业务需要配置脚本语言执行规则,以便线上业务能灵活地执行处理各项业务逻辑,配置的规则数据为了稳定性及易操作性通常情况下会放在关系型数据库中,随着系统对数据获取时效性需求的提高,一般会将配置的执行规则数据定时从关系型数据库中同步出来以供应用系统调用。一般情况下,同步数据库数据到其他系统采用的技术方案是定期检查数据库更新,如果有更新则进行同步并应用数据库更新到系统中。判断数据库是否有更新的方法是比较上次同步时间和数据库最后更新时间,如果上次同步时间早于数据库最后更新时间,则数据库中数据有更新。为了避免数据库记录删除无法获取最后更新时间,数据只允许更新和插入。这个方案存在的问题是效率不够高,对数据库过于依赖,当使用规则引擎的应用集群较大时,数据库查询并发很大,尤其是在数据库有更新时,应用会集中获取数据库规则内容,给数据库带来很大负担,若此时还有其他数据库操作,将会出现性能问题。在上述方案的基础上可以使用redis缓存数据库查询结果,即将从数据库查询到的数据放入redis缓存中,再根据redis缓存中的数据同步本地数据,数据同步的步骤包括:步骤1:查询数据库,获取数据库中的数据d1;步骤2:将数据d1放到redis缓存;步骤3:根据redis缓存中的数据d1同步本地数据。数据库中数据更新的步骤包括:步骤4:数据库将数据d1更新数据为d2;步骤5:redis缓存执行数据删除操作,删除数据d1,以便下次读时会从数据库中读取数据查询结果到redis中。然而,现有方案在分布式环境下,步骤1至步骤3和步骤4至步骤5很可能是在不同的机器上执行,如果机器A执行了步骤1以后,在执行步骤2和步骤3之前,机器B执行完成了步骤4至步骤5,那么redis缓存中存放的实际上是数据d1,而数据库中存放的是d2,并且因为上次同步数据d1的时间晚于数据库最后更新数据d2的时间,即使redis中数据过时后,本地系统也不会去再去请求数据库中的数据。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:现有方案存在同步后的本地数据与数据库中的最新数据不一致的情况。
技术实现思路
有鉴于此,本专利技术实施例提供一种数据同步方法和装置,能够确保同步后的本地数据与数据库的最新数据最终保持一致,此外,还可以使不同业务类型的数据同步平行运行、互不干扰,减少请求同步单个业务类型数据时的数据传输。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种数据同步方法。一种数据同步方法,包括:以预设的时间间隔定期查询并获取与本地数据对应的数据库数据的第一版本信息;在每次执行所述查询并获取的操作之后,将所述本地数据的第二版本信息与所述第一版本信息进行比对,其中,当所述第一版本信息指示的版本高于所述第二版本信息指示的版本时,获取与所述本地数据对应的数据库数据,并根据该获取的数据库数据同步所述本地数据,然后将所述第二版本信息更新为所述第一版本信息。可选地,所述数据库数据包括多条记录,每条记录包括记录ID和业务类型,所述本地数据包括具有一预设业务类型的若干条记录,以预设的时间间隔定期查询并获取与本地数据对应的数据库数据的第一版本信息的步骤,包括:步骤一,以预设的时间间隔定期从缓存系统查询是否缓存有与所述预设业务类型对应的版本信息,若是,则执行步骤二,若否,则从数据库中查询与所述预设业务类型对应的版本信息并缓存到所述缓存系统,然后执行步骤二;步骤二,获取缓存的所述对应的版本信息得到与本地数据对应的数据库数据的第一版本信息。可选地,获取与所述本地数据对应的数据库数据的步骤,包括:查询所述缓存系统中是否存有对应所述预设业务类型的数据库数据,若有,则从所述缓存系统获取该对应所述预设业务类型的数据库数据,否则,从所述数据库查询对应所述预设业务类型的数据库数据并缓存到所述缓存系统,然后从所述缓存系统获取该对应所述预设业务类型的数据库数据。可选地,所述与所述预设业务类型对应的版本信息为所述预设业务类型对应的最大记录ID。可选地,所述数据库中,与每个业务类型对应的版本信息随着该业务类型的对应的记录被执行插入、更新或删除的操作而自增。可选地,从缓存系统查询是否缓存有与所述预设业务类型对应的版本信息的步骤,包括:从缓存系统查询是否缓存有所述预设业务类型与一版本信息之间的一一对应关系,所述一版本信息为与所述预设业务类型对应的版本信息;从数据库中查询与所述预设业务类型对应的版本信息并缓存到所述缓存系统的步骤,包括:从数据库中查询所述预设业务类型与所述一版本信息之间的一一对应关系,并将所述一一对应关系缓存到所述缓存系统;获取缓存的所述对应的版本信息的步骤,包括:根据缓存的所述一一对应关系获取所述对应的版本信息。根据本专利技术实施例的另一方面,提供了一种数据同步装置。一种数据同步装置,包括:查询模块,用于以预设的时间间隔定期查询并获取与本地数据对应的数据库数据的第一版本信息;比对模块,用于在每次执行所述查询并获取的操作之后,将所述本地数据的第二版本信息与所述第一版本信息进行比对,其中,同步模块,用于当所述第一版本信息指示的版本高于所述第二版本信息指示的版本时,获取与所述本地数据对应的数据库数据,并根据该获取的数据库数据同步所述本地数据,然后将所述第二版本信息更新为所述第一版本信息。可选地,所述数据库数据包括多条记录,每条记录包括记录ID和业务类型,所述本地数据包括具有一预设业务类型的若干条记录,所述查询模块还用于:步骤一,以预设的时间间隔定期从缓存系统查询是否缓存有与所述预设业务类型对应的版本信息,若是,则执行步骤二,若否,则从数据库中查询与所述预设业务类型对应的版本信息并缓存到所述缓存系统,然后执行步骤二;步骤二,获取缓存的所述对应的版本信息得到与本地数据对应的数据库数据的第一版本信息。可选地,所述同步模块还用于:查询所述缓存系统中是否存有对应所述预设业务类型的数据库数据,若有,则从所述缓存系统获取该对应所述预设业务类型的数据库数据,否则,从所述数据库查询对应所述预设业务类型的数据库数据并缓存到所述缓存系统,然后从所述缓存系统获取该对应所述预设业务类型的数据库数据。可选地,所述与所述预设业务类型对应的版本信息为所述预设业务类型对应的最大记录ID。可选地,所述数据库中,与每个业务类型对应的版本信息随着该业务类型的对应的记录被执行插入、更新或删除的操作而自增。可选地,所述查询模块中:从缓存系统查询是否缓存有与所述预设业务类型对应的版本信息,包括:从缓存系统查询是否缓存有所述预设业务类型与一版本信息之间的一一对应关系,所述一版本信息为与所述预设业务类型对应的版本信息;从数据库中查询与所述预设业务类型对应的版本信息并缓存到所述缓存系统,包括:从数据库中查询所述预设业务类型与所述一版本信息之间的一一对应关系,并将所述一一对应关系缓存到所述缓存系统;获取缓存的所述对应的版本信息,包括:根据缓存的所述一一对应关系获取所述对应的版本信息。根据本专利技术实施例的又一方面,提供本文档来自技高网
...

【技术保护点】
1.一种数据同步方法,其特征在于,包括:以预设的时间间隔定期查询并获取与本地数据对应的数据库数据的第一版本信息;在每次执行所述查询并获取的操作之后,将所述本地数据的第二版本信息与所述第一版本信息进行比对,其中,当所述第一版本信息指示的版本高于所述第二版本信息指示的版本时,获取与所述本地数据对应的数据库数据,并根据该获取的数据库数据同步所述本地数据,然后将所述第二版本信息更新为所述第一版本信息。

【技术特征摘要】
1.一种数据同步方法,其特征在于,包括:以预设的时间间隔定期查询并获取与本地数据对应的数据库数据的第一版本信息;在每次执行所述查询并获取的操作之后,将所述本地数据的第二版本信息与所述第一版本信息进行比对,其中,当所述第一版本信息指示的版本高于所述第二版本信息指示的版本时,获取与所述本地数据对应的数据库数据,并根据该获取的数据库数据同步所述本地数据,然后将所述第二版本信息更新为所述第一版本信息。2.根据权利要求1所述的方法,其特征在于,所述数据库数据包括多条记录,每条记录包括记录ID和业务类型,所述本地数据包括具有一预设业务类型的若干条记录,以预设的时间间隔定期查询并获取与本地数据对应的数据库数据的第一版本信息的步骤,包括:步骤一,以预设的时间间隔定期从缓存系统查询是否缓存有与所述预设业务类型对应的版本信息,若是,则执行步骤二,若否,则从数据库中查询与所述预设业务类型对应的版本信息并缓存到所述缓存系统,然后执行步骤二;步骤二,获取缓存的所述对应的版本信息得到与本地数据对应的数据库数据的第一版本信息。3.根据权利要求2所述的方法,其特征在于,获取与所述本地数据对应的数据库数据的步骤,包括:查询所述缓存系统中是否存有对应所述预设业务类型的数据库数据,若有,则从所述缓存系统获取该对应所述预设业务类型的数据库数据,否则,从所述数据库查询对应所述预设业务类型的数据库数据并缓存到所述缓存系统,然后从所述缓存系统获取该对应所述预设业务类型的数据库数据。4.根据权利要求2所述的方法,其特征在于,所述与所述预设业务类型对应的版本信息为所述预设业务类型对应的最大记录ID。5.根据权利要求2所述的方法,其特征在于,所述数据库中,与每个业务类型对应的版本信息随着该业务类型的对应的记录被执行插入、更新或删除的操作而自增。6.根据权利要求2所述的方法,其特征在于,从缓存系统查询是否缓存有与所述预设业务类型对应的版本信息的步骤,包括:从缓存系统查询是否缓存有所述预设业务类型与一版本信息之间的一一对应关系,所述一版本信息为与所述预设业务类型对应的版本信息;从数据库中查询与所述预设业务类型对应的版本信息并缓存到所述缓存系统的步骤,包括:从数据库中查询所述预设业务类型与所述一版本信息之间的一一对应关系,并将所述一一对应关系缓存到所述缓存系统;获取缓存的所述对应的版本信息的步骤,包括:根据缓存的所述一一对应关系获取所述对应的版本信息。7.一种数据同步装置,其特征在于,包括:查询模块,用于以预设的时间间隔定期查询并获取与本地数据对应的数据库数据的第一版本信息;比对模块,...

【专利技术属性】
技术研发人员:程夏衍王燕佳
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1