一种数据升级、查询方法和装置制造方法及图纸

技术编号:25947242 阅读:31 留言:0更新日期:2020-10-17 03:39
本发明专利技术公开了一种数据升级、查询方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:接收变更登记请求及其对应的变更明细信息,生成数据结构变更表;接收全量变更请求,根据所述数据结构变更表对源表执行数据结构变更;根据所述数据结构变更表及其对应的动态结构表,将所述动态结构表同步到执行数据结构变更后的所述源表中。该实施方式能够解决灰度期多版本程序并行导致的数据结构冲突的技术问题。

【技术实现步骤摘要】
一种数据升级、查询方法和装置
本专利技术涉及计算机
,尤其涉及一种数据升级方法和装置。
技术介绍
灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/Btesting,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。灰度期多版本应用程序同时运行存在数据结构冲突问题,一般采用数据隔离技术处理。数据隔离对不同版本的应用程序创建不同的数据源来解决不同版本数据结构的冲突。实现方式主要有两种:一是库隔离,即使用不同的数据库;二是表隔离,即使用不同的表。这两种方式都通过配置实现将不同版本的请求路由到正确的数据源访问数据。而且,灰度发布前需要对灰度期结束后程序和数据相关变更,定制整体的变更或回退实施方案。目前这一过程大都是根据业务规则和场景定制方案,业务针对性强、耦合高、成本高,没有成熟的通用解决方案。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:1)数据隔离方式会带来额外的维护成本且存在数据同步的问题,不够灵活;2)定制变更回退方案,每次变更都得单独定制方案,不通用,导致效率低。
技术实现思路
有鉴于此,本专利技术实施例提供一种数据升级、查询方法和装置,以解决灰度期多版本程序并行导致的数据结构冲突的技术问题。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种数据升级方法,包括:接收变更登记请求及其对应的变更明细信息,生成数据结构变更表;接收全量变更请求,根据所述数据结构变更表对源表执行数据结构变更;根据所述数据结构变更表及其对应的动态结构表,将所述动态结构表同步到执行数据结构变更后的所述源表中。可选地,所述数据结构变更表存储有新版本名称、源表名、变更字段、变更值、变更类型和变更状态;所述动态结构表存储有源表主键值、变更列名和变更列值。可选地,接收全量变更请求,根据所述数据结构变更表对源表执行数据结构变更,包括:接收全量变更请求,将所述数据结构变更表中的变更状态更新为变更结构;根据所述数据结构变更表中的变更类型,从所述数据结构变更表中获取变更信息,对源表执行数据结构变更;将所述数据结构变更表中的变更状态更新为数据迁移。可选地,根据所述数据结构变更表及其对应的动态结构表,将所述动态结构表同步到执行数据结构变更后的所述源表中,包括:判断所述数据结构变更表中的变更类型是否为新增或者修改;若是,则查找所述数据结构变更表对应的动态结构表,并根据所述动态结构表中的源表主键值将变更列值同步到执行数据结构变更后的所述源表中;将所述数据结构变更表中的变更状态更新为变更完成。另外,根据本专利技术实施例的另一个方面,提供了一种数据查询方法,包括:根据应用程序的版本环境,获取与所述应用程序的版本对应的数据结构变更表;接收所述应用程序发出的数据查询请求,根据所述数据结构变更表,从源表中获取第一数据,和/或,从动态结构表中获取第二数据;将所述第一数据和/或所述第二数据整合后返回至所述应用程序。可选地,还包括:接收所述应用程序发出的数据更新请求,根据所述数据结构变更表中的变更状态,更新源表和/或动态结构表中的数据。可选地,根据所述数据结构变更表中的变更状态,更新源表和/或动态结构表中的数据,包括:判断所述数据结构变更表中的变更状态是否为变更完成;若是,则将所述数据更新请求携带的更新数据更新到源表中;若否,则根据所述数据结构变更表的变更类型,将所述数据更新请求携带的更新数据更新到源表和/或动态结构表中。另外,根据本专利技术实施例的另一个方面,提供了一种数据升级装置,包括:登记模块,用于接收变更登记请求及其对应的变更明细信息,生成数据结构变更表;变更模块,用于接收全量变更请求,根据所述数据结构变更表对源表执行数据结构变更;同步模块,用于根据所述数据结构变更表及其对应的动态结构表,将所述动态结构表同步到执行数据结构变更后的所述源表中。可选地,所述数据结构变更表存储有新版本名称、源表名、变更字段、变更值、变更类型和变更状态;所述动态结构表存储有源表主键值、变更列名和变更列值。可选地,所述变更模块还用于:接收全量变更请求,将所述数据结构变更表中的变更状态更新为变更结构;根据所述数据结构变更表中的变更类型,从所述数据结构变更表中获取变更信息,对源表执行数据结构变更;将所述数据结构变更表中的变更状态更新为数据迁移。可选地,所述同步模块还用于:判断所述数据结构变更表中的变更类型是否为新增或者修改;若是,则查找所述数据结构变更表对应的动态结构表,并根据所述动态结构表中的源表主键值将变更列值同步到执行数据结构变更后的所述源表中;将所述数据结构变更表中的变更状态更新为变更完成。另外,根据本专利技术实施例的另一个方面,提供了一种数据查询装置,包括:获取模块,用于根据应用程序的版本环境,获取与所述应用程序的版本对应的数据结构变更表;查询模块,用于接收所述应用程序发出的数据查询请求,根据所述数据结构变更表,从源表中获取第一数据,和/或,从动态结构表中获取第二数据;返回模块,用于将所述第一数据和/或所述第二数据整合后返回至所述应用程序。可选地,还包括:更新模块,用于接收所述应用程序发出的数据更新请求,根据所述数据结构变更表中的变更状态,更新源表和/或动态结构表中的数据。可选地,所述更新模块还用于:判断所述数据结构变更表中的变更状态是否为变更完成;若是,则将所述数据更新请求携带的更新数据更新到源表中;若否,则根据所述数据结构变更表的变更类型,将所述数据更新请求携带的更新数据更新到源表和/或动态结构表中。根据本专利技术实施例的另一个方面,还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一实施例所述的方法。根据本专利技术实施例的另一个方面,还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例所述的方法。上述专利技术中的一个实施例具有如下优点或有益效果:因为采用通过根据数据结构变更表对源表执行数据结构变更,根据数据结构变更表及其对应的动态结构表将动态结构表同步到源表中的技术手段,所以克服了现有技术中灰度期多版本程序并行导致的数据结构冲突的技术问题。本专利技术实施例通过两张数据表存储灰度期的数据实现数据结构和业务数据的平滑升级,多版本同时运行时能保证数据结构兼容、数据共享互通,避免了分库分表带来的数据同步和一致性本文档来自技高网...

【技术保护点】
1.一种数据升级方法,其特征在于,包括:/n接收变更登记请求及其对应的变更明细信息,生成数据结构变更表;/n接收全量变更请求,根据所述数据结构变更表对源表执行数据结构变更;/n根据所述数据结构变更表及其对应的动态结构表,将所述动态结构表同步到执行数据结构变更后的所述源表中。/n

【技术特征摘要】
1.一种数据升级方法,其特征在于,包括:
接收变更登记请求及其对应的变更明细信息,生成数据结构变更表;
接收全量变更请求,根据所述数据结构变更表对源表执行数据结构变更;
根据所述数据结构变更表及其对应的动态结构表,将所述动态结构表同步到执行数据结构变更后的所述源表中。


2.根据权利要求1所述的方法,其特征在于,所述数据结构变更表存储有新版本名称、源表名、变更字段、变更值、变更类型和变更状态;
所述动态结构表存储有源表主键值、变更列名和变更列值。


3.根据权利要求2所述的方法,其特征在于,接收全量变更请求,根据所述数据结构变更表对源表执行数据结构变更,包括:
接收全量变更请求,将所述数据结构变更表中的变更状态更新为变更结构;
根据所述数据结构变更表中的变更类型,从所述数据结构变更表中获取变更信息,对源表执行数据结构变更;
将所述数据结构变更表中的变更状态更新为数据迁移。


4.根据权利要求3所述的方法,其特征在于,根据所述数据结构变更表及其对应的动态结构表,将所述动态结构表同步到执行数据结构变更后的所述源表中,包括:
判断所述数据结构变更表中的变更类型是否为新增或者修改;
若是,则查找所述数据结构变更表对应的动态结构表,并根据所述动态结构表中的源表主键值将变更列值同步到执行数据结构变更后的所述源表中;
将所述数据结构变更表中的变更状态更新为变更完成。


5.一种数据查询方法,其特征在于,包括:
根据应用程序的版本环境,获取与所述应用程序的版本对应的数据结构变更表;
接收所述应用程序发出的数据查询请求,根据所述数据结构变更表,从源表中获取第一数据,和/或,从动态结构表中获取第二数据;
将所述第一数据和/或所述第二数据整合后返回至所述应用程序。


6....

【专利技术属性】
技术研发人员:吴东
申请(专利权)人:北京沃东天骏信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京;11

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

1