哈希分区优化方法和装置转让专利

申请号 : CN201710656815.9

文献号 : CN107633001A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘悦周一鸣梁巍张鑫伟张蕊王余涛朱贵伟张召才李金洋张亚超张攀严欢毛彦淇及莉吴之尧徐映霞卢波张扬眉刘春保徐冰刘韬宋博龚燃王帅李博付郁王霄李侃何慧东苑艺赵琪袁菁李帅肖武平张晓鹤宋晶晶赵爽郭晓曦李铁骊王雪瑶

申请人 : 北京空间科技信息研究所

摘要 :

本发明公开了一种哈希分区优化方法和装置。其中,该方法包括:获取数据集,其中,数据集包括一个或多个数据;采用数据倾斜优化算法对数据集进行第一次哈希分区,得到第一哈希分区结果;对第一哈希分区结果进行第二次哈希分区,得到第二哈希分区结果。本发明解决了现有技术中由于数据倾斜造成的哈希分区短板效应的技术问题。

权利要求 :

1.一种哈希分区优化方法,其特征在于,包括:

获取数据集,其中,所述数据集包括一个或多个数据;

采用数据倾斜优化算法对所述数据集进行第一次哈希分区,得到第一哈希分区结果;

对所述第一哈希分区结果进行第二次哈希分区,得到第二哈希分区结果。

2.根据权利要求1所述的方法,其特征在于,所述数据集以键值对的形式进行存储,所述键值对中至少包括所述键值对对应的编号。

3.根据权利要求2所述的方法,其特征在于,采用数据倾斜优化算法对所述数据集进行第一次哈希分区,得到第一哈希分区结果,包括:使用映射线程对所述数据集进行第一次哈希分区,得到第一中间哈希分区结果,其中,所述映射线程用于对所述键值对对应的编号进行哈希计算,得到哈希计算结果,并将所述哈希计算结果相同的所述键值对分配到同一个分区,所述映射线程为一个或多个;

采用数据倾斜优化算法对所述第一中间哈希分区结果进行优化,得到所述第一哈希分区结果。

4.根据权利要求3所述的方法,其特征在于,采用数据倾斜优化算法对所述第一中间哈希分区结果进行优化,得到所述第一哈希分区结果,包括:计算所述第一中间哈希分区结果的平均分区大小;

将所述第一中间哈希分区结果中分区大小大于所述平均分区大小的分区结果按照所述平均分区大小进行拆分。

5.根据权利要求3或4所述的方法,其特征在于,所述映射线程为多个且每个所述映射线程都有一个独立存储空间,所述独立存储空间用于写入所述键值对,使用映射线程对所述数据集进行第一次哈希分区包括:监管每个所述独立存储空间的使用度,当所述使用度超过预设阈值时,为所述使用超过预设阈值的所述独立存储空间分配存储空间。

6.一种哈希分区优化装置,其特征在于,包括:

获取模块,用于获取数据集,其中,所述数据集包括一个或多个数据;

第一分区模块,用于采用数据倾斜优化算法对所述数据集进行第一次哈希分区,得到第一哈希分区结果;

第二分区模块,用于对所述第一哈希分区结果进行第二次哈希分区,得到第二哈希分区结果。

7.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至5中任意一项所述的哈希分区优化方法。

8.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至5中任意一项所述的哈希分区优化方法。

9.一种终端,其特征在于,包括:

获取模块,用于获取数据集,其中,所述数据集包括一个或多个数据;

第一分区模块,用于采用数据倾斜优化算法对所述数据集进行第一次哈希分区,得到第一哈希分区结果;

第二分区模块,用于对所述第一哈希分区结果进行第二次哈希分区,得到第二哈希分区结果;

处理器,所述处理器运行程序,其中,所述程序运行时对于从所述获取模块、所述第一分区模块和所述第二分区模块输出的数据执行权利要求1至5中任意一项所述的哈希分区优化方法。

10.一种终端,其特征在于,包括:

获取模块,用于获取数据集,其中,所述数据集包括一个或多个数据;

第一分区模块,用于采用数据倾斜优化算法对所述数据集进行第一次哈希分区,得到第一哈希分区结果;

第二分区模块,用于对所述第一哈希分区结果进行第二次哈希分区,得到第二哈希分区结果;

存储介质,用于存储程序,其中,所述程序在运行时对于从所述获取模块、所述第一分区模块和所述第二分区模块输出的数据执行权利要求1至5中任意一项所述的哈希分区优化方法。

说明书 :

哈希分区优化方法和装置

技术领域

[0001] 本发明涉及计算机数据处理领域,具体而言,涉及一种哈希分区优化方法和装置。

背景技术

[0002] 哈希分区通常作为数据部署、动态查询处理的常用策略。它可以在处理数据单元时获得高水平的平行操作和缩短响应时间。在包括哈希连接算法和聚合操作等查询处理算法中,使用哈希分区可以有效地获取中间结果。哈希分区的主要目标可以归纳为用数个较小的子任务替代一个较大的母任务。这样做的优势是通过更高效地利用缓存和内存,缩短处理母任务的时间。在数据库查询处理中,哈希分区是一个十分流行的操作;在进行连接处理和聚类处理中,哈希分区能够提升处理性能;在排序处理中,哈希分区是十分重要的环节。Liu等人设计了一种基于分布式查询处理的哈希分区策略,可以有效缩短查询时间。Shin等人针对固态硬盘提出了一种优化的哈希分区方法,该方法忽略主存储大小或输入/输出块的支撑,实现了优于传统哈希分区方法的结果。
[0003] 哈希分区(Hash partitioning)又称散列分区,是通过指定分区编号来实现数据均匀分布的一种分区方法,通过在输入/输出设备上进行哈希分区,当数据达到一定规模时,使得这些分区大小近似一致,进而提高整个查询处理的效率。在不需要进行分区加入或删除的情况下,哈希分区可以有效提高查询的效率。但是当需要进行分区加入或删除的时候,传统的哈希分区方法就会出现问题。假设原来是7个常规哈希分区,现在需要合并或者删除一个常规哈希分区,取模算法由mod7变成mod6,原来7个分区中的数据将需要重新计算重新分区。
[0004] 而对于高度不对称性的数据,例如航天数据,例如虽然中国、俄罗斯、欧洲和印度等国与美国同属航天大国,但由于国力和科技水平的不同,美国的各类航天器数量、制造机构等要远多于等其他国家。这种数据倾斜现象往往会影响到哈希分区等方法的效率,且不能高效地利用多核并行处理器的资源。
[0005] 针对上述现有技术中由于数据倾斜造成的哈希分区短板效应的问题,目前尚未提出有效的解决方案。

发明内容

[0006] 本发明实施例提供了一种哈希分区优化方法和装置,以至少解决现有技术中由于数据倾斜造成的哈希分区短板效应的技术问题。
[0007] 根据本发明实施例的一个方面,提供了一种哈希分区优化方法,包括:获取数据集,其中,数据集包括一个或多个数据;采用数据倾斜优化算法对数据集进行第一次哈希分区,得到第一哈希分区结果;对第一哈希分区结果进行第二次哈希分区,得到第二哈希分区结果。
[0008] 进一步的,数据集以键值对的形式进行存储,键值对中至少包括键值对对应的编号。
[0009] 进一步的,采用数据倾斜优化算法对数据集进行第一次哈希分区,得到第一哈希分区结果,包括:使用映射线程对数据集进行第一次哈希分区,得到第一中间哈希分区结果,其中,映射线程用于对键值对对应的编号进行哈希计算,得到哈希计算结果,并将哈希计算结果相同的键值对分配到同一个分区,映射线程为一个或多个;采用数据倾斜优化算法对第一中间哈希分区结果进行优化,得到第一哈希分区结果。
[0010] 进一步的,采用数据倾斜优化算法对第一中间哈希分区结果进行优化,得到第一哈希分区结果,包括:计算第一中间哈希分区结果的平均分区大小;将第一中间哈希分区结果中分区大小大于平均分区大小的分区结果按照平均分区大小进行拆分。
[0011] 进一步的,映射线程为多个且每个映射线程都有一个独立存储空间,独立存储空间用于写入键值对,使用映射线程对数据集进行第一次哈希分区包括:监管每个独立存储空间的使用度,当使用度超过预设阈值时,为使用超过预设阈值的独立存储空间分配存储空间。
[0012] 根据本发明实施例的另一方面,还提供了一种哈希分区优化装置,包括:获取模块,用于获取数据集,其中,数据集包括一个或多个数据;第一分区模块,用于采用数据倾斜优化算法对数据集进行第一次哈希分区,得到第一哈希分区结果;第二分区模块,用于对第一哈希分区结果进行第二次哈希分区,得到第二哈希分区结果。
[0013] 根据本发明实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述哈希分区优化方法。
[0014] 根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述哈希分区优化方法。
[0015] 根据本发明实施例的另一方面,还提供了一种终端,包括:获取模块,用于获取数据集,其中,数据集包括一个或多个数据;第一分区模块,用于采用数据倾斜优化算法对数据集进行第一次哈希分区,得到第一哈希分区结果;第二分区模块,用于对第一哈希分区结果进行第二次哈希分区,得到第二哈希分区结果;处理器,处理器运行程序,其中,程序运行时对于从获取模块、第一分区模块和第二分区模块输出的数据执行上述哈希分区优化方法。
[0016] 根据本发明实施例的另一方面,还提供了一种终端,包括:获取模块,用于获取数据集,其中,数据集包括一个或多个数据;第一分区模块,用于采用数据倾斜优化算法对数据集进行第一次哈希分区,得到第一哈希分区结果;第二分区模块,用于对第一哈希分区结果进行第二次哈希分区,得到第二哈希分区结果;存储介质,用于存储程序,其中,程序在运行时对于从获取模块、第一分区模块和第二分区模块输出的数据执行上述哈希分区优化方法。
[0017] 在本发明实施例中,通过获取数据集,其中,数据集包括一个或多个数据;采用数据倾斜优化算法对数据集进行第一次哈希分区,得到第一哈希分区结果;对第一哈希分区结果进行第二次哈希分区,得到第二哈希分区结果,达到了对数据进行高效哈希分区的目的,从而实现了减少倾斜数据带给哈希分区的影响,均化每个分区线程所处理的任务量,缓解数据倾斜造成的短板效应,缩短分区返回时间,提高分区效率的技术效果,进而解决了现有技术中由于数据倾斜造成的哈希分区短板效应的技术问题。

附图说明

[0018] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0019] 图1是根据本发明实施例的一种哈希分区优化方法的示意图;
[0020] 图2是根据本发明实施例的一种可选的哈希分区优化方法的示意图;
[0021] 图3是根据本发明实施例的一种可选的哈希分区优化方法的示意图;以及[0022] 图4是根据本发明实施例的一种哈希分区优化装置的示意图。

具体实施方式

[0023] 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0024] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0025] 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0026] 实施例1
[0027] 根据本发明实施例,提供了一种哈希分区优化方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0028] 图1是根据本发明实施例的哈希分区优化方法,如图1所示,该方法包括如下步骤:
[0029] 步骤S102,获取数据集,其中,数据集包括一个或多个数据。
[0030] 具体的,获取数据集之前,方法还包括获取数据的步骤,获取到数据之后,可以将数据进行分块,每一块就是一个数据集,其中,数据可以包括但不限于为航天情报数据。获取数据集的方式可以是从存储有数据集的文件或者存储器中读取获取,例如,数据集可以存储在txt文本文件中。
[0031] 可选的,数据集以键值对的形式进行存储,键值对中至少包括键值对对应的编号。
[0032] 具体的,键值对的表示形式可以是(Key,Value),其中,Key表示键值对所对应的编号,Value表示键值对对应存储的值;当数据集存储在txt文本文件中时,每个键值对(Key,Value)占一行;可以读取txt文件每一行读取输入的键值对,其中每个键值对大小可以为16字节,其中,编号Key可以占8字节,相应的值Value占8字节。
[0033] 步骤S104,采用数据倾斜优化算法对数据集进行第一次哈希分区,得到第一哈希分区结果。
[0034] 可选的,步骤S104中采用数据倾斜优化算法对数据集进行第一次哈希分区,得到第一哈希分区结果,包括:步骤S202,使用映射线程对数据集进行第一次哈希分区,得到第一中间哈希分区结果,其中,映射线程用于对键值对对应的编号进行哈希计算,得到哈希计算结果,并将哈希计算结果相同的键值对分配到同一个分区,映射线程为一个或多个;步骤S204,采用数据倾斜优化算法对第一中间哈希分区结果进行优化,得到第一哈希分区结果。
[0035] 具体的,映射线程的映射哈希函数可以为:fm(Key)=Keymod2HashValue,其中HashValue是预先定义的正整数哈希参数,其取值范围是[1,+∞),在映射线程为多个时,每个映射线程根据映射哈希函数fm(Key)对数据集键值对(Key,Value)中的Key值进行哈希计算,将计算结果相同的键值对分配到同一个分区,第一中间哈希分区结果包括可以共产生t个一次哈希分区,每个分区的大小可以设为R1,R2,…,Rj,…,Rt,其中t≥2,并且R1≤R2≤…≤Rj≤…≤Rt。
[0036] 可选的,步骤S204中采用数据倾斜优化算法对第一中间哈希分区结果进行优化,得到第一哈希分区结果,包括:步骤S302,计算第一中间哈希分区结果的平均分区大小;步骤S304,将第一中间哈希分区结果中分区大小大于平均分区大小的分区结果按照平均分区大小进行拆分。
[0037] 具体的,在第一中间哈希分区结果共产生t个一次哈希分区时,第一哈希分区结果可以共产生a个大小均匀的哈希分区,计算第一中间哈希分区结果的平均分区大小时可以采用如下方式:
[0038] 首先,计算t个一次哈希分区中分区大小排在前k个的分区的累计和:
[0039] 其次,根据上述累计和计算t个一次哈希分区的平均分区大小:如果t个一次哈希分区中的分区Rj≤Rm,则不对该分区进行处理,该分区可以放入等待第二次哈希分区的队列中,准备第二次哈希分区,如果Rj≥Rm,则对该分区进行按照平均分区大小Rm进行拆分,并将拆分后的分区放入等待第二次哈希分区的队列中,准备第二次哈希分区。
[0040] 通过上述步骤204以及步骤S302-步骤S304,可以提高第一次哈希分区结果的均匀化程度,使其适配性更强。
[0041] 可选的,映射线程为多个且每个映射线程都有一个独立存储空间,独立存储空间用于写入键值对,步骤S202中使用映射线程对数据集进行第一次哈希分区包括:步骤S402,监管每个独立存储空间的使用度,当使用度超过预设阈值时,为使用超过预设阈值的独立存储空间分配存储空间。
[0042] 具体的,读取数据集后,还可以将读取的数据集使用哈希存储结构进行存储,本申请中的哈希存储结构可以由一个连续的数组组成,数组的每一位表示一个哈希桶,每一个哈希桶存储某一个分区中的键值对,其中,每个哈希桶由一个空闲指针(free指针)、一段连续的存储空间和一个后继指针(next指针)组成,空闲指针指向该段连续存储空间中的下一个空闲位置,连续的存储空间存储键值对,后继指针指向一个新的哈希桶。
[0043] 具体的,在每个映射线程都有一个独立存储空间的前提下,可以使用如下监管策略来保证映射线程的并线执行以及避免写冲突:每个映射线程并行的只将键值对写入自己的独立存储空间中,映射线程的独立存储空间中有相应的分区区域,最终将所有映射线程的独立存储空间进行合并,得到第一中间哈希分区结果,在这个过程中,可以监管每个映射线程的工作负载,或者监管每个独立存储空间的使用度,当使用度超过预设阈值时,可以为使用超过预设阈值的独立存储空间分配存储空间,直至所有线程执行完毕。
[0044] 步骤S106,对第一哈希分区结果进行第二次哈希分区,得到第二哈希分区结果。
[0045] 具体的,在第一哈希分区结果共产生a个大小均匀的哈希分区时,可以通过化简线程进行分区计算,化简线程可以为一个或多个,其中化简线程的化简哈希函数可以为:frHashValue+1(Key)=Keymod2 ,将a个分区交给化简线程进行分区计算,即由化简线程依据化简哈希函数对每个分区结果中的键值对(Key,Value)中的Key值进行哈希运算,将运算结果相同的键值对分到同一个分区中,由此可以产生b个分区结果,其中,b≥2,共产生a*b个二次哈希分区结果,因此,最终输出a*b个分区结果。
[0046] 在本发明实施例中,通过获取数据集,其中,数据集包括一个或多个数据;采用数据倾斜优化算法对数据集进行第一次哈希分区,得到第一哈希分区结果;对第一哈希分区结果进行第二次哈希分区,得到第二哈希分区结果,达到了对数据进行高效哈希分区的目的,从而实现了减少倾斜数据带给哈希分区的影响,均化每个分区线程所处理的任务量,缓解数据倾斜造成的短板效应,缩短分区返回时间,提高分区效率的技术效果,进而解决了现有技术中由于数据倾斜造成的哈希分区短板效应的技术问题。
[0047] 在一种具体的实施例中,如图2所示,获取到数据集后,可以对数据集进行映射线程的第一次哈希分区,得到t个中间分区,对该t个中间分区进行数据倾斜优化,可以得到a个分区,对该a个分区进行化简线程的哈希分区,最终得到a*b个分区。
[0048] 在一种具体的实施例中,本发明的哈希分区优化方法可以应用在航天领域,在获取到航天情报数据后,基于多CPU多核心并行计算,利用映射线程和化简模线程以及数据倾斜优化算法,将航天情报数据均匀分区并进行并行计算,能够实现多步哈希分区操作,提高了缓存效率,提升多CPU多核心处理器的整体性能。
[0049] 本发明的哈希分区优化方法可以应用在航天领域时,可以通过如下仿真实验进一步说明:
[0050] 1.仿真实验条件:本仿真利用C++编程语言在Linux系统中进行仿真。
[0051] 2.仿真内容:本实验中,输入的航天情报数据集为32M,共32768对键值对,由于航天情报数据是数据倾斜的数据,其倾斜度的齐夫值为1.25,采用传统的哈希存储结构进行存储,映射线程数为16,取多个哈希函数参数HashValue,比较使用数据倾斜优化方法与不使用数据倾斜优化方法进行分区的效率,其结果如图3所示。
[0052] 3.仿真结果:从图3可以看出,在处理数据倾斜的航天情报数据时,使用本发明提出的数据倾斜优化方法相比未使用数据倾斜优化方法的性能有了明显提高。这是因为本发明提出的数据倾斜优化方法可以最大限度地平均分区大小,进而保证每个并行计算的线程的工作量大致相同,缩短了等待时间,可以提高哈希分区效率。
[0053] 实施例2
[0054] 根据本发明实施例,提供了一种哈希分区优化装置的产品实施例,图4是根据本发明实施例的哈希分区优化装置,如图4所示,该装置包括获取模块、第一分区模块和第二分区模块,其中,获取模块,用于获取数据集,其中,数据集包括一个或多个数据;第一分区模块,用于采用数据倾斜优化算法对数据集进行第一次哈希分区,得到第一哈希分区结果;第二分区模块,用于对第一哈希分区结果进行第二次哈希分区,得到第二哈希分区结果。
[0055] 在本发明实施例中,通过获取模块获取数据集,其中,数据集包括一个或多个数据;第一分区模块采用数据倾斜优化算法对数据集进行第一次哈希分区,得到第一哈希分区结果;第二分区模块对第一哈希分区结果进行第二次哈希分区,得到第二哈希分区结果,达到了对数据进行高效哈希分区的目的,从而实现了减少倾斜数据带给哈希分区的影响,均化每个分区线程所处理的任务量,缓解数据倾斜造成的短板效应,缩短分区返回时间,提高分区效率的技术效果,进而解决了现有技术中由于数据倾斜造成的哈希分区短板效应的技术问题。
[0056] 此处需要说明的是,上述获取模块、第一分区模块和第二分区模块对应于实施例1中的步骤S102至步骤S106,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
[0057] 可选的,数据集以键值对的形式进行存储,键值对中至少包括键值对对应的编号。
[0058] 可选的,第一分区模块包括第三分区模块和优化模块,其中,第三分区模块,用于使用映射线程对数据集进行第一次哈希分区,得到第一中间哈希分区结果,其中,映射线程用于对键值对对应的编号进行哈希计算,得到哈希计算结果,并将哈希计算结果相同的键值对分配到同一个分区,映射线程为一个或多个;优化模块,用于采用数据倾斜优化算法对第一中间哈希分区结果进行优化,得到第一哈希分区结果。
[0059] 此处需要说明的是,上述第三分区模块和优化模块对应于实施例1中的步骤S202至步骤S204,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
[0060] 可选的,优化模块包括计算模块和拆分模块,其中,计算模块,用于计算第一中间哈希分区结果的平均分区大小;拆分模块,用于将第一中间哈希分区结果中分区大小大于平均分区大小的分区结果按照平均分区大小进行拆分。
[0061] 此处需要说明的是,上述计算模块和拆分模块对应于实施例1中的步骤S302至步骤S304,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
[0062] 可选的,映射线程为多个且每个映射线程都有一个独立存储空间,独立存储空间用于写入键值对,第三分区模块包括监管模块,用于监管每个独立存储空间的使用度,当使用度超过预设阈值时,为使用超过预设阈值的独立存储空间分配存储空间。
[0063] 此处需要说明的是,上述监管模块对应于实施例1中的步骤S402,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
[0064] 实施例3
[0065] 根据本发明实施例,提供了一种存储介质的产品实施例,该存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述哈希分区优化方法。
[0066] 实施例4
[0067] 根据本发明实施例,提供了一种处理器的产品实施例,该处理器用于运行程序,其中,程序运行时执行上述哈希分区优化方法。
[0068] 实施例5
[0069] 根据本发明实施例,提供了一种终端的产品实施例,该终端包括获取模块、第一分区模块、第二分区模块和处理器,其中,获取模块,用于获取数据集,其中,数据集包括一个或多个数据;第一分区模块,用于采用数据倾斜优化算法对数据集进行第一次哈希分区,得到第一哈希分区结果;第二分区模块,用于对第一哈希分区结果进行第二次哈希分区,得到第二哈希分区结果;处理器,处理器运行程序,其中,程序运行时对于从获取模块、第一分区模块和第二分区模块输出的数据执行上述哈希分区优化方法。
[0070] 实施例6
[0071] 根据本发明实施例,提供了一种终端的产品实施例,该终端包括获取模块、第一分区模块、第二分区模块和存储介质,其中,获取模块,用于获取数据集,其中,数据集包括一个或多个数据;第一分区模块,用于采用数据倾斜优化算法对数据集进行第一次哈希分区,得到第一哈希分区结果;第二分区模块,用于对第一哈希分区结果进行第二次哈希分区,得到第二哈希分区结果;存储介质,用于存储程序,其中,程序在运行时对于从获取模块、第一分区模块和第二分区模块输出的数据执行上述哈希分区优化方法。
[0072] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0073] 在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0074] 在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0075] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0076] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0077] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0078] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。