CN108345659A - 一种数据处理方法、装置、设备及计算机可读存储介质 - Google Patents
一种数据处理方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN108345659A CN108345659A CN201810093886.7A CN201810093886A CN108345659A CN 108345659 A CN108345659 A CN 108345659A CN 201810093886 A CN201810093886 A CN 201810093886A CN 108345659 A CN108345659 A CN 108345659A
- Authority
- CN
- China
- Prior art keywords
- data
- tables
- client
- label
- hash
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
Abstract
本发明提供一种数据处理方法、装置、设备及计算机可读存储介质。该方法包括:根据接收到的客户标签数据的数量计算所需用于保存所述客户标签数据的数据表的数量,并创建相应数量的数据表;构建一致性哈希环,将所述数据表均匀地映射至所述一致性哈希环;获取每条所述客户标签数据的主键字段;利用一致性哈希算法对所述主键字段进行哈希处理得到对应客户标签数据的哈希值,一个所述哈希值等于所述一致性哈希环上的一个空间值;根据所述哈希值确定用于存储对应的客户标签数据的数据表;将所述客户标签数据保存在所述数据表中。本发明通过哈希分表的方式可以将大量的客户标签数据均匀地存储到每个数据表中。
Description
技术领域
本发明涉及信息处理技术领域,尤其涉及一种数据处理方法、装置、设备及计算机可读存储介质。
背景技术
项目中经常遇到大批量数据(几亿至十几亿不等)需要写入数据库的情况,一般的方法是写存储过程。
目前存在一种批量存储大量数据的方法,通过一致性哈希算法将存储节点映射到一致性哈希环上,根据每条数据的哈希值在一致性哈希环上按顺时针方向寻找存储该数据的存储节点,最终将数据写入到对应的存储节点。
每条数据哈希后的哈希值在一致性哈希环是具有随机分布的特性,也就是说,数据哈希后的哈希值在一致性哈希环上的分布可能会出现疏密情况,这样再按照顺时针方向寻找存储节点来保存数据的话,容易导致数据存储不均匀;另外,当存储节点的数量不超过10时,根据一致性哈希算法将存储节点映射到一致性哈希环上,存储节点在一致性哈希环上的映射也不一定是均匀的,如此,即使数据的哈希值在一致性哈希环上是均匀分布的,最终保存数据的存储节点保存到的数据量也不一定是均匀的。
发明内容
本发明实施例提供了一种数据处理方法、装置、设备及计算机可读存储介质,能够均匀地将大批量数据存储到各个数据表中。
第一方面,本发明实施例提供了一种数据处理方法,该方法包括:
根据接收到的客户标签数据的数量计算所需用于保存所述客户标签数据的数据表的数量,并创建相应数量的数据表;
构建一致性哈希环,将所述数据表均匀地映射至所述一致性哈希环;
获取每条所述客户标签数据的主键字段;
利用一致性哈希算法对所述主键字段进行哈希处理得到对应客户标签数据的哈希值,一个所述哈希值等于所述一致性哈希环上的一个空间值;
根据所述哈希值确定用于存储对应的客户标签数据的数据表;
将所述客户标签数据保存在所述数据表中。第二方面,本发明实施例还提供了一种数据处理装置,所述数据处理装置包括用于实现第一方面所述的数据处理方法的单元。
第三方面,本发明实施例还提供了一种数据处理设备,所述数据处理设备包括存储器,以及与所述存储器相连的处理器;
所述存储器,用于存储实现数据处理方法的计算机程序;
所述处理器,用于运行所述存储器中存储的计算机程序,以执行如上述第一方面所述的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上计算机程序,所述一个或者一个以上计算机程序可被一个或者一个以上的处理器执行,以实现上述第一方面所述的方法。
本发明提供了数据处理方法、装置、设备及计算机可读存储介质,所述方法包括:根据接收到的客户标签数据的数量计算所需用于保存所述客户标签数据的数据表的数量,并创建相应数量的数据表;构建一致性哈希环,将所述数据表均匀地映射至所述一致性哈希环;获取每条所述客户标签数据的主键字段;利用一致性哈希算法对所述主键字段进行哈希处理得到对应客户标签数据的哈希值,一个所述哈希值等于所述一致性哈希环上的一个空间值;根据所述哈希值确定用于存储对应的客户标签数据的数据表;将所述客户标签数据保存在所述数据表中。本发明通过哈希分表的方式可以将大量的客户标签数据均匀地存储到每个数据表中。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据处理方法的流程示意图;
图2是本发明实施例提供的一种数据处理方法的子流程示意图;
图3是本发明实施例提供的一种数据处理方法的另一子流程示意图;
图4是本发明实施例提供的客户标签数据和数据表在一致性哈希环的映射示意图;
图5是本发明实施例提供的一种数据处理方法的另一子流程示意图;
图6是本发明实施例提供的一种数据处理方法的另一流程示意图;
图7是本发明实施例提供的一种数据处理装置的示意性框图;
图8是本发明实施例提供的一种数据处理装置的子单元结构示意性框图;
图9是本发明实施例提供的一种数据处理装置的另一子单元结构示意性框图;
图10是本发明实施例提供的一种数据处理装置的另一子单元结构示意性框图;
图11是本发明实施例提供的一种数据处理装置的另一示意性框图;
图12是本发明实施例提供的一种数据处理设备的组成结构示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
也应当理解,尽管术语第一、第二等可以在此用来描述各种元素,但这些元素不应该受限于这些术语,这些术语仅用来将这些元素彼此区分开。
图1为本发明实施例提供的一种数据处理方法的流程示意图。该方法包括步骤S101~S106。
S101,根据接收到的客户标签数据的数量计算所需用于保存所述客户标签数据的数据表的数量,并创建相应数量的数据表。
在本发明实施例中,客户标签数据来源于Hadoop平台,因也无需要,需要将Hadoop平台中的客户标签数据需要导入到数据库中,在数据库中创建数据表来存储客户标签数据,每一个数据表存储的数据量有限,数据表的数量与客户标签数据的数量有关,例如,每个数据表可存储6000万条客户标签数据,则数据表的数量=客户标签数据的数量/6000万,若有余数则向上取整为表个数。
S102,构建一致性哈希环,将所述数据表均匀地映射至所述一致性哈希环。
一致性哈希环为一个数字空间环,由数字0~(2^32)-1首尾相连形成,每一个数字表示在该一致性哈希环的空间值,即空间位置。构建一致性哈希环,并建立数据表与一致性哈希环之间的映射关系,即将数据表与一致性哈希环上的空间值对应起来,使一致性哈希环上的某一个点或某一个数字代表一个数据表。
在本发明实施例中,如图2所示,步骤S102中的将所述数据表均匀地映射至所述一致性哈希环的步骤,包括子步骤S1021-S1022。
S1021,根据所述数据表的数量将所述一致性哈希环进行等分,等分数量与所述数据表的数量相等。
S1022,获取所述一致性哈希环的所有等分点的空间值,将各个空间值分别作为各个数据表映射在所述一致性哈希环的空间位置。
在本发明实施例中,不通过哈希算法将数据表映射至一致性哈希环上,是为了避免当数据表数量较少时经哈希处理确定的映射关系无法使数据表在一致性哈希环上均匀分布,而直接将一致性哈希环进行等分,取等分点作为数据表的映射,等分点的空间值即为各个数据表映射在一致性哈希环的空间位置,可以有效地保证所有数据表在一致性哈希环上均匀分布。
S103,获取每条所述客户标签数据的主键字段。
每条客户标签数据都有可以唯一标识该条客户标签数据的字段信息,该字段信息即为主键字段,在本发明实施例中中,每一条客户标签数据包括的客户信息有客户基本信息、性格、爱好、婚姻状态、客户号、客户类型等字段信息,客户号可以唯一标识该条客户标签数据,因此客户号为该客户标签数据的主键字段。
S104,利用一致性哈希算法对所述主键字段进行哈希处理得到对应客户标签数据的哈希值,一个所述哈希值等于所述一致性哈希环上的一个空间值。
对每一条客户标签数据的主键字段,即客户号,利用一致性哈希算法进行哈希处理,将客户标签数据映射到该一致性哈希环尚,每条客户标签数据的客户号是唯一的,因此对客户号进行哈希得到的客户标签数据的哈希值也是唯一,利用一致性哈希算法得到的哈希值的范围在一致性哈希环的空间0~(2^32)-1范围内,因此一个哈希值等于一致性哈希环上的一个空间值。
S105,根据所述哈希值确定用于存储对应的客户标签数据的数据表。
客户标签数据可以用一致性哈希环的空间值表示,数据表也用一致性哈希环的空间值表示,因此,可以通过这两个空间值的关系来确定保存客户标签数据的数据表为哪一个。
在本发明实施例中,如图3所示,步骤S105包括子步骤S1051a-S1053a。
S1051a,计算所述客户标签数据对应的哈希值与各个数据表的空间位置之间的相对位置比。
相对位置比gi(y)=((hash(i)-空间位置(y))/哈希环空间总值)2,其中,gi(y)表示第i条客户标签数据的哈希值与第y个数据表在一致性哈希环的空间位置的相对位置比,hash(i)表示第i条客户标签数据的哈希值(即该第i条客户标签数据映射在一致性哈希环中的空间值),空间位置(y)表示第y个数据表在哈希环中的空间位置(即该第y个数据表映射在一致性哈希环中的空间值),哈希环空间总值为223。
S1052a,获取最小的相对位置比对应的数据表。
S1053a,确定所述数据表为用于存储所述客户标签数据的数据表。
通过计算每条客户标签数据的哈希值与各个数据表在一致性哈希环上的空间位置的相对位置比,寻找最小相对位置比对应的数据表作为存储对应客户标签数据的数据表。例如图4,假设数据表为三个,分别为A1、A2和A3,用黑点表示该三个数据表在一致性哈希环上的映射位置,白点表示客户标签数据在一致性哈希环上的映射位置,即获取白点最接近的黑点作为存储该白点对应的客户标签数据作为数据表。
通过一致性哈希算法将客户标签数据哈希映射在一致性哈希环,客户标签数据越多,客户标签数据在一致性哈希环上分布越均匀,本发明实施例中,数据表均匀映射在一致性哈希环上,将客户标签数据保存在距离最近的数据表中(距离最近,是针对映射在一致性哈希环的空间位置而言),这样有利于保证数据均匀的保存在每个数据列表中。
然而,即使客户标签数据在一致性哈希环上分布是接近均匀的,但是当数据量不足够大时,映射不可能完全均匀,那么会存在这样一种情况,在数据分布相对稀疏的地方,数据表存储的数据较少,而在数据分布相比密集的地方,数据表存储的数据则较多,造成每个数据存储的数据量差异大,因此,可以设置每个数据表存储的数据量具有一个预设值,当距离最近的数据表存储数据量满的时候,存在另一次近而存储量未满的数据表中,这样可以保证每个数据表最终存储的数据量基本是一样的。具体地,在其他实施例中,如图5所示,步骤S105包括子步骤S1051b-S105b。
S1051b,计算所述客户标签数据对应的哈希值与各个数据表的空间位置之间的相对位置比。相对位置比的解释同上。
S1052b,获取最小的相对位置比对应的数据表。
S1053b,判断所述数据表的存储数据量是否达到预设数量。
S1054b,若否,则确定所述数据表为用于存储所述客户标签数据的数据表。
S1055b,若是,则从存储数据量未达到预设数量的数据表中获取具有较小的相对位置比对应的数据表,确定所述数据表为用于存储所述客户标签数据的数据表。
通过以上子步骤可以实现每个数据表均匀地存储客户标签数据。
S106,将所述客户标签数据保存在所述数据表中。
在创建数据表后系统会给每个数据表命名,数据表的空间位置和表名是一一对应的,将空间位置和表名保存在treeMap中,则确定保存具体客户标签数据的空间位置后,通过空间位置对应的表名几个查询到该数据表,从而将客户标签数据保存在数据表中。
本发明实施例的数据处理方法,数据表是均匀映射在一致性哈希环中,根据数据与数据表的位置关系将客户标签数据保存在距离最近的数据表中,这样有利于保证数据均匀的保存在每个数据列表中;根据数据与数据表的位置关系,以及数据表的存储量关系,当数据表存储满数据之后,将所述存储到较近位置的数据表,有利于保证每个数据表存储的数据量基本是一致的。
图6是本发明实施例提供的一种数据处理方法的另一流程示意图,该方法包括步骤S201-S205。
S201,根据接收到的客户标签数据的数量计算所需用于保存所述客户标签数据的数据表的数量,并创建相应数量的数据表,利用序号为所述数据表命名。
在本发明实施例中,数据表的命名结合和序号,例如命名数据表的表名为表1、表2、表3,……,或A1、A2、A3,……,等。
S202,构建一致性哈希环,将所述数据表均匀地映射至所述一致性哈希环。
S203,获取每条所述客户标签数据的主键字段。
S204,利用一致性哈希算法对所述主键字段进行哈希处理得到对应客户标签数据的哈希值,一个所述哈希值等于所述一致性哈希环上的一个空间值。
S205,根据所述哈希值确定用于存储对应的客户标签数据的数据表。
S206,将所述客户标签数据保存在所述数据表中。
本发明实施例的步骤S202-S206与上述实施例的步骤S102-S106相同,具体描述可参考上述实施例。
S207,接收查询客户标签数据的指令信息,所述指令信息包括客户标签数据的主键字段。
保存客户标签数据主要是为了后期的数据查询需要,用户可通过主键字段,即客户号来查询某个客户的客户标签数据。
S208,通过所述一致性哈希算法对所述主键字段进行哈希处理得到所述客户标签数据的哈希值。
S209,从所有所述数据表的空间位置中搜索与所述哈希值最接近的空间位置。
查询数据时对客户号进行的哈希处理与保存数据时进行的哈希处理的方法相同,两种情形得到的哈希值是一致的。
S210,获取与所述哈希值最接近的空间位置对应的数据表,在所述数据表中查询所述主键字段对应的客户标签数据。
S211,若在所述数据表中未查询到所述客户标签数据,则根据所述数据表的表名中的序号依次查询剩余的数据表,直至查询到所述客户标签数据。
因为客户标签数据是优先保存在与对应的哈希值最接近的空间位置对应的数据表中,因此优先查询该数据表,当该数据表中不存在需要查询的客户标签数据时,以数据表的序号为标准从下一个数据表开始一个一个查询数据表,直至查询到该客户标签数据。例如,有五个数据表A1、A2、A3、A4和A5,优先确定的数据表为A3,但在A3中为查到对应的客户标签数据,因此,依次查询A4、A5、A1和A2,直至查询到对应的客户标签数据。
本发明实施例的数据处理方法,对应哈希分表保存数据的方法来查询数据,防止在一个数据表中查询不到客户标签数据后而产生查询错误的情况。
图7为本发明实施例提供的一种数据处理装置100的示意性框图。该数据处理装置100包括计算单元101、创建单元102、构建单元103、映射单元104、获取单元105、哈希单元106、确定单元107和保存单元108。
计算单元101用于根据接收到的客户标签数据的数量计算所需用于保存所述客户标签数据的数据表的数量。
创建单元102用于创建相应数量的数据表。
构建单元103用于构建一致性哈希环。
映射单元104用于将所述数据表均匀地映射至所述一致性哈希环。
第一获取单元105用于获取每条所述客户标签数据的主键字段。
哈希单元106用于利用一致性哈希算法对所述主键字段进行哈希处理得到对应客户标签数据的哈希值,一个所述哈希值等于所述一致性哈希环上的一个空间值。
确定单元107用于根据所述哈希值确定用于存储对应的客户标签数据的数据表。
保存单元108用于将所述客户标签数据保存在所述数据表中。
在本发明实施例中,如图8所示,所述映射单元104包括:
等分子单元1041,用于根据所述数据表的数量将所述一致性哈希环进行等分,等分数量与所述数据表的数量相等。
映射子单元1042,用于获取所述一致性哈希环的所有等分点的空间值,将各个空间值分别作为各个数据表映射在所述一致性哈希环的空间位置。
在本发明实施例中,如图9所示,所述确定单元107包括:
计算子单元1071,用于计算所述客户标签数据对应的哈希值与各个数据表的空间位置之间的相对位置比;
获取子单元1072,用于获取最小的相对位置比对应的数据表;
第一确定子单元1073,用于确定所述数据表为用于存储所述客户标签数据的数据表。
在其他发明实施例中,如图10所示,所述确定单元107包括:
计算子单元1071,用于计算所述客户标签数据对应的哈希值与各个数据表的空间位置之间的相对位置比;
获取子单元1072,用于获取最小的相对位置比对应的数据表。
判断子单元1074,用于判断所述数据表的存储数据量是否达到预设数量。
第二确定子单元1075,用于若所述数据表的存储数据量未达到预设数量,则确定所述数据表为用于存储所述客户标签数据的数据表,若所述数据表的存储数据量达到预设数量,则从存储数据量未达到预设数量的数据表中获取具有较小的相对位置比对应的数据表,确定所述数据表为用于存储所述客户标签数据的数据表。
如图11所示,所述数据处理装置100还包括命名单元109、接收单元110、搜索单元111、第二获取单元112和查询单元113。
命名单元109用于在创建单元102创建相应数量的数据表之后利用序号为所述数据表命名。
接收单元110用于接收查询客户标签数据的指令信息,所述指令信息包括客户标签数据的主键字段。
所述哈希单元106还用于:通过所述一致性哈希算法对所述指令信息中的主键字段进行哈希处理得到所述客户标签数据的哈希值。
搜索单元111用于从所有所述数据表的空间位置中搜索与所述哈希值最接近的空间位置。
第二获取单元112用于获取与所述哈希值最接近的空间位置对应的数据表。
查询单元113用于在所述数据表中查询所述主键字段对应的客户标签数据,若在所述数据表中未查询到所述客户标签数据,则根据所述数据表的表名中的序号依次查询剩余的数据表,直至查询到所述客户标签数据。
数据处理装置100各个单元的具体描述可参考上述方法实施例,本发明实施例不做赘述。
上述数据处理装置100可以实现为一种计算机程序的形式,计算机程序可以在如图12所示的计算机设备上运行。
图12为本发明实施例提供的一种数据处理设备的组成结构示意性框图。该设备可以是终端,也可以是服务器,其中,终端可以是智能手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等具有通信功能的电子设备。服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
该设备为一种计算机设备200,包括通过系统总线201连接的处理器202、存储器和网络接口205,其中,存储器可以包括非易失性存储介质203和内存储器204。该计算机设备200的非易失性存储介质203可存储操作系统2031和计算机程序2032,该计算机程序2032被执行时,可使得处理器202执行一种数据处理方法。该计算机设备200的处理器202用于提供计算和控制能力,支撑整个计算机设备200的运行。该内存储器204为非易失性存储介质203中的计算机程序2032的运行提供环境。计算机设备200的网络接口205用于进行网络通信,如发送分配的任务、接收数据等。本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
处理器202运行非易失性存储介质203中的计算机程序2032,执行如下操作:
根据接收到的客户标签数据的数量计算所需用于保存所述客户标签数据的数据表的数量,并创建相应数量的数据表;构建一致性哈希环,将所述数据表均匀地映射至所述一致性哈希环;获取每条所述客户标签数据的主键字段;利用一致性哈希算法对所述主键字段进行哈希处理得到对应客户标签数据的哈希值,一个所述哈希值等于所述一致性哈希环上的一个空间值;根据所述哈希值确定用于存储对应的客户标签数据的数据表;将所述客户标签数据保存在所述数据表中。
处理器202还执行如下操作:
根据所述数据表的数量将所述一致性哈希环进行等分,等分数量与所述数据表的数量相等;获取所述一致性哈希环的所有等分点的空间值,将各个空间值分别作为各个数据表映射在所述一致性哈希环的空间位置。
处理器202还执行如下操作:
计算所述客户标签数据对应的哈希值与各个数据表的空间位置之间的相对位置比;获取最小的相对位置比对应的数据表;确定所述数据表为用于存储所述客户标签数据的数据表。
处理器202还执行如下操作:
计算所述客户标签数据对应的哈希值与各个数据表的空间位置之间的相对位置比;获取最小的相对位置比对应的数据表;判断所述数据表的存储数据量是否达到预设数量;若所述数据表的存储数据量未达到预设数量,则确定所述数据表为用于存储所述客户标签数据的数据表;若所述数据表的存储数据量达到预设数量,则从存储数据量未达到预设数量的数据表中获取具有较小的相对位置比对应的数据表,确定所述数据表为用于存储所述客户标签数据的数据表。
处理器202还执行如下操作:
利用序号为所述数据表命名;
接收查询客户标签数据的指令信息,所述指令信息包括客户标签数据的主键字段;通过所述一致性哈希算法对所述主键字段进行哈希处理得到所述客户标签数据的哈希值;从所有所述数据表的空间位置中搜索与所述哈希值最接近的空间位置;获取与所述哈希值最接近的空间位置对应的数据表,在所述数据表中查询所述主键字段对应的客户标签数据;若在所述数据表中未查询到所述客户标签数据,则根据所述数据表的表名中的序号依次查询剩余的数据表,直至查询到所述客户标签数据。
本领域技术人员可以理解,图12中示出的数据处理设备的实施例并不构成对数据处理设备具体构成的限定,在其他实施例中,数据处理设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,数据处理设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图12所示实施例一致,在此不再赘述。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上计算机程序,所述一个或者一个以上计算机程序可被一个或者一个以上的处理器执行,以实现以下步骤:
根据接收到的客户标签数据的数量计算所需用于保存所述客户标签数据的数据表的数量,并创建相应数量的数据表;构建一致性哈希环,将所述数据表均匀地映射至所述一致性哈希环;获取每条所述客户标签数据的主键字段;利用一致性哈希算法对所述主键字段进行哈希处理得到对应客户标签数据的哈希值,一个所述哈希值等于所述一致性哈希环上的一个空间值;根据所述哈希值确定用于存储对应的客户标签数据的数据表;将所述客户标签数据保存在所述数据表中。
还实现以下步骤:
根据所述数据表的数量将所述一致性哈希环进行等分,等分数量与所述数据表的数量相等;获取所述一致性哈希环的所有等分点的空间值,将各个空间值分别作为各个数据表映射在所述一致性哈希环的空间位置。
还实现以下步骤:
计算所述客户标签数据对应的哈希值与各个数据表的空间位置之间的相对位置比;获取最小的相对位置比对应的数据表;确定所述数据表为用于存储所述客户标签数据的数据表。
还实现以下步骤:
计算所述客户标签数据对应的哈希值与各个数据表的空间位置之间的相对位置比;获取最小的相对位置比对应的数据表;判断所述数据表的存储数据量是否达到预设数量;若所述数据表的存储数据量未达到预设数量,则确定所述数据表为用于存储所述客户标签数据的数据表;若所述数据表的存储数据量达到预设数量,则从存储数据量未达到预设数量的数据表中获取具有较小的相对位置比对应的数据表,确定所述数据表为用于存储所述客户标签数据的数据表。
还实现以下步骤:
利用序号为所述数据表命名;
接收查询客户标签数据的指令信息,所述指令信息包括客户标签数据的主键字段;通过所述一致性哈希算法对所述主键字段进行哈希处理得到所述客户标签数据的哈希值;从所有所述数据表的空间位置中搜索与所述哈希值最接近的空间位置;获取与所述哈希值最接近的空间位置对应的数据表,在所述数据表中查询所述主键字段对应的客户标签数据;若在所述数据表中未查询到所述客户标签数据,则根据所述数据表的表名中的序号依次查询剩余的数据表,直至查询到所述客户标签数据。
所述计算机可读存储介质可以是前述设备的内部存储单元,例如设备的硬盘或内存。所述计算机可读存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
根据接收到的客户标签数据的数量计算所需用于保存所述客户标签数据的数据表的数量,并创建相应数量的数据表;
构建一致性哈希环,将所述数据表均匀地映射至所述一致性哈希环;
获取每条所述客户标签数据的主键字段;
利用一致性哈希算法对所述主键字段进行哈希处理得到对应客户标签数据的哈希值,一个所述哈希值等于所述一致性哈希环上的一个空间值;
根据所述哈希值确定用于存储对应的客户标签数据的数据表;
将所述客户标签数据保存在所述数据表中。
2.根据权利要求1所述的数据处理方法,其特征在于,所述将所述数据表均匀地映射至所述一致性哈希环,包括:
根据所述数据表的数量将所述一致性哈希环进行等分,等分数量与所述数据表的数量相等;
获取所述一致性哈希环的所有等分点的空间值,将各个空间值分别作为各个数据表映射在所述一致性哈希环的空间位置。
3.根据权利要求2所述的数据处理方法,其特征在于,所述根据所述哈希值确定用于存储对应的客户标签数据的数据表,包括:
计算所述客户标签数据对应的哈希值与各个数据表的空间位置之间的相对位置比;
获取最小的相对位置比对应的数据表;
确定所述数据表为用于存储所述客户标签数据的数据表。
4.根据权利要求2所述的数据处理方法,其特征在于,所述根据所述哈希值确定用于存储对应的客户标签数据的数据表,包括:
计算所述客户标签数据对应的哈希值与各个数据表的空间位置之间的相对位置比;
获取最小的相对位置比对应的数据表;
判断所述数据表的存储数据量是否达到预设数量;
若所述数据表的存储数据量未达到预设数量,则确定所述数据表为用于存储所述客户标签数据的数据表;
若所述数据表的存储数据量达到预设数量,则从存储数据量未达到预设数量的数据表中获取具有较小的相对位置比对应的数据表,确定所述数据表为用于存储所述客户标签数据的数据表。
5.根据权利要求1所述的数据处理方法,其特征在于,所述创建相应数量的数据表之后,还包括:
利用序号为所述数据表命名;
所述将所述客户标签数据保存在所述数据表中之后,还包括:
接收查询客户标签数据的指令信息,所述指令信息包括客户标签数据的主键字段;
通过所述一致性哈希算法对所述主键字段进行哈希处理得到所述客户标签数据的哈希值;
从所有所述数据表的空间位置中搜索与所述哈希值最接近的空间位置;
获取与所述哈希值最接近的空间位置对应的数据表,在所述数据表中查询所述主键字段对应的客户标签数据;
若在所述数据表中未查询到所述客户标签数据,则根据所述数据表的表名中的序号依次查询剩余的数据表,直至查询到所述客户标签数据。
6.一种数据处理装置,其特征在于,包括:
计算单元,用于根据接收到的客户标签数据的数量计算所需用于保存所述客户标签数据的数据表的数量;
创建单元,用于创建相应数量的数据表;
构建单元,用于构建一致性哈希环;
映射单元,用于将所述数据表均匀地映射至所述一致性哈希环;
获取单元,用于获取每条所述客户标签数据的主键字段;
哈希单元,用于利用一致性哈希算法对所述主键字段进行哈希处理得到对应客户标签数据的哈希值,一个所述哈希值等于所述一致性哈希环上的一个空间值;
确定单元,用于根据所述哈希值确定用于存储对应的客户标签数据的数据表;
保存单元,用于将所述客户标签数据保存在所述数据表中。
7.根据权利要求6所述的数据处理装置,其特征在于,所述映射单元包括:
等分子单元,用于根据所述数据表的数量将所述一致性哈希环进行等分,等分数量与所述数据表的数量相等;
映射子单元,用于获取所述一致性哈希环的所有等分点的空间值,将各个空间值分别作为各个数据表映射在所述一致性哈希环的空间位置。
8.根据权利要求7所述的数据处理装置,其特征在于,所述确定单元包括:
计算子单元,用于计算所述客户标签数据对应的哈希值与各个数据表的空间位置之间的相对位置比;
获取子单元,用于获取最小的相对位置比对应的数据表;
确定子单元,用于确定所述数据表为用于存储所述客户标签数据的数据表。
9.一种数据处理设备,其特征在于,所述数据处理设备包括存储器,以及与所述存储器相连的处理器;
所述存储器,用于存储实现数据处理方法的计算机程序;
所述处理器,用于运行所述存储器中存储的计算机程序,以执行如权利要求1-5任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者一个以上计算机程序,所述一个或者一个以上计算机程序可被一个或者一个以上的处理器执行,以实现如权利要求1至5任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810093886.7A CN108345659B (zh) | 2018-01-31 | 2018-01-31 | 一种数据处理方法、装置、设备及计算机可读存储介质 |
PCT/CN2018/084322 WO2019148672A1 (zh) | 2018-01-31 | 2018-04-25 | 一种数据处理方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810093886.7A CN108345659B (zh) | 2018-01-31 | 2018-01-31 | 一种数据处理方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108345659A true CN108345659A (zh) | 2018-07-31 |
CN108345659B CN108345659B (zh) | 2020-11-24 |
Family
ID=62961731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810093886.7A Active CN108345659B (zh) | 2018-01-31 | 2018-01-31 | 一种数据处理方法、装置、设备及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108345659B (zh) |
WO (1) | WO2019148672A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109189790A (zh) * | 2018-08-23 | 2019-01-11 | 平安科技(深圳)有限公司 | 数据管理方法、装置、计算机设备及存储介质 |
CN109542901A (zh) * | 2018-11-12 | 2019-03-29 | 北京懿医云科技有限公司 | 数据处理方法、装置、计算机可读存储介质及电子设备 |
CN110519408A (zh) * | 2019-08-23 | 2019-11-29 | 赛尔网络有限公司 | 一种ip归属地查询方法、装置、电子设备及存储介质 |
CN111125093A (zh) * | 2019-11-19 | 2020-05-08 | 贝壳技术有限公司 | 一种基于哈希存储的数据处理方法及装置 |
CN111125139A (zh) * | 2019-12-26 | 2020-05-08 | 北京浪潮数据技术有限公司 | 一种多控制器的任务处理方法及相关装置 |
CN111177255A (zh) * | 2019-12-05 | 2020-05-19 | 中国铁道科学研究院集团有限公司电子计算技术研究所 | 一种数据一致性检测方法、装置、存储介质和服务器 |
CN113204556A (zh) * | 2021-05-21 | 2021-08-03 | 山东英信计算机技术有限公司 | 基于低位哈希标签的存储方法、系统、终端及存储介质 |
CN115878331A (zh) * | 2023-02-09 | 2023-03-31 | 苏州浪潮智能科技有限公司 | 一种数据分配方法、装置、设备及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8572091B1 (en) * | 2011-06-27 | 2013-10-29 | Amazon Technologies, Inc. | System and method for partitioning and indexing table data using a composite primary key |
CN105893466A (zh) * | 2016-03-28 | 2016-08-24 | 中国建设银行股份有限公司 | 一种应用于数据库的数据处理方法及系统 |
CN106250226A (zh) * | 2016-08-02 | 2016-12-21 | 福建华渔未来教育科技有限公司 | 基于一致性哈希算法的任务调度机制及系统 |
US20170169248A1 (en) * | 2015-12-10 | 2017-06-15 | Microsoft Technology Licensing, Llc | Enhanced management capabilities for collectable data structures |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130049111A (ko) * | 2011-11-03 | 2013-05-13 | 한국전자통신연구원 | 분산 처리를 이용한 포렌식 인덱스 방법 및 장치 |
JP6221325B2 (ja) * | 2013-04-25 | 2017-11-01 | 株式会社デンソー | データ検索装置、データ検索プログラムおよびデータ検索方法 |
CN106897409A (zh) * | 2017-02-16 | 2017-06-27 | 北京致远互联软件股份有限公司 | 数据分库存储方法及装置 |
-
2018
- 2018-01-31 CN CN201810093886.7A patent/CN108345659B/zh active Active
- 2018-04-25 WO PCT/CN2018/084322 patent/WO2019148672A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8572091B1 (en) * | 2011-06-27 | 2013-10-29 | Amazon Technologies, Inc. | System and method for partitioning and indexing table data using a composite primary key |
US20170169248A1 (en) * | 2015-12-10 | 2017-06-15 | Microsoft Technology Licensing, Llc | Enhanced management capabilities for collectable data structures |
CN105893466A (zh) * | 2016-03-28 | 2016-08-24 | 中国建设银行股份有限公司 | 一种应用于数据库的数据处理方法及系统 |
CN106250226A (zh) * | 2016-08-02 | 2016-12-21 | 福建华渔未来教育科技有限公司 | 基于一致性哈希算法的任务调度机制及系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109189790A (zh) * | 2018-08-23 | 2019-01-11 | 平安科技(深圳)有限公司 | 数据管理方法、装置、计算机设备及存储介质 |
CN109542901A (zh) * | 2018-11-12 | 2019-03-29 | 北京懿医云科技有限公司 | 数据处理方法、装置、计算机可读存储介质及电子设备 |
CN110519408A (zh) * | 2019-08-23 | 2019-11-29 | 赛尔网络有限公司 | 一种ip归属地查询方法、装置、电子设备及存储介质 |
CN111125093A (zh) * | 2019-11-19 | 2020-05-08 | 贝壳技术有限公司 | 一种基于哈希存储的数据处理方法及装置 |
CN111125093B (zh) * | 2019-11-19 | 2023-09-15 | 贝壳技术有限公司 | 一种基于哈希存储的数据处理方法及装置 |
CN111177255A (zh) * | 2019-12-05 | 2020-05-19 | 中国铁道科学研究院集团有限公司电子计算技术研究所 | 一种数据一致性检测方法、装置、存储介质和服务器 |
CN111125139A (zh) * | 2019-12-26 | 2020-05-08 | 北京浪潮数据技术有限公司 | 一种多控制器的任务处理方法及相关装置 |
CN111125139B (zh) * | 2019-12-26 | 2022-04-22 | 北京浪潮数据技术有限公司 | 一种多控制器的任务处理方法及相关装置 |
CN113204556A (zh) * | 2021-05-21 | 2021-08-03 | 山东英信计算机技术有限公司 | 基于低位哈希标签的存储方法、系统、终端及存储介质 |
CN115878331A (zh) * | 2023-02-09 | 2023-03-31 | 苏州浪潮智能科技有限公司 | 一种数据分配方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2019148672A1 (zh) | 2019-08-08 |
CN108345659B (zh) | 2020-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108345659A (zh) | 一种数据处理方法、装置、设备及计算机可读存储介质 | |
JP6403177B1 (ja) | ブロックチェーン・ネットワークにおいてスマートコントラクトを実行可能にするための方法及び当該ネットワークを構成するためのノード | |
CN103198090A (zh) | 用于优化虚拟桌面环境中的存储分配的方法和系统 | |
CN109032803B (zh) | 数据处理方法和装置、客户端 | |
JP2008502067A (ja) | コンピュータ装置においてプラグイン・コード・モジュールを選択する方法 | |
WO2022077186A1 (zh) | 区块链中智能合约的执行方法及装置和电子设备 | |
CN109522332A (zh) | 客户信息数据合并方法、装置、设备及可读存储介质 | |
EP4250593A1 (en) | Satellite terminal access management method, core network, computer apparatus, and storage medium | |
CN109873839A (zh) | 数据访问的方法、服务器与分布式系统 | |
CN109165326A (zh) | 一种字符串匹配方法及装置 | |
CN109617941A (zh) | 数据推送方法、装置、计算机设备及计算机可读存储介质 | |
CN108681493A (zh) | 数据异常检测方法、装置、服务器和存储介质 | |
CN110099112A (zh) | 基于点对点网络的数据存储方法、装置、介质及终端设备 | |
CN105094811A (zh) | 一种事件处理的方法和装置 | |
CN111930363B (zh) | 区块接口代码生成方法、及装置 | |
CN110490724A (zh) | 账户数据的存储方法和装置 | |
CN110442636B (zh) | 一种数据的读写方法、装置及数据读写设备 | |
US9262786B1 (en) | Configuring composite ratebooks | |
CN111858020B (zh) | 用户资源限制方法、装置及计算机存储介质 | |
CN106302374A (zh) | 一种用于提高表项访问带宽和原子性操作的装置及方法 | |
CN108460034A (zh) | 保单分保合约查询匹配方法和装置 | |
CN106713041A (zh) | 会话日志的发送方法及装置 | |
WO2019134222A1 (zh) | Docker镜像库文件存储方法、终端、设备以及存储介质 | |
US11315055B2 (en) | System and method for visualizing an order allocation process | |
CN108376314B (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 |