数据存储方法、装置和电子设备制造方法及图纸

技术编号:35267735 阅读:24 留言:0更新日期:2022-10-19 10:32
本公开提供一种数据存储方法、装置和电子设备,通过获取业务拆分键信息,根据预定义的虚拟节点和业务拆分键信息,确定业务拆分键信息与虚拟节点的第一映射关系,其中,虚拟节点与物理节点具有预定义的第二映射关系,获取业务拆分键信息对应的数据,根据第一映射关系和第二映射关系,将业务拆分键信息对应的数据存储在物理节点中。由于实现数据存储的物理节点的数量相对较少,通过在数据和物理节点之间加入虚拟节点的方式,将数据根据相对较多的虚拟节点的数量进行数据分配进而实现数据分布均匀的效果,再根据虚拟节点和物理节点的映射关系将数据存储至物理节点,从而实现数据存储的分布均匀的效果。分布均匀的效果。分布均匀的效果。

【技术实现步骤摘要】
数据存储方法、装置和电子设备


[0001]本公开涉及数据处理
,尤其涉及一种数据存储方法、装置和电子设备。

技术介绍

[0002]互联网高度成熟的今天,每个软件系统时时刻刻都在产生大量的数据,为了更快的读写速度,更好的用户体验,将数据进行分库分表就成了很重要的一个环节。目前主流的分库分表方法存在数据存储分布不均匀的情况。
[0003]因此,提出一种数据存储方法以解决数据存储分布不均匀的问题是当前亟待解决的问题。

技术实现思路

[0004]本公开提供一种数据存储方法、装置和电子设备,用以解决现有技术中数据存储分布不均匀的缺陷,实现均匀分布的数据存储。
[0005]本公开提供一种数据存储方法,包括:
[0006]获取业务拆分键信息;
[0007]根据预定义的虚拟节点和所述业务拆分键信息,确定所述业务拆分键信息与所述虚拟节点的第一映射关系,其中,所述虚拟节点与物理节点具有预定义的第二映射关系;
[0008]获取所述业务拆分键信息对应的数据,根据所述第一映射关系和所述第二映射关系,将所述业务拆分键信息对应的数据存储在所述物理节点中。
[0009]根据本公开提供的一种数据存储方法,所述第一映射关系通过以下方法确定,包括:
[0010]根据所述业务拆分键信息进行哈希运算,得到业务拆分键哈希值;
[0011]根据所述业务拆分键哈希值确定所述业务拆分键信息对应的虚拟节点。
[0012]根据本公开提供的一种数据存储方法,根据所述业务拆分键哈希值确定对应的虚拟节点,包括:
[0013]将所述业务拆分键哈希值按照所述虚拟节点的数量进行取余,得到哈希值余数;
[0014]根据所述哈希值余数确定所述业务拆分键信息对应的虚拟节点。
[0015]根据本公开提供的一种数据存储方法,所述第二映射关系通过以下方法确定,包括:
[0016]根据物理节点的数量确定虚拟节点的数量;
[0017]按照预设规则确定所述虚拟节点对应的物理节点。
[0018]根据本公开提供的一种数据存储方法,所述根据物理节点的数量确定虚拟节点的数量,包括:
[0019]获取物理节点的数量;
[0020]配置稀释因子;
[0021]根据所述物理节点的数量和所述稀释因子确定虚拟节点的数量。
[0022]根据本公开提供的一种数据存储方法,在所述物理节点的数量和所述虚拟节点的数量变化的情况下,所述方法还包括:
[0023]更新所述第一映射关系和所述第二映射关系,得到更新后的第一映射关系和更新后的第二映射关系;
[0024]根据更新后的第一映射关系和更新后的第二映射关系,将所述业务拆分键信息对应的数据存储在对应的所述物理节点中。
[0025]本公开还提供一种数据存储装置,包括:
[0026]获取单元,用于获取业务拆分键信息;
[0027]映射单元,用于根据预定义的虚拟节点和所述业务拆分键信息,确定所述业务拆分键信息与所述虚拟节点的第一映射关系,其中,所述虚拟节点与物理节点具有预定义的第二映射关系;
[0028]存储单元,用于获取所述业务拆分键信息对应的数据,根据所述第一映射关系和所述第二映射关系,将所述业务拆分键信息对应的数据存储在所述物理节点中。
[0029]本公开还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述数据存储方法的步骤。
[0030]本公开还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据存储方法的步骤。
[0031]本公开还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述数据存储方法的步骤。
[0032]本公开提供的数据存储方法、装置和电子设备,通过获取业务拆分键信息,根据预定义的虚拟节点和业务拆分键信息,确定业务拆分键信息与虚拟节点的第一映射关系,其中,虚拟节点与物理节点具有预定义的第二映射关系,获取业务拆分键信息对应的数据,根据第一映射关系和第二映射关系,将业务拆分键信息对应的数据存储在物理节点中。由于实现数据存储的物理节点的数量相对较少,通过在数据和物理节点之间加入虚拟节点的方式,将数据根据相对较多的虚拟节点的数量进行数据分配进而实现数据分布均匀的效果,再根据虚拟节点和物理节点的映射关系将数据存储至物理节点,从而实现数据存储的分布均匀的效果。
附图说明
[0033]为了更清楚地说明本公开或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0034]图1是本公开提供的分段颗粒度示意图;
[0035]图2是本公开提供的数据存储方法的流程示意图之一;
[0036]图3是本公开提供的第二映射关系示意图;
[0037]图4是本公开提供的数据存储方法的流程示意图之二;
[0038]图5是本公开提供的第一映射关系和第二映射关系示意图之一;
[0039]图6是本公开提供的数据存储方法的流程示意图之三;
[0040]图7是本公开提供的数据存储方法的流程示意图之四;
[0041]图8是本公开提供的第一映射关系和第二映射关系示意图之二;
[0042]图9是本公开提供的数据存储装置的结构示意图;
[0043]图10是本公开提供的电子设备的结构示意图。
具体实施方式
[0044]为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开实施例一部分实施例,而不是全部的实施例。基于本公开实施例中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开实施例保护的范围。
[0045]一个基本的共识:有限的数据集合内,分段颗粒度越细,各个分段间的数据量差异越小。如图1所示,假设以6为步长分为上下两组,上下两组分别是6个数和3个数,个数差值是3;假设以2为步长,按纵向分为6组,那每组的数字个数由下往上分别是:2、2、2、1、1、1,差值是1。因此,在数据量有限时,无限的细化分组的粒度,那每组的分布就会尽可能趋于均匀。
[0046]数据存储也是同样的原理,对于存储数据分布不均匀的数据库和数据表等这些物理节点,尽可能的增加数量,最后也会趋于相对均匀,但这个方案显然是不可行的,因为硬件资源一定是有限的。本公开借助稀释的思想,数据库和数据表等物理节点数量有限,可以把有限的物理节点稀释,变成足够多的虚拟节点,再让这些虚拟节点暂时代替物理节点进行数据分配,最后通过虚拟节点找到物理节点,将本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据存储方法,其特征在于,包括:获取业务拆分键信息;根据预定义的虚拟节点和所述业务拆分键信息,确定所述业务拆分键信息与所述虚拟节点的第一映射关系,其中,所述虚拟节点与物理节点具有预定义的第二映射关系;获取所述业务拆分键信息对应的数据,根据所述第一映射关系和所述第二映射关系,将所述业务拆分键信息对应的数据存储在所述物理节点中。2.根据权利要求1所述的数据存储方法,其特征在于,所述第一映射关系通过以下方法确定,包括:根据所述业务拆分键信息进行哈希运算,得到业务拆分键哈希值;根据所述业务拆分键哈希值确定所述业务拆分键信息对应的虚拟节点。3.根据权利要求2所述的数据存储方法,其特征在于,根据所述业务拆分键哈希值确定对应的虚拟节点,包括:将所述业务拆分键哈希值按照所述虚拟节点的数量进行取余,得到哈希值余数;根据所述哈希值余数确定所述业务拆分键信息对应的虚拟节点。4.根据权利要求1所述的数据存储方法,其特征在于,所述第二映射关系通过以下方法确定,包括:根据物理节点的数量确定虚拟节点的数量;按照预设规则确定所述虚拟节点对应的物理节点。5.根据权利要求4所述的数据存储方法,其特征在于,所述根据物理节点的数量确定虚拟节点的数量,包括:获取物理节点的数量;配置稀释因子;根据所述物理节点的数量和所述稀释因子确定虚拟节点的数量。6.根据权利要求1所...

【专利技术属性】
技术研发人员:敬岩
申请(专利权)人:北京京东振世信息技术有限公司
类型:发明
国别省市:

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

1