一种数据存储、还原方法、装置及计算机设备制造方法及图纸

技术编号:21627998 阅读:28 留言:0更新日期:2019-07-17 10:48
本发明专利技术实施例提供了一种数据存储、还原方法、装置及计算机设备,其中,数据存储方法包括:获取待存储数据的基本值及扰动值;利用预设散列算法,对扰动值进行换算,得到扰动值对应的随机值;对随机值进行映射,得到随机值在预设范围内的映射结果;根据基本值及映射结果,通过预设散列值运算公式,确定待存储数据对应的散列值;基于散列值所处的预设值范围,存储待存储数据的基本值及扰动值至预设值范围的任一端点预设值对应的服务器节点,其中,各服务器节点预先配置有对应的预设值。通过本方案可以使得数据均匀存储至各服务器节点。

A Method, Device and Computer Equipment for Data Storage and Reduction

【技术实现步骤摘要】
一种数据存储、还原方法、装置及计算机设备
本专利技术涉及数据库
,特别是涉及一种数据存储、还原方法、装置及计算机设备。
技术介绍
针对云计算对于大规模分布式服务和分布式存储的需求,特别是在超大规模和高并发的应用场景下,使用传统的关系数据库来存储和查询用户动态数据已经暴露出很多难以克服的问题,例如需要很高的实时插入性能;需要海量的数据存储能力,同时还需要非常快的查询检索速度;需要将数据存储无缝扩展到整个群集环境下,并且能够在线扩展等等。这样的背景下,非关系型数据库NoSQL应运而生。NoSQL用于超大规模数据的存储,具有高可扩展性、分布式计算、低成本等特点。NoSQL主要可以分为列存储、文档存储和图形存储等类型。其中,列存储类型,如Cassandra、HBase、Riak等,以拥有非常灵活的数据模型和弹性集群扩展能力等优势在网络社交云计算方面得以广泛应用。列存储类型的NoSQL,通过对具有相同字段的数据聚合存储,将不同的数据分布在服务器集群中的不同服务器节点上。该类型的NoSQL的数据模型包括列、行,其中,列是数据模型中最基本的单元,每一个列包括一个名称、一个值和一个时间戳;行是具有相同字段的列的集合。每一个服务器节点上存储至少一行数据,每一行数据通过一个主键唯一标识,主键中包括用于代表数据属性的基本值和用于代表数据属性取值的扰动值,基本值具体用于确定数据存储在哪个服务器节点上。具有相同基本值的数据存储在同一个服务器节点上,并且如果大量数据的基本值相对集中,则一个服务器节点上可能存储多个基本值的数据,由于数据的属性取值很多,因此,极易导致部分服务器节点上存储的数据量集中的情况,造成数据存储的负载不均衡。
技术实现思路
本专利技术实施例的目的在于提供一种数据存储、还原方法、装置及计算机设备,以实现数据均匀存储至服务器集群中各服务器节点上。具体技术方案如下:第一方面,本专利技术实施例提供了一种数据存储方法,所述方法包括:获取待存储数据的基本值及扰动值;利用预设散列算法,对所述扰动值进行换算,得到所述扰动值对应的随机值;对所述随机值进行映射,得到所述随机值在预设范围内的映射结果;根据所述基本值、所述映射结果及所述预设范围,通过预设散列值运算公式,确定所述待存储数据对应的散列值;基于所述散列值所处的预设值范围,存储所述待存储数据的基本值及扰动值至所述预设值范围的任一端点预设值对应的服务器节点,其中,各服务器节点预先配置有对应的预设值。第二方面,本专利技术实施例提供了一种数据还原方法,所述方法包括:获取待还原数据对应的散列值;基于预设数据组装协议,从所述散列值中,提取多个指定数值段的数值;还原所述多个指定数值段中的第一指定数值段的数值为所述待还原数据的扰动值;利用预设散列算法,对所述扰动值进行换算,得到所述扰动值对应的随机值;在预设范围内,对所述随机值进行映射,得到映射结果,其中,所述预设范围覆盖了存储所述待还原数据的基本值及扰动值的服务器节点预先配置的预设值;根据所述多个指定数值段的数值、所述预设范围及所述映射结果,通过预设散列值运算公式,还原所述待还原数据的基本值。第三方面,本专利技术实施例提供了一种数据存储装置,所述装置包括:第一获取模块,用于获取待存储数据的基本值及扰动值;随机模块,用于利用预设散列算法,对所述扰动值进行换算,得到所述扰动值对应的随机值;映射模块,用于对所述随机值进行映射,得到所述随机值在预设范围内的映射结果;确定模块,用于根据所述基本值、所述映射结果及所述预设范围,通过预设散列值运算公式,确定所述待存储数据对应的散列值;存储模块,用于基于所述散列值所处的预设值范围,存储所述待存储数据的基本值及扰动值至所述预设值范围的任一端点预设值对应的服务器节点,其中,各服务器节点预先配置有对应的预设值。第四方面,本专利技术实施例提供了一种数据还原装置,所述装置包括:获取模块,用于获取待还原数据对应的散列值;提取模块,用于基于预设数据组装协议,从所述散列值中,提取多个指定数值段的数值;第一还原模块,用于还原所述多个指定数值段中的第一指定数值段的数值为所述待还原数据的扰动值;换算模块,用于利用预设散列算法,对所述扰动值进行换算,得到所述扰动值对应的随机值;映射模块,用于在预设范围内,对所述随机值进行映射,得到映射结果,其中,所述预设范围覆盖了存储所述待还原数据的基本值及扰动值的服务器节点预先配置的预设值;第二还原模块,用于根据所述多个指定数值段的数值、所述预设范围及所述映射结果,通过预设散列值运算公式,还原所述待还原数据的基本值。第五方面,本专利技术实施例提供了一种计算机设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序时,实现如第一方面所述的方法步骤。第六方面,本专利技术实施例提供了一种计算机设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行存储器上所存放的程序时,实现如第二方面所述的方法步骤。本专利技术实施例提供的一种数据存储、还原方法及、装置及计算机设备,通过获取待存储数据的基本值及扰动值,然后利用预设散列算法,将扰动值换算为随机值,再将随机值映射为预设范围内的映射结果,根据基本值及映射结果,通过预设散列值运算公式,确定待存储数据对应的散列值,最后基于散列值所处的预设值范围,存储待存储数据的基本值及扰动值至预设值范围的任一端点预设值对应的服务器节点。利用对扰动值的映射得到对应的随机值的映射结果,然后基于该映射结果及基本值,可以得到用于判断将待存储数据存储到哪个服务器节点的散列值,也就是说,数据的存储位置由待存储数据的基本值和扰动值共同决定,并且通过随机值的处理保证了数据存储的随机性,有益于散列值的均匀分散,由于映射的过程是将随机值映射到预设范围内,使得散列值可以均匀散落在预设范围内,从而使得待存储数据可以均匀存储至对应的服务器节点上。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为现有技术的Cassandra数据库的环形空间结构示意图;图2为本专利技术实施例的数据存储方法的流程示意图;图3为本专利技术实施例的数据还原方法的流程示意图;图4为本专利技术实施例的数据存储、还原方法的流程示意图;图5为本专利技术实施例的数据存储装置的结构示意图;图6为本专利技术实施例的数据还原装置的结构示意图;图7为本专利技术实施例的一种计算机设备的结构示意图;图8为本专利技术实施例的另一种计算机设备的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本发本文档来自技高网
...

【技术保护点】
1.一种数据存储方法,其特征在于,所述方法包括:获取待存储数据的基本值及扰动值;利用预设散列算法,对所述扰动值进行换算,得到所述扰动值对应的随机值;对所述随机值进行映射,得到所述随机值在预设范围内的映射结果;根据所述基本值、所述映射结果及所述预设范围,通过预设散列值运算公式,确定所述待存储数据对应的散列值;基于所述散列值所处的预设值范围,存储所述待存储数据的基本值及扰动值至所述预设值范围的任一端点预设值对应的服务器节点,其中,各服务器节点预先配置有对应的预设值。

【技术特征摘要】
1.一种数据存储方法,其特征在于,所述方法包括:获取待存储数据的基本值及扰动值;利用预设散列算法,对所述扰动值进行换算,得到所述扰动值对应的随机值;对所述随机值进行映射,得到所述随机值在预设范围内的映射结果;根据所述基本值、所述映射结果及所述预设范围,通过预设散列值运算公式,确定所述待存储数据对应的散列值;基于所述散列值所处的预设值范围,存储所述待存储数据的基本值及扰动值至所述预设值范围的任一端点预设值对应的服务器节点,其中,各服务器节点预先配置有对应的预设值。2.根据权利要求1所述的方法,其特征在于,所述利用预设散列算法,对所述扰动值进行换算,得到所述扰动值对应的随机值,包括:利用预设散列算法,将所述扰动值换算为具有指定长度的随机值,其中,所述预设散列算法包括:哈希算法、安全哈希SHA-1算法、信息摘要MD4算法、单向散列MD5算法。3.根据权利要求1所述的方法,其特征在于,所述对所述随机值进行映射,得到所述随机值在预设范围内的映射结果,包括:根据预设范围,确定具有指定位数的映射二进制数,其中,所述映射二进制数中的每一位均为0;按照所述随机值从最高位到最低位的顺序,依次根据所述随机值的每一位的数值,通过循环方式对所述映射二进制数中与所述数值对应的位进行0-1变换,得到变换后的映射二进制数;对所述变换后的映射二进制数进行十进制变换,得到映射结果。4.根据权利要求1所述的方法,其特征在于,所述根据所述基本值、所述映射结果及所述预设范围,通过预设散列值运算公式,确定所述待存储数据对应的散列值,包括:根据所述基本值及所述映射结果,通过所述散列值运算公式,得到散列参数;对所述散列参数进行降级处理,得到所述散列参数与预设宽度的商值及余数值,其中,所述预设宽度为预设范围的两个顶点预设值间的差值;基于预设数据组装协议,对所述余数值、所述商值及所述扰动值进行组装,得到所述待存储数据对应的散列值。5.根据权利要求1所述的方法,其特征在于,在所述基于所述散列值所处的预设值范围,存储所述待存储数据的基本值及扰动值至所述预设值范围的任一端点预设值对应的服务器节点之前,所述方法还包括:获取与所述基本值对应的所述待存储数据的数据信息;将所述数据信息与所对应的所述基本值及扰动值相关联;所述基于所述散列值所处的预设值范围,存储所述待存储数据的基本值及扰动值至所述预设值范围的任一端点预设值对应的服务器节点,包括:基于所述散列值所处的预设值范围,将关联后的所述数据信息、所述基本值及所述扰动值存储至所述预设值范围的任一端点预设值对应的服务器节点。6.一种数据还原方法,其特征在于,所述方法包括:获取待还原数据对应的散列值;基于预设数据组装协议,从所述散列值中,提取多个指定数值段的数值;还原所述多个指定数值段中的第一指定数值段的数值为所述待还原数据的扰动值;利用预设散列算法,对所述扰动值进行换算,得到所述扰动值对应的随机值;在预设范围内,对所述随机值进行映射,得到映射结果,其中,所述预设范围覆盖了存储所述待还原数据的基本值及扰动值的服务器节点预先配置的预设值;根据所述多个指定数值段的数值、所述预设范围及所述映射结果,通过预设散列值运算公式,还原所述待还原数据的基本值。7.根据权利要求6所述的方法,其特征在于,所述利用预设散列算法,对所述扰动值进行换算,得到所述扰动值对应的随机值,包括:利用预设散列算法,将所述扰动值换算为具有指定长度的随机值,其中,所述预设散列算法包括:哈希算法、安全哈希SHA-1算法、信息摘要MD4算法、单向散列MD5算法。8.根据权利要求6所述的方法,其特征在于,所述在预设范围内,对所述随机值进行映射,得到映射结果,包括:根据预设范围,确定具有指定位数的映射二进制数,其中,所述映射二进制数中的每一位均为0;按照所述随机值从最高位到最低位的顺序,依次根据所述随机值的每一位的数值,通过循环方式对所述映射二进制数中与所述数值对应的位进行0-1变换,得到变换后的映射二进制数;对所述变换后的映射二进制数进行十进制变换,得到映射结果。9.根据权利要求6所述的方法,其特征在于,所述基于预设数据组装协议,从所述散列值中,提取多个指定数值段的数值,包括:从所述散列值中,提取用于表示散列参数与预设宽度的余数值的整数部分、用于表示所述待还原数据的扰动值的小数部分中的第一指定数值段、及用于表示所述散列参数与所述预设宽度的商值的小数部分中的第二指定数值段,其中,所述预设宽度为预设范围的两个顶点预设值间的差值;所述根据所述多个指定数值段的数值、所述预设范围及所述映射结果,通过预设散列值运算公式,还原所述待还原数据的基本值,包括:根据所述散列值的整数部分、所述第二指定数值段及所述预设范围,确定散列参数;根据所述散列参数及所述映射结果,通过预设散列值运算公式,还原所述待还原数据的基本值。10.一种数据存储装置,其特征在于,所述装置包括:第一获取...

【专利技术属性】
技术研发人员:周胜凯
申请(专利权)人:杭州海康威视数字技术股份有限公司
类型:发明
国别省市:浙江,33

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

1