分布式数据库的数据更新方法及装置制造方法及图纸

技术编号:17812776 阅读:54 留言:0更新日期:2018-04-28 05:31
本申请公开了一种分布式数据库的数据更新方法及装置。该方法包括:检测是否接收到在分布式数据库中更新数据的操作指令;当接收到操作指令时,响应于操作指令获取操作指令指向的目标数据,目标数据为关系型数据库中待更新至分布式数据库中的数据;在分布式数据库的目标数据表中执行添加目标数据的操作,并且在目标数据表中添加目标字段,目标字段中存储有根据添加目标数据的时间创建的时间版本号。通过本申请,解决了相关技术中对分布式数据库进行更新过程中,由于存在时间间隙而造成数据查询无效的问题。

【技术实现步骤摘要】
分布式数据库的数据更新方法及装置
本申请涉及数据库领域,具体而言,涉及一种分布式数据库的数据更新方法及装置。
技术介绍
随着数据量的增加,目前很多业务都使用hadoop分布式数据处理技术,hadoop分布式数据处理技术带来了性能的提升和方便扩展等诸多优点,但它也有限制,即不允许任意修改数据,只允许按分区删除数据和追加数据,例如,impala数据库作为其中的分布式数据库之一,也具有这一限制。对于事实数据,由于事实数据随着时间的增加,不存在发生变化的情况,所以此类数据能很好的追加到分布式数据库中,适合直接存储到分布式数据库中,但对于另一部分用户可编辑的数据,比如广告信息等,不适合直接在分布式数据库中存储,更适合用关系型数据库来存储。然而业务处理过程中需要使用到所有的数据,也即需要使用到分布式数据库中存储的数据和关系型数据库中存储的数据。因此,也就存在将关系型数据库数据导入到分布式数据库的需求,但是由于分布式数据库不支持直接修改的特性,相关技术中采用先将分布式数据库中的数据整体删除,然后在分布式数据库重新导入的方式对分布式数据库进行更新处理。然而,这种方式存在一个缺点,就是在数据删除后,再重新加载数据的过程中,存在一个时间间隙,在这个时间间隙内这些数据是不存在的,这样导致的后果就是在这时间间隙使用这些数据的查询都会失败,导致整个查询无效。如果采用这种方式更新分布式数据库的更新频率越高,对数据的查询处理的失败率也越高。针对相关技术中对分布式数据库进行更新过程中,由于存在时间间隙而造成数据查询无效的问题,目前尚未提出有效的解决方案。
技术实现思路
本申请的主要目的在于提供一种分布式数据库的数据更新方法及装置,以解决相关技术中对分布式数据库进行更新过程中,由于存在时间间隙而造成数据查询无效的问题。为了实现上述目的,根据本申请的一个方面,提供了一种分布式数据库的数据更新方法。该方法包括:检测是否接收到在分布式数据库中更新数据的操作指令;当接收到操作指令时,响应于操作指令获取操作指令指向的目标数据,目标数据为关系型数据库中待更新至分布式数据库中的数据;在分布式数据库的目标数据表中执行添加目标数据的操作,并且在目标数据表中添加目标字段,目标字段中存储有根据添加目标数据的时间创建的时间版本号。进一步地,在检测是否接收到在分布式数据库中更新数据的操作指令之后,该方法还包括:检测是否接收到在分布式数据库中执行数据查询的查询指令,如果接收到在分布式数据库中执行数据查询的查询指令,判断分布式数据库的数据更新状态;如果分布式数据库的数据更新状态为在分布式数据库中的目标数据表完成添加目标数据之前,则在分布式数据库的原始数据中进行数据查询,其中,在分布式数据库未添加目标数据之前,分布式数据库中存储的数据为原始数据;如果分布式数据库的数据更新状态为在分布式数据库中的目标数据表完成添加目标数据之后,则在时间版本号最新的目标数据表中进行数据查询。进一步地,在分布式数据库中的目标数据表完成添加目标数据之后,该方法还包括:判断时间版本号中的时间与当前时间的时间间隔是否达到预设时间间隔;如果时间版本号中的时间与当前时间的时间间隔达到预设时间间隔,则删除分布式数据库的历史数据,历史数据为原始数据和/或分布式数据库中时间版本号为非最新时间版本号的数据。进一步地,在检测是否接收到在分布式数据库中更新数据的操作指令之前,该方法还包括:确定业务处理过程中需要涉及的数据,得到目标数据集合;判断在分布式数据库中是否包含全部目标数据集合中的数据;如果在分布式数据库中未包含全部目标数据集合中的数据,触发在分布式数据库中更新数据的操作指令。进一步地,该方法还包括:在检测是否接收到在分布式数据库中更新数据的操作指令之前,在分布式数据库中预先创建目标数据表;或者,在接收到在操作指令后,在分布式数据库中创建目标数据表。为了实现上述目的,根据本申请的另一方面,提供了一种分布式数据库的数据更新装置。该装置包括:第一检测单元,用于检测是否接收到在分布式数据库中更新数据的操作指令;响应单元,用于当接收到操作指令时,响应于操作指令获取操作指令指向的目标数据,目标数据为关系型数据库中待更新至分布式数据库中的数据;添加单元,用于在分布式数据库的目标数据表中执行添加目标数据的操作,并且在目标数据表中添加目标字段,目标字段中存储有根据添加目标数据的时间创建的时间版本号。进一步地,该装置还包括:第二检测单元,用于在检测是否接收到在分布式数据库中更新数据的操作指令之后,检测是否接收到在分布式数据库中执行数据查询的查询指令,如果接收到在分布式数据库中执行数据查询的查询指令,判断分布式数据库的数据更新状态;第一查询单元,用于在分布式数据库的数据更新状态为在分布式数据库中的目标数据表完成添加目标数据之前,则在分布式数据库的原始数据中进行数据查询,其中,在分布式数据库未添加目标数据之前,分布式数据库中存储的数据为原始数据;第二查询单元,用于在分布式数据库的数据更新状态为在分布式数据库中的目标数据表完成添加目标数据之后,则在时间版本号最新的目标数据表中进行数据查询。进一步地,该装置还包括:第一判断单元,用于在分布式数据库中的目标数据表完成添加目标数据之后,判断时间版本号中的时间与当前时间的时间间隔是否达到预设时间间隔;删除单元,用于在时间版本号中的时间与当前时间的时间间隔达到预设时间间隔的情况下,则删除分布式数据库的历史数据,历史数据为原始数据和/或分布式数据库中时间版本号为非最新时间版本号的数据。进一步地,该装置还包括:确定单元,用于在检测是否接收到在分布式数据库中更新数据的操作指令之前,确定业务处理过程中需要涉及的数据,得到目标数据集合;第二判断单元,用于判断在分布式数据库中是否包含全部目标数据集合中的数据;更新单元,用于当在分布式数据库中未包含全部目标数据集合中的数据的情况下,触发在分布式数据库中更新数据的操作指令。进一步地,该装置还包括:第一创建单元,用于在检测是否接收到在分布式数据库中更新数据的操作指令之前,在分布式数据库中预先创建目标数据表;或者,第二创建单元,用于在接收到在操作指令后,在分布式数据库中创建目标数据表。通过本申请,采用以下步骤:检测是否接收到在分布式数据库中更新数据的操作指令;当接收到操作指令时,响应于操作指令获取操作指令指向的目标数据,目标数据为关系型数据库中待更新至分布式数据库中的数据;在分布式数据库的目标数据表中执行添加目标数据的操作,并且在目标数据表中添加目标字段,目标字段中存储有根据添加目标数据的时间创建的时间版本号,解决了相关技术中对分布式数据库进行更新过程中,由于存在时间间隙而造成数据查询无效的问题。进而保证了查询对分布式数据库中数据进行查询的有效性。附图说明构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1是根据本申请实施例的分布式数据库的数据更新方法的流程图;以及图2是根据本申请实施例的分布式数据库的数据更新装置的示意图。具体实施方式需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。为了使本文档来自技高网...
分布式数据库的数据更新方法及装置

【技术保护点】
一种分布式数据库的数据更新方法,其特征在于,包括:检测是否接收到在分布式数据库中更新数据的操作指令;当接收到所述操作指令时,响应于所述操作指令获取所述操作指令指向的目标数据,所述目标数据为关系型数据库中待更新至所述分布式数据库中的数据;在所述分布式数据库的目标数据表中执行添加所述目标数据的操作,并且在所述目标数据表中添加目标字段,所述目标字段中存储有根据添加所述目标数据的时间创建的时间版本号。

【技术特征摘要】
1.一种分布式数据库的数据更新方法,其特征在于,包括:检测是否接收到在分布式数据库中更新数据的操作指令;当接收到所述操作指令时,响应于所述操作指令获取所述操作指令指向的目标数据,所述目标数据为关系型数据库中待更新至所述分布式数据库中的数据;在所述分布式数据库的目标数据表中执行添加所述目标数据的操作,并且在所述目标数据表中添加目标字段,所述目标字段中存储有根据添加所述目标数据的时间创建的时间版本号。2.根据权利要求1所述的方法,其特征在于,在检测是否接收到在分布式数据库中更新数据的操作指令之后,所述方法还包括:检测是否接收到在所述分布式数据库中执行数据查询的查询指令,如果接收到在所述分布式数据库中执行数据查询的查询指令,判断所述分布式数据库的数据更新状态;如果所述分布式数据库的数据更新状态为在所述分布式数据库中的目标数据表完成添加所述目标数据之前,则在所述分布式数据库的原始数据中进行数据查询,其中,在所述分布式数据库未添加所述目标数据之前,所述分布式数据库中存储的数据为所述原始数据;如果所述分布式数据库的数据更新状态为在所述分布式数据库中的目标数据表完成添加所述目标数据之后,则在所述时间版本号最新的目标数据表中进行数据查询。3.根据权利要求2所述的方法,其特征在于,在所述分布式数据库中的目标数据表完成添加所述目标数据之后,所述方法还包括:判断所述时间版本号中的时间与当前时间的时间间隔是否达到预设时间间隔;如果所述时间版本号中的时间与当前时间的时间间隔达到所述预设时间间隔,则删除所述分布式数据库的历史数据,所述历史数据为所述原始数据和/或所述分布式数据库中时间版本号为非最新时间版本号的数据。4.根据权利要求1所述的方法,其特征在于,在检测是否接收到在分布式数据库中更新数据的操作指令之前,所述方法还包括:确定业务处理过程中需要涉及的数据,得到目标数据集合;判断在所述分布式数据库中是否包含全部所述目标数据集合中的数据;如果在所述分布式数据库中未包含全部所述目标数据集合中的数据,触发在所述分布式数据库中更新数据的操作指令。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:在检测是否接收到在分布式数据库中更新数据的操作指令之前,在所述分布式数据库中预先创建所述目标数据表;或者,在接收到在所述操作指令后,在所述分布式数据库中创建所述目标数据表。6.一种分布式数据库的数据更新装置,其特征在于,包括:第一检测单元,用于检测是否接收到在分布式数据库中更新数据的...

【专利技术属性】
技术研发人员:陈国兴
申请(专利权)人:北京国双科技有限公司
类型:发明
国别省市:北京,11

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

1