Nothing Special   »   [go: up one dir, main page]

CN110019205A - 一种数据存储、还原方法、装置及计算机设备 - Google Patents

一种数据存储、还原方法、装置及计算机设备 Download PDF

Info

Publication number
CN110019205A
CN110019205A CN201711039087.3A CN201711039087A CN110019205A CN 110019205 A CN110019205 A CN 110019205A CN 201711039087 A CN201711039087 A CN 201711039087A CN 110019205 A CN110019205 A CN 110019205A
Authority
CN
China
Prior art keywords
value
data
disturbed
mapping
hashed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201711039087.3A
Other languages
English (en)
Other versions
CN110019205B (zh
Inventor
周胜凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201711039087.3A priority Critical patent/CN110019205B/zh
Publication of CN110019205A publication Critical patent/CN110019205A/zh
Application granted granted Critical
Publication of CN110019205B publication Critical patent/CN110019205B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

一种数据存储、还原方法、装置及计算机设备
技术领域
本发明涉及数据库技术领域,特别是涉及一种数据存储、还原方法、装置及计算机设备。
背景技术
针对云计算对于大规模分布式服务和分布式存储的需求,特别是在超大规模和高并发的应用场景下,使用传统的关系数据库来存储和查询用户动态数据已经暴露出很多难以克服的问题,例如需要很高的实时插入性能;需要海量的数据存储能力,同时还需要非常快的查询检索速度;需要将数据存储无缝扩展到整个群集环境下,并且能够在线扩展等等。这样的背景下,非关系型数据库NoSQL应运而生。
NoSQL用于超大规模数据的存储,具有高可扩展性、分布式计算、低成本等特点。NoSQL主要可以分为列存储、文档存储和图形存储等类型。其中,列存储类型,如Cassandra、HBase、Riak等,以拥有非常灵活的数据模型和弹性集群扩展能力等优势在网络社交云计算方面得以广泛应用。
列存储类型的NoSQL,通过对具有相同字段的数据聚合存储,将不同的数据分布在服务器集群中的不同服务器节点上。该类型的NoSQL的数据模型包括列、行,其中,列是数据模型中最基本的单元,每一个列包括一个名称、一个值和一个时间戳;行是具有相同字段的列的集合。每一个服务器节点上存储至少一行数据,每一行数据通过一个主键唯一标识,主键中包括用于代表数据属性的基本值和用于代表数据属性取值的扰动值,基本值具体用于确定数据存储在哪个服务器节点上。
具有相同基本值的数据存储在同一个服务器节点上,并且如果大量数据的基本值相对集中,则一个服务器节点上可能存储多个基本值的数据,由于数据的属性取值很多,因此,极易导致部分服务器节点上存储的数据量集中的情况,造成数据存储的负载不均衡。
发明内容
本发明实施例的目的在于提供一种数据存储、还原方法、装置及计算机设备,以实现数据均匀存储至服务器集群中各服务器节点上。具体技术方案如下:
第一方面,本发明实施例提供了一种数据存储方法,所述方法包括:
获取待存储数据的基本值及扰动值;
利用预设散列算法,对所述扰动值进行换算,得到所述扰动值对应的随机值;
对所述随机值进行映射,得到所述随机值在预设范围内的映射结果;
根据所述基本值、所述映射结果及所述预设范围,通过预设散列值运算公式,确定所述待存储数据对应的散列值;
基于所述散列值所处的预设值范围,存储所述待存储数据的基本值及扰动值至所述预设值范围的任一端点预设值对应的服务器节点,其中,各服务器节点预先配置有对应的预设值。
第二方面,本发明实施例提供了一种数据还原方法,所述方法包括:
获取待还原数据对应的散列值;
基于预设数据组装协议,从所述散列值中,提取多个指定数值段的数值;
还原所述多个指定数值段中的第一指定数值段的数值为所述待还原数据的扰动值;
利用预设散列算法,对所述扰动值进行换算,得到所述扰动值对应的随机值;
在预设范围内,对所述随机值进行映射,得到映射结果,其中,所述预设范围覆盖了存储所述待还原数据的基本值及扰动值的服务器节点预先配置的预设值;
根据所述多个指定数值段的数值、所述预设范围及所述映射结果,通过预设散列值运算公式,还原所述待还原数据的基本值。
第三方面,本发明实施例提供了一种数据存储装置,所述装置包括:
第一获取模块,用于获取待存储数据的基本值及扰动值;
随机模块,用于利用预设散列算法,对所述扰动值进行换算,得到所述扰动值对应的随机值;
映射模块,用于对所述随机值进行映射,得到所述随机值在预设范围内的映射结果;
确定模块,用于根据所述基本值、所述映射结果及所述预设范围,通过预设散列值运算公式,确定所述待存储数据对应的散列值;
存储模块,用于基于所述散列值所处的预设值范围,存储所述待存储数据的基本值及扰动值至所述预设值范围的任一端点预设值对应的服务器节点,其中,各服务器节点预先配置有对应的预设值。
第四方面,本发明实施例提供了一种数据还原装置,所述装置包括:
获取模块,用于获取待还原数据对应的散列值;
提取模块,用于基于预设数据组装协议,从所述散列值中,提取多个指定数值段的数值;
第一还原模块,用于还原所述多个指定数值段中的第一指定数值段的数值为所述待还原数据的扰动值;
换算模块,用于利用预设散列算法,对所述扰动值进行换算,得到所述扰动值对应的随机值;
映射模块,用于在预设范围内,对所述随机值进行映射,得到映射结果,其中,所述预设范围覆盖了存储所述待还原数据的基本值及扰动值的服务器节点预先配置的预设值;
第二还原模块,用于根据所述多个指定数值段的数值、所述预设范围及所述映射结果,通过预设散列值运算公式,还原所述待还原数据的基本值。
第五方面,本发明实施例提供了一种计算机设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现如第一方面所述的方法步骤。
第六方面,本发明实施例提供了一种计算机设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行存储器上所存放的程序时,实现如第二方面所述的方法步骤。
本发明实施例提供的一种数据存储、还原方法及、装置及计算机设备,通过获取待存储数据的基本值及扰动值,然后利用预设散列算法,将扰动值换算为随机值,再将随机值映射为预设范围内的映射结果,根据基本值及映射结果,通过预设散列值运算公式,确定待存储数据对应的散列值,最后基于散列值所处的预设值范围,存储待存储数据的基本值及扰动值至预设值范围的任一端点预设值对应的服务器节点。利用对扰动值的映射得到对应的随机值的映射结果,然后基于该映射结果及基本值,可以得到用于判断将待存储数据存储到哪个服务器节点的散列值,也就是说,数据的存储位置由待存储数据的基本值和扰动值共同决定,并且通过随机值的处理保证了数据存储的随机性,有益于散列值的均匀分散,由于映射的过程是将随机值映射到预设范围内,使得散列值可以均匀散落在预设范围内,从而使得待存储数据可以均匀存储至对应的服务器节点上。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术的Cassandra数据库的环形空间结构示意图;
图2为本发明实施例的数据存储方法的流程示意图;
图3为本发明实施例的数据还原方法的流程示意图;
图4为本发明实施例的数据存储、还原方法的流程示意图;
图5为本发明实施例的数据存储装置的结构示意图;
图6为本发明实施例的数据还原装置的结构示意图;
图7为本发明实施例的一种计算机设备的结构示意图;
图8为本发明实施例的另一种计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例可以应用于各种列存储类型的NoSQL,例如Cassandra、HBase、Riak等,这里不做具体限定。以Cassandra为例,Cassandra采用一致性哈希算法来完成服务器集群上的数据分布。在一致性哈希算法中,哈希函数的区间值可以看成一个环形空间,服务器集群中的每个服务器节点都被赋予了一个在该环形区间内的随机值,代表了服务器节点在环上的位置。如图1所示,如果A节点、B节点、C节点分别被赋予随机值0、50、100,则数据的存储规则为:当插入数据库的数据为(0,50],即落在AB区间,则按照顺时针规则将数据存储在B节点上,当插入数据库的数据为[100,+∞),即落在CA区间,则按照顺时针规则将数据存储在A节点上。Cassandra提供了三种分区存储的方法:非加密哈希分区存储方法Murmur3Partitioner、随机分区存储方法RandomPartitioner和有序分区存储方法ByteOrderedPartitioner。
Murmur3Partitioner采用非加密的哈希运算对数据的基本值进行换算得到哈希值,并基于换算得到的哈希值,配置各节点的哈希值,使得数据均匀的分布在服务器集群中;RandomPartitioner采用MD5哈希运算对数据的基本值进行换算得到哈希值,并基于换算得到的哈希值,配置各节点的哈希值,使得数据均匀的分布在服务器集群中;ByteOrderedPartitioner是通过用户的设置,根据数据的基本值有序地将数据分布在服务器集群中。这三种分区存储的方法均是根据基本值进行数据存储的,一个基本值可能对应了大量的扰动值,这样极易导致大量的数据只存储在少量的服务器节点上的情况,造成数据存储的负载不均衡。
为了实现数据均匀存储至服务器集群中各服务器节点上,本发明实施例提供了一种数据存储、还原方法、装置及计算机设备。下面,首先对本发明实施例所提供的数据存储方法进行介绍。
本发明实施例所提供的一种数据存储方法的执行主体可以为控制数据存储的控制器,也可以为服务器集群的主控服务器,执行主体中至少包括具有数据处理能力的核心处理芯片。实现本发明实施例所提供的一种数据存储方法的方式可以为设置于执行主体中的软件、硬件电路和逻辑电路的至少一种方式。
如图2所示,为本发明实施例所提供的一种数据存储方法,该数据存储方法可以包括如下步骤:
S201,获取待存储数据的基本值及扰动值。
待存储数据包含了表示该待存储数据的基本属性信息的基本值以及表示该基本属性信息的具体取值的扰动值,待存储数据的基本值和扰动值一般是由用户输入的,也可以是由其他服务器对待存储数据分析后产生的。相同的基本值可能对应有多个不同的扰动值,例如,有一组待存储数据均为姓名为张三的信息,包括张三的身高、体重、年龄等,则各待存储数据的基本值均为张三,而扰动值分别为身高、体重、年龄等具体取值。
S202,利用预设散列算法,对扰动值进行换算,得到扰动值对应的随机值。
由于扰动值代表了待存储数据的基本属性信息的具体取值,具有相同基本值的数据可以有不同的扰动值,如果基于扰动值对数据进行存储,可以有效的将不同属性取值的数据分散存储。并且,为了达到数据随机存储的均匀性,可以将扰动值换算为随机值,具体可以通过预设散列算法进行换算。为了保证随机值的唯一性,即一个随机值只能指代一个扰动值,可以选择哈希算法、安全哈希SHA-1算法、信息摘要MD4算法、单向散列MD5算法等散列算法,通过这些散列算法可以将扰动值换算为具有指定长度的唯一的随机值。例如,通过哈希算法,将扰动值1024换算为19位的随机值h(1024)=3712481734114402627。
S203,对随机值进行映射,得到随机值在预设范围内的映射结果。
通过对扰动值进行换算,得到随机值后,服务器集群的分布需要按照随机值的大小进行分布,并且,数据具有随机性,得到的随机值的大小与原始扰动值的大小不一定成正比关系,则存储数据的顺序不一定是按照扰动值的实际大小的顺序存储的,因此,可以基于一个预设范围,对随机值进行映射,这个预设范围可以根据扰动值的实际的大小设定。通过映射之后得到的映射结果,使得扰动值对应的随机值可以映射到不同的预设范围内,并且是按照扰动值的实际的大小排布的,基于预设范围的映射,可以保证通过后续的散列值的运算,使得对应的散列值可以均匀地散落在预设范围内,从而可以将数值均匀地分配至不同服务器节点上。
对随机值进行映射的过程,是将随机值映射至预设范围内,可以通过对随机值逐位进行映射的方式,限定映射结果对应的映射二进制数的位数,该位数由预设范围决定,具体可以按照随机值从最高位到最低位的顺序,依次根据随机值的每一位的数值,通过循环方式对映射二进制数中与该数值对应的位进行0-1变换,得到变换后的映射二进制数,再对变换后的映射二进制数进行十进制变换,得到映射结果。例如,如果预设范围为[0,70],70的二进制表示为01000110,由于最高位的1处于第6位,则映射结果的位数可以设定为7位,则初始设定映射二进制数为0000000,如果随机值的最高位为3,则对映射二进制数的第3位进行0-1变换,得到0001000,如果随机值的次高位为7,则对映射二进制数中从上一次变换的位开始的第7位进行0-1变换,得到0000000。当然,也可以对随机值进行指定的映射运算,如果能保证映射结果在预设范围内,则均属于本发明实施例的保护范围,这里不再一一赘述。
S204,根据基本值、映射结果及预设范围,通过预设散列值运算公式,确定待存储数据对应的散列值。
在得到映射结果之后,根据特征分析得到的基本值以及该映射结果,可以通过对散列值的运算得到用于存储数据的散列值。散列值由基本值和扰动值对应的映射结果共同决定,使得散列值具有唯一性,一个散列值对应了具有一对基本值和扰动值的唯一数据。而基于该散列值对数据进行存储,可以保证数据的均匀分散存储,避免了大量的数据存储在极少数服务器节点上的情况,保证了数据的均匀存储。
计算散列值所使用的预设散列值运算公式如表达式(1)所示,表达式(1)中表示了散列值的具体大小与待存储数据的基本值以及对待存储数据的扰动值对应的随机值进行映射得到的映射结果相关,并且限定了散列值的取值范围。
其中,n为散列值,x为待存储数据对应的基本值,y为待存储数据对应的扰动值,H(y)为映射结果,[r1,r2]为预设范围。
为了减少散列值运算的计算量,并且在映射过程中可以统一映射范围,可以对预设范围进行归0操作,则在进行归0后,上述表达式(1)可以变换为表达式(2)。
其中,F(x,y)为换算函数,n为散列值,x为待存储数据对应的基本值,y为待存储数据对应的扰动值,H(y)为映射结果,[r1,r2]为预设范围。
表达式(1)与表达式(2)中,G函数为散列值的具体计算方式,由于计算散列参数x+H(y)的结果或者计算散列参数x-r1+H(y)的结果的大小不确定,有可能超过预设范围,为了满足数据的一致性,在得到散列参数后,可以对该散列参数进行降级处理,即利用该散列参数除以预设宽度(即预设范围的两个顶点预设值间的差值),得到商值和余数值,利用预设的数据组装协议,将余数值、商值和扰动值进行组装,得到的组装结果即为散列值。当然,在进行降级处理之前,还可以判断散列参数是否超过了预设范围,如果未超过,则可以直接将散列参数作为散列值。数据组装协议可以是将余数值确定为散列值的整数部分,并确定散列值的小数部分由商值、0和扰动值三部分构成。例如,如果计算得到的余数值为25、商值为2、扰动值为1020,则组装得到的散列值为25.201024。
S205,基于散列值所处的预设值范围,存储待存储数据的基本值及扰动值至预设值范围的任一端点预设值对应的服务器节点。
各服务器节点预先配置有对应的预设值,基于散列值,可以将待存储数据存储至散列值所处预设值范围的端点预设值所对应的两个相邻服务器节点中的任一服务器节点中,例如,若计算得到待存储数据对应的散列值为25.201024,而给服务器节点A分配的token值为10,给与服务器节点A相邻的服务器节点B分配的token值为30,则可以将该待存储数据存储至服务器节点A或者服务器节点B,具体存储至哪一个服务器节点,与设置的存储方式相关,存储方式可以是按照顺时针方向存储,也可以是按照逆时针方向存储,这里不做具体限定。如果是按照顺时针方向存储,则将该待存储数据存储至服务器节点B,如果是按照逆时针方向存储,则将该待存储数据存储至服务器节点A。通常情况下,各待存储数据的存储方式需要统一,即如果是按照顺时针方向存储,则均按照顺时针方向存储,如果是逆时针方向存储,则均按照逆时针方向存储。
由于在获取待存储数据的基本值和扰动值时,还可以获取到与基本值对应的该待存储数据的数据信息,例如,用户不仅输入了一首歌曲作为待存储数据,其基本值为歌曲名称、扰动值为歌唱者,还将该歌曲的音频数据一同输入Cassandra数据库,为了在进行数据查询的过程中能够更为便捷的提取到待存储数据本身的数据信息,则可以将获取到的基本值、扰动值及数据信息之间做相应的关联。因此,在基于散列值所处的预设值范围,对基本值和扰动值进行存储时,由于数据信息与基本值、扰动值之间已存在关联关系,则可以将关联后的数据信息、基本值和扰动值一同存储至预设值范围的任一端点预设值对应的服务器节点。这样,在数据查询的过程中,可以直接根据基本值和扰动值,查询到对应的数据信息。
应用本实施例,通过获取待存储数据的基本值及扰动值,然后利用预设散列算法,将扰动值换算为随机值,再将随机值映射为预设范围内的映射结果,根据基本值及映射结果,通过预设散列值运算公式,确定待存储数据对应的散列值,最后基于散列值所处的预设值范围,存储待存储数据的基本值及扰动值至预设值范围的任一端点预设值对应的服务器节点。利用对扰动值的映射得到对应的随机值的映射结果,然后基于该映射结果及基本值,可以得到用于判断将待存储数据存储到哪个服务器节点的散列值,也就是说,数据的存储位置由待存储数据的基本值和扰动值共同决定,并且通过随机值的处理保证了数据存储的随机性,有益于散列值的均匀分散,由于映射的过程是将随机值映射到预设范围内,使得散列值可以均匀散落在预设范围内,从而使得待存储数据可以均匀存储至对应的服务器节点上。
对应于数据存储方法,在进行对数据库中存储的数据进行查询操作时,需要对数据的基本值及扰动值进行还原。基于上述数据存储方法,本发明实施例还提供了一种数据还原方法,由于散列值由基本值和扰动值共同决定,则基于待还原数据对应的散列值,可以通过还原得到待还原数据的基本值及扰动值,从而实现数据库插入与查询对于某一个数据而言是一一对应的。
本发明实施例所提供的一种数据还原方法的执行主体可以为独立于服务器节点的控制器,也可以为服务器集群中的各服务器节点,执行主体中至少包括具有数据处理能力的核心处理芯片。实现本发明实施例所提供的一种数据还原方法的方式可以为设置于执行主体中的软件、硬件电路和逻辑电路的至少一种方式。
如图3所示,本发明实施例所提供的一种数据还原方法,该数据还原方法包括如下步骤:
S301,获取待还原数据对应的散列值。
S302,基于预设数据组装协议,从散列值中,提取多个指定数值段的数值。
S303,还原多个指定数值段中的第一指定数值段的数值为待还原数据的扰动值。
预设组装协议限定了散列值中各数值段所表示的具体物理含义,例如,如果预设数据组装协议限定了将散列参数与预设范围的余数值确定为散列值的整数部分,并确定散列值的小数部分由散列参数与预设范围的商值、0和扰动值三部分构成。则可以确定三个指定数值段,分别代表散列参数与预设范围的余数值、散列参数与预设范围的商值和待还原数据对应的扰动值。例如,如果散列值为25.201024,则散列参数与预设范围的余数值为25、散列参数与预设范围的商值为2、待还原数据对应的扰动值为1020。当然,预设组装协议的不同,可以确定每个指定数值段的具体含义,这里不再一一列举。
S304,利用预设散列算法,对扰动值进行换算,得到该扰动值对应的随机值。
在得到扰动值之后,由于本实施例的散列值是根据基本值和扰动值对应的随机值的映射结果确定的,则在数据还原的过程中,需要对扰动值进行随机值的换算和映射。一般情况下随机值的换算和映射过程与在数据存储过程中所使用的方法相同,基于随机值的唯一性的考虑,如果数据存储过程中是选择哈希算法、安全哈希SHA-1算法、信息摘要MD4算法、单向散列MD5算法等散列算法,通过这些散列算法可以将扰动值换算为具有指定长度的唯一的随机值。则在数据还原的过程中也可以选择相同的散列算法对扰动值进行换算。
S305,在预设范围内,对随机值进行映射,得到映射结果。
预设范围覆盖了存储待还原数据的基本值及扰动值的服务器节点预先配置的预设值,与对扰动值进行随机值换算的方式相类似,对随机值的映射过程也与在数据存储过程中所使用的方法相同,如果数据存储过程使用的是基于预设范围对随机值进行映射,则在数据还原的过程中,也可以采用基于预设范围对随机值进行映射,该预设范围需要包含存储待还原数据的服务器节点的预设值。
S306,根据多个指定数值段的数值、预设范围及映射结果,通过预设散列值运算公式,还原待还原数据的基本值。
由于散列值是根据基本值以及扰动值对应的随机值的映射结果,通过预设散列值运算公式得到的,则在得到映射结果之后,根据提取的多个指定数值段的数值、预设范围以及该映射结果,可以通过散列值运算公式,反向得到待还原数据的基本值。
如果在数据存储过程中所使用的预设数据组装协议为将余数值确定为散列值的整数部分,并确定散列值的小数部分由商值、0和扰动值三部分构成。例如,若散列值为25.201024,则散列参数与预设宽度的余数值为25、散列参数与预设宽度的商值为2、待还原数据对应的扰动值为1020,对该扰动值进行随机值换算及映射得到的映射结果为55,并且,假设预设范围为[0,70],则根据预设散列值运算公式(3)可得,待还原数据的基本值为n=2×70+25-55=110。
其中,n为散列值,x为待存储数据对应的基本值,y为待存储数据对应的扰动值,H(y)为映射结果,[r1,r2]为预设范围。
当然,如果在数据存储过程中对预设范围进行了归0操作,则需要根据公式(4)计算待还原数据的基本值。
其中,F(x,y)为换算函数,n为散列值,x为待存储数据对应的基本值,y为待存储数据对应的扰动值,H(y)为映射结果,[r1,r2]为预设范围。
相应的,如果存储器节点还存储了除存储基本值和扰动值以外的待还原数据的其他信息,根据还原后得到的基本值和扰动值,对应的可以查询到待还原数据的其他信息,便于用户完整地对待还原数据查询。
应用本实施例,通过预设数据组装协议,从待还原数据对应的散列值中,提取多个指定数值段的数值,还原多个指定数值段中的第一指定数值段的数值为待还原数据的扰动值,然后利用数据存储方法中所使用的随机值换算的方式以及映射方式得到映射结果,根据多个指定数值段的数值、预设范围及映射结果,通过预设散列值运算公式,可以还原待还原数据的基本值。通过对散列值的提取以及与数据存储方法对应的随机值换算和映射方式能够反向推导得到待还原数据的基本值和扰动值,保证了数据库插入与查询对于某一个数据而言是一一对应的。
为了便于理解,下面结合具体实例,对本发明实施例提供的数据存储方法及数据还原方法进行介绍。
获取到用户输入的待存储数据的基本值x=120,扰动值y=1024,则通过哈希算法,对扰动值y进行换算,得到随机值h(y)=3712481734114402627。
基于图4所示的哈希值映射图,图中二进制的位数由预设范围[10,80]决定,由于80-10=70,该值的二进制表示为01000110,最高位的1处于第6位,则映射二进制数的位数为7位。
设置映射二进制数在初始时各个位值均为0,按照随机值从最高位到最低位的顺序,依次根据随机值的每一位的数值,对映射二进制数的相应的位值进行0-1变换。
S1,随机值最高位的数值为3,则将映射二进制数的第3位的位值进行0-1变换,得到0001000;
S2,随机值次高位的数值为7,则在第一步的基础上,将映射二进制数中上一次进行了0-1变换的位作为第0位,对循环数至第7位的位值进行0-1变换,得到0000000。
按照以上规则将所有随机值中的各位数值映射后,得到的变换后的映射二进制数为0110111,转换成十进制数为55,即得到的映射结果为H(y)=55。
基于预设散列值运算公式(5),对预设范围进行了归0操作,得到公式(6),将x、y、H(y)以及预设范围[r1,r2]代入公式(6)得到散列参数x-r1+H(y)=165,对该散列参数进行降级处理,得到散列参数与预设范围的商值2及余数值25。
其中,n为散列值,x为待存储数据对应的基本值,y为待存储数据对应的扰动值,H(y)为映射结果,[r1,r2]为预设范围。
其中,F(x,y)为换算函数,n为散列值,x为待存储数据对应的基本值,y为待存储数据对应的扰动值,H(y)为映射结果,[r1,r2]为预设范围。
基于预设数据组装协议,将散列参数与预设范围的余数值确定为散列值的整数部分,并确定散列值的小数部分由散列参数与预设范围的商值、0和扰动值三部分构成,则得到散列值n=25.201024。则可以根据该散列值,判断该散列值所处的预设值范围,例如,预先配置的相邻两个服务器节点的预设值分别为20和40,则散列值所处的预设值范围为[20,40],则可以将待存储数据的基本值和扰动值存储至预设值为20的服务器节点,或者,存储至预设值为40的服务器节点。
针对散列值为n=25.201024的待还原数据,假设预设范围为[10,80],基于上述预设数据组装协议,可以得到散列参数与预设范围的余数值为25、散列参数与预设范围的商值为2、待还原数据的扰动值为1024,即可以直接得到扰动值y=1024。并通过上述随机值换算及映射方式,得到映射结果为H(y)=55,基于公式(6),可以得到待还原数据的基本值为x=2×70+25-55+10=120。
本方案中,通过获取待存储数据的基本值及扰动值,然后利用预设散列算法,将扰动值换算为随机值,再将随机值映射为预设范围内的映射结果,根据基本值及映射结果,通过预设散列值运算公式,确定待存储数据对应的散列值,最后基于散列值所处的预设值范围,存储待存储数据的基本值及扰动值至预设值范围的任一端点预设值对应的服务器节点。利用对扰动值的映射得到对应的随机值的映射结果,然后基于该映射结果及基本值,可以得到用于判断将待存储数据存储到哪个服务器节点的散列值,也就是说,数据的存储位置由待存储数据的基本值和扰动值共同决定,并且通过随机值的处理保证了数据存储的随机性,有益于散列值的均匀分散,由于映射的过程是将随机值映射到预设范围内,使得散列值可以均匀散落在预设范围内,从而使得待存储数据可以均匀存储至对应的服务器节点上。并且通过对散列值的提取以及与数据存储方法对应的随机值换算和映射方式能够反向推导得到待还原数据的基本值和扰动值,保证了数据库插入与查询对于某一个数据而言是一一对应的。
相应于上述数据存储方法实施例,本发明实施例提供了一种数据存储装置,如图5所示,该数据存储装置可以包括:
第一获取模块510,用于获取待存储数据的基本值及扰动值;
随机模块520,用于利用预设散列算法,对所述扰动值进行换算,得到所述扰动值对应的随机值;
映射模块530,用于对所述随机值进行映射,得到所述随机值在预设范围内的映射结果;
确定模块540,用于根据所述基本值、所述映射结果及所述预设范围,通过预设散列值运算公式,确定所述待存储数据对应的散列值;
存储模块550,用于基于所述散列值所处的预设值范围,存储所述待存储数据的基本值及扰动值至所述预设值范围的任一端点预设值对应的服务器节点,其中,各服务器节点预先配置有对应的预设值。
可选的,所述随机模块520,具体可以用于:
利用预设散列算法,将所述扰动值换算为具有指定长度的随机值,其中,所述预设散列算法包括:哈希算法、安全哈希SHA-1算法、信息摘要MD4算法、单向散列MD5算法。
可选的,所述映射模块530,具体可以用于:
根据预设范围,确定具有指定位数的映射二进制数,其中,所述映射二进制数中的每一位均为0;
按照所述随机值从最高位到最低位的顺序,依次根据所述随机值的每一位的数值,通过循环方式对所述映射二进制数中与所述数值对应的位进行0-1变换,得到变换后的映射二进制数;
对所述变换后的映射二进制数进行十进制变换,得到映射结果。
可选的,所述确定模块540,具体可以用于:
根据所述基本值及所述映射结果,通过所述散列值运算公式,得到散列参数;
对所述散列参数进行降级处理,得到所述散列参数与预设宽度的商值及余数值,其中,所述预设宽度为预设范围的两个顶点预设值间的差值;
基于预设数据组装协议,对所述余数值、所述商值及所述扰动值进行组装,得到所述待存储数据对应的散列值。
可选的,所述装置在包括第一获取模块510、随机模块520、映射模块530、确定模块540、存储模块550的基础上,还可以包括:
第二获取模块,用于获取与所述基本值对应的所述待存储数据的数据信息;
关联模块,用于将所述数据信息与所对应的所述基本值及扰动值相关联;
所述存储模块550,具体可以用于:
基于所述散列值所处的预设值范围,将关联后的所述数据信息、所述基本值及所述扰动值存储至所述预设值范围的任一端点预设值对应的服务器节点。
应用本实施例,通过获取待存储数据的基本值及扰动值,然后利用预设散列算法,将扰动值换算为随机值,再将随机值映射为预设范围内的映射结果,根据基本值及映射结果,通过预设散列值运算公式,确定待存储数据对应的散列值,最后基于散列值所处的预设值范围,存储待存储数据的基本值及扰动值至预设值范围的任一端点预设值对应的服务器节点。利用对扰动值的映射得到对应的随机值的映射结果,然后基于该映射结果及基本值,可以得到用于判断将待存储数据存储到哪个服务器节点的散列值,也就是说,数据的存储位置由待存储数据的基本值和扰动值共同决定,并且通过随机值的处理保证了数据存储的随机性,有益于散列值的均匀分散,由于映射的过程是将随机值映射到预设范围内,使得散列值可以均匀散落在预设范围内,从而使得待存储数据可以均匀存储至对应的服务器节点上。
相应于上述数据还原方法实施例,本发明实施例提供了一种数据还原装置,如图6所示,该数据还原装置可以包括:
获取模块610,用于获取待还原数据对应的散列值;
提取模块620,用于基于预设数据组装协议,从所述散列值中,提取多个指定数值段的数值;
第一还原模块630,用于还原所述多个指定数值段中的第一指定数值段的数值为所述待还原数据的扰动值;
换算模块640,用于利用预设散列算法,对所述扰动值进行换算,得到所述扰动值对应的随机值;
映射模块650,用于在预设范围内,对所述随机值进行映射,得到映射结果,其中,所述预设范围覆盖了存储所述待还原数据的基本值及扰动值的服务器节点预先配置的预设值;
第二还原模块660,用于根据所述多个指定数值段的数值、所述预设范围及所述映射结果,通过预设散列值运算公式,还原所述待还原数据的基本值。
可选的,所述换算模块640,具体可以用于:
利用预设散列算法,将所述扰动值换算为具有指定长度的随机值,其中,所述预设散列算法包括:哈希算法、安全哈希SHA-1算法、信息摘要MD4算法、单向散列MD5算法。
可选的,所述映射模块650,具体可以用于:
根据预设范围,确定具有指定位数的映射二进制数,其中,所述映射二进制数中的每一位均为0;
按照所述随机值从最高位到最低位的顺序,依次根据所述随机值的每一位的数值,通过循环方式对所述映射二进制数中与所述数值对应的位进行0-1变换,得到变换后的映射二进制数;
对所述变换后的映射二进制数进行十进制变换,得到映射结果。
可选的,所述提取模块620,具体可以用于:
从所述散列值中,提取用于表示散列参数与预设宽度的余数值的整数部分、用于表示所述待还原数据的扰动值的小数部分中的第一指定数值段、及用于表示所述散列参数与所述预设宽度的商值的小数部分中的第二指定数值段,其中,所述预设宽度为预设范围的两个顶点预设值间的差值;
所述第二还原模块660,具体可以用于:
根据所述散列值的整数部分、所述第二指定数值段及所述预设范围,确定散列参数;
根据所述散列参数及所述映射结果,通过预设散列值运算公式,还原所述待还原数据的基本值。
应用本实施例,通过预设数据组装协议,从待还原数据对应的散列值中,提取多个指定数值段的数值,还原多个指定数值段中的第一指定数值段的数值为待还原数据的扰动值,然后利用数据存储方法中所使用的随机值换算的方式以及映射方式得到映射结果,根据多个指定数值段的数值、预设范围及映射结果,通过预设散列值运算公式,可以还原待还原数据的基本值。通过对散列值的提取以及与数据存储方法对应的随机值换算和映射方式能够反向推导得到待还原数据的基本值和扰动值,保证了数据库插入与查询对于某一个数据而言是一一对应的。
本发明实施例还提供了一种计算机设备,如图7所示,计算机设备700,包括处理器710、通信接口720、存储器730和通信总线740,其中,所述处理器710,所述通信接口720,所述存储器730通过所述通信总线740完成相互间的通信。
所述存储器730,用于存放计算机程序;
所述处理器710,用于执行所述存储器730上所存放的程序时,实现本发明实施例提供的数据存储方法。
本实施例中,该计算机设备700的处理器710通过读取存储器中存储的计算机程序,并通过运行该计算机程序,能够实现:利用对扰动值的映射得到对应的随机值的映射结果,然后基于该映射结果及基本值,可以得到用于判断将待存储数据存储到哪个服务器节点的散列值,也就是说,数据的存储位置由待存储数据的基本值和扰动值共同决定,并且通过随机值的处理保证了数据存储的随机性,有益于散列值的均匀分散,由于映射的过程是将随机值映射到预设范围内,使得散列值可以均匀散落在预设范围内,从而使得待存储数据可以均匀存储至对应的服务器节点上。
另外,相应于上述实施例所提供的数据存储方法,本发明实施例提供了一种计算机可读存储介质,用于存储计算机程序,所述计算机程序被处理器执行时,实现本发明实施例提供的数据存储方法。
本实施例中,计算机可读存储介质存储有在运行时执行本申请实施例所提供的数据存储方法的应用程序,因此能够实现:利用对扰动值的映射得到对应的随机值的映射结果,然后基于该映射结果及基本值,可以得到用于判断将待存储数据存储到哪个服务器节点的散列值,也就是说,数据的存储位置由待存储数据的基本值和扰动值共同决定,并且通过随机值的处理保证了数据存储的随机性,有益于散列值的均匀分散,由于映射的过程是将随机值映射到预设范围内,使得散列值可以均匀散落在预设范围内,从而使得待存储数据可以均匀存储至对应的服务器节点上。
本发明实施例还提供了一种计算机设备,如图8所示,计算机设备800,包括处理器810、通信接口820、存储器830和通信总线840,其中,所述处理器810,所述通信接口820,所述存储器830通过所述通信总线840完成相互间的通信。
所述存储器830,用于存放计算机程序;
所述处理器810,用于执行所述存储器830上所存放的程序时,实现本发明实施例提供的数据还原方法。
本实施例中,该计算机设备800的处理器810通过读取存储器中存储的计算机程序,并通过运行该计算机程序,能够实现:通过对散列值的提取以及与数据存储方法对应的随机值换算和映射方式能够反向推导得到待还原数据的基本值和扰动值,保证了数据库插入与查询对于某一个数据而言是一一对应的。
上述计算机设备提到的通信总线可以是PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
上述通信接口用于上述计算机设备与其他设备之间的通信。
上述存储器可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-Volatile Memory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离上述处理器的存储装置。
上述处理器可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processing,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
另外,相应于上述实施例所提供的数据还原方法,本发明实施例提供了一种计算机可读存储介质,用于存储计算机程序,所述计算机程序被处理器执行时,实现本发明实施例提供的数据还原方法。
本实施例中,计算机可读存储介质存储有在运行时执行本发明实施例所提供的数据还原方法的应用程序,因此能够实现:通过对散列值的提取以及与数据存储方法对应的随机值换算和映射方式能够反向推导得到待还原数据的基本值和扰动值,保证了数据库插入与查询对于某一个数据而言是一一对应的。
对于计算机设备以及计算机可读存储介质实施例而言,由于其所涉及的方法内容基本相似于上述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (20)

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.一种数据存储装置,其特征在于,所述装置包括:
第一获取模块,用于获取待存储数据的基本值及扰动值;
随机模块,用于利用预设散列算法,对所述扰动值进行换算,得到所述扰动值对应的随机值;
映射模块,用于对所述随机值进行映射,得到所述随机值在预设范围内的映射结果;
确定模块,用于根据所述基本值、所述映射结果及所述预设范围,通过预设散列值运算公式,确定所述待存储数据对应的散列值;
存储模块,用于基于所述散列值所处的预设值范围,存储所述待存储数据的基本值及扰动值至所述预设值范围的任一端点预设值对应的服务器节点,其中,各服务器节点预先配置有对应的预设值。
11.根据权利要求10所述的装置,其特征在于,所述随机模块,具体用于:
利用预设散列算法,将所述扰动值换算为具有指定长度的随机值,其中,所述预设散列算法包括:哈希算法、安全哈希SHA-1算法、信息摘要MD4算法、单向散列MD5算法。
12.根据权利要求10所述的装置,其特征在于,所述映射模块,具体用于:
根据预设范围,确定具有指定位数的映射二进制数,其中,所述映射二进制数中的每一位均为0;
按照所述随机值从最高位到最低位的顺序,依次根据所述随机值的每一位的数值,通过循环方式对所述映射二进制数中与所述数值对应的位进行0-1变换,得到变换后的映射二进制数;
对所述变换后的映射二进制数进行十进制变换,得到映射结果。
13.根据权利要求10所述的装置,其特征在于,所述确定模块,具体用于:
根据所述基本值及所述映射结果,通过所述散列值运算公式,得到散列参数;
对所述散列参数进行降级处理,得到所述散列参数与预设宽度的商值及余数值,其中,所述预设宽度为预设范围的两个顶点预设值间的差值;
基于预设数据组装协议,对所述余数值、所述商值及所述扰动值进行组装,得到所述待存储数据对应的散列值。
14.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于获取与所述基本值对应的所述待存储数据的数据信息;
关联模块,用于将所述数据信息与所对应的所述基本值及扰动值相关联;
所述存储模块,具体用于:
基于所述散列值所处的预设值范围,将关联后的所述数据信息、所述基本值及所述扰动值存储至所述预设值范围的任一端点预设值对应的服务器节点。
15.一种数据还原装置,其特征在于,所述装置包括:
获取模块,用于获取待还原数据对应的散列值;
提取模块,用于基于预设数据组装协议,从所述散列值中,提取多个指定数值段的数值;
第一还原模块,用于还原所述多个指定数值段中的第一指定数值段的数值为所述待还原数据的扰动值;
换算模块,用于利用预设散列算法,对所述扰动值进行换算,得到所述扰动值对应的随机值;
映射模块,用于在预设范围内,对所述随机值进行映射,得到映射结果,其中,所述预设范围覆盖了存储所述待还原数据的基本值及扰动值的服务器节点预先配置的预设值;
第二还原模块,用于根据所述多个指定数值段的数值、所述预设范围及所述映射结果,通过预设散列值运算公式,还原所述待还原数据的基本值。
16.根据权利要求15所述的装置,其特征在于,所述换算模块,具体用于:
利用预设散列算法,将所述扰动值换算为具有指定长度的随机值,其中,所述预设散列算法包括:哈希算法、安全哈希SHA-1算法、信息摘要MD4算法、单向散列MD5算法。
17.根据权利要求15所述的装置,其特征在于,所述映射模块,具体用于:
根据预设范围,确定具有指定位数的映射二进制数,其中,所述映射二进制数中的每一位均为0;
按照所述随机值从最高位到最低位的顺序,依次根据所述随机值的每一位的数值,通过循环方式对所述映射二进制数中与所述数值对应的位进行0-1变换,得到变换后的映射二进制数;
对所述变换后的映射二进制数进行十进制变换,得到映射结果。
18.根据权利要求15所述的装置,其特征在于,所述提取模块,具体用于:
从所述散列值中,提取用于表示散列参数与预设宽度的余数值的整数部分、用于表示所述待还原数据的扰动值的小数部分中的第一指定数值段、及用于表示所述散列参数与所述预设宽度的商值的小数部分中的第二指定数值段,其中,所述预设宽度为预设范围的两个顶点预设值间的差值;
所述第二还原模块,具体用于:
根据所述散列值的整数部分、所述第二指定数值段及所述预设范围,确定散列参数;
根据所述散列参数及所述映射结果,通过预设散列值运算公式,还原所述待还原数据的基本值。
19.一种计算机设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现权利要求1-5任一所述的方法步骤。
20.一种计算机设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行存储器上所存放的程序时,实现权利要求6-9任一所述的方法步骤。
CN201711039087.3A 2017-10-30 2017-10-30 一种数据存储、还原方法、装置及计算机设备 Active CN110019205B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711039087.3A CN110019205B (zh) 2017-10-30 2017-10-30 一种数据存储、还原方法、装置及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711039087.3A CN110019205B (zh) 2017-10-30 2017-10-30 一种数据存储、还原方法、装置及计算机设备

Publications (2)

Publication Number Publication Date
CN110019205A true CN110019205A (zh) 2019-07-16
CN110019205B CN110019205B (zh) 2021-02-23

Family

ID=67186706

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711039087.3A Active CN110019205B (zh) 2017-10-30 2017-10-30 一种数据存储、还原方法、装置及计算机设备

Country Status (1)

Country Link
CN (1) CN110019205B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110737699A (zh) * 2019-10-15 2020-01-31 秒针信息技术有限公司 用户抽样方法、装置、电子设备和存储介质
CN111193668A (zh) * 2019-12-10 2020-05-22 中移(杭州)信息技术有限公司 流量分配方法、装置、计算机设备及存储介质
CN114115730A (zh) * 2021-11-02 2022-03-01 北京银盾泰安网络科技有限公司 一种应用容器存储引擎平台
CN117555903A (zh) * 2024-01-05 2024-02-13 珠海星云智联科技有限公司 一种数据处理方法、计算机设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105930521A (zh) * 2016-05-25 2016-09-07 努比亚技术有限公司 一种数据库管理装置和方法
CN106874459A (zh) * 2017-02-14 2017-06-20 北京奇虎科技有限公司 流式数据存储方法及装置
US20170199892A1 (en) * 2016-01-13 2017-07-13 International Business Machines Corporation Gauging accuracy of sampling-based distinct element estimation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170199892A1 (en) * 2016-01-13 2017-07-13 International Business Machines Corporation Gauging accuracy of sampling-based distinct element estimation
CN105930521A (zh) * 2016-05-25 2016-09-07 努比亚技术有限公司 一种数据库管理装置和方法
CN106874459A (zh) * 2017-02-14 2017-06-20 北京奇虎科技有限公司 流式数据存储方法及装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110737699A (zh) * 2019-10-15 2020-01-31 秒针信息技术有限公司 用户抽样方法、装置、电子设备和存储介质
CN111193668A (zh) * 2019-12-10 2020-05-22 中移(杭州)信息技术有限公司 流量分配方法、装置、计算机设备及存储介质
CN111193668B (zh) * 2019-12-10 2022-05-10 中移(杭州)信息技术有限公司 流量分配方法、装置、计算机设备及存储介质
CN114115730A (zh) * 2021-11-02 2022-03-01 北京银盾泰安网络科技有限公司 一种应用容器存储引擎平台
CN114115730B (zh) * 2021-11-02 2023-06-13 北京银盾泰安网络科技有限公司 一种应用容器存储引擎平台
CN117555903A (zh) * 2024-01-05 2024-02-13 珠海星云智联科技有限公司 一种数据处理方法、计算机设备及介质
CN117555903B (zh) * 2024-01-05 2024-04-09 珠海星云智联科技有限公司 一种数据处理方法、计算机设备及介质

Also Published As

Publication number Publication date
CN110019205B (zh) 2021-02-23

Similar Documents

Publication Publication Date Title
TWI715999B (zh) 身份資訊的識別方法及裝置
TWI743458B (zh) 一種並行化執行區塊鏈交易的方法、裝置及系統
TWI677228B (zh) 向區塊鏈系統中寫入事務資料的方法和裝置
JP6804668B2 (ja) ブロックデータ検証方法および装置
CN111201754B (zh) 用于提供区块链的环节的密码学保护的和经过滤的以及经排序的交易数据集的集合的设备
JP6716727B2 (ja) ストリーミングデータ分散処理方法及び装置
CN105786808B (zh) 一种用于分布式执行关系型计算指令的方法与设备
CN107798038B (zh) 数据响应方法及数据响应设备
TW201913515A (zh) 選擇共識節點的處理方法、裝置及伺服器
CN110019205A (zh) 一种数据存储、还原方法、装置及计算机设备
CN108268586B (zh) 跨多数据表的数据处理方法、装置、介质和计算设备
CN109032803B (zh) 数据处理方法和装置、客户端
US9210219B2 (en) Systems and methods for consistent hashing using multiple hash rings
CN102314336B (zh) 一种数据处理方法和系统
CN104298541A (zh) 云存储系统的数据分布算法及其装置
CN109145051A (zh) 分布式数据库的数据汇总方法及装置和电子设备
CN105447028A (zh) 识别特征账号的方法及装置
CN109739433A (zh) 数据处理的方法及终端设备
CN110659905B (zh) 交易验证方法、装置、终端设备以及存储介质
CN110704438B (zh) 一种区块链中布隆过滤器的生成方法及装置
CN109587072A (zh) 分布式系统全局限速系统及方法
CN109145053B (zh) 数据处理方法和装置、客户端、服务器
CN108234551A (zh) 一种数据处理方法及装置
CN104299170B (zh) 间歇性能源海量数据处理方法
CN107391044A (zh) 一种云硬盘的创建方法及创建装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant