CN106156159A - 一种表连接处理方法、装置和云计算系统 - Google Patents

一种表连接处理方法、装置和云计算系统 Download PDF

Info

Publication number
CN106156159A
CN106156159A CN201510178854.3A CN201510178854A CN106156159A CN 106156159 A CN106156159 A CN 106156159A CN 201510178854 A CN201510178854 A CN 201510178854A CN 106156159 A CN106156159 A CN 106156159A
Authority
CN
China
Prior art keywords
associated key
data
partitions
subregion
key
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
CN201510178854.3A
Other languages
English (en)
Other versions
CN106156159B (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201510178854.3A priority Critical patent/CN106156159B/zh
Publication of CN106156159A publication Critical patent/CN106156159A/zh
Application granted granted Critical
Publication of CN106156159B publication Critical patent/CN106156159B/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
    • G06F16/2282Tablespace storage structures; Management thereof

Abstract

本申请提供了一种表连接处理方法、装置和云计算系统,该方法包括:根据第一表中各关联键对应的数据量在总数据量中的占比以及表连接总分区数确定所述各关联键对应的分区数,该第一表存在数据倾斜;根据所述各关联键对应的分区数为所述各关联键分配相应数量的分区;将所述第一表中各关联键对应的数据划分到对应的分区,将第二表各关联键对应的数据复制到对应分区;将各分区对应的数据传输到所述各分区对应的归约节点,供归约节点进行所述第一表与所述第二表的表连接。采用本申请提供的方案,能够更好地解决表连接中数据倾斜带来的问题。

Description

一种表连接处理方法、装置和云计算系统
技术领域
本申请涉及云计算技术领域,尤其涉及一种表连接处理方法、装置和云计算系统。
背景技术
云计算是当前工业界和学术界关注的热点,目前的云计算系统广泛采用MapReduce分布式计算框架,该框架可以进行大规模数据集的分布式并行计算。利用MapReduce思想构建的分布式计算系统已经被互联网公司广泛应用。
表连接是数据库查询术语,指根据两个或多个表中的列之间的关系,从这些表中查询数据。MapReduce框架在处理表连接时,在映射(map)节点上按照关联键(key值)的哈希值进行分区,相同key值的数据会被分配到同一个分区,并在shuffle过程中被传输到同一个归约(reduce)节点进行处理。当数据均匀时能够高效地进行并行运算,但实际上二八原则是广泛存在的,当某些key值的数据相比其他key值特别多的时候就会出现数据倾斜,处理数据量非常大的少数节点很长时间都不能执行完成,严重影响执行效率。
传统的MapReduce框架采用MapJoin方法和SemiJoin方法处理数据倾斜,但均有一定的适用范围。MapJoin方法要求其中一个表为小表(通常不超过1GB)。SemiJoin适用于两表关联后数据量能大幅度减少的情况。
吴磊的硕士论文《基于hadoop的连接算法中数据倾斜问题的研究》,其处理步骤如下:
1)统计R(A,B)、S(B,C)两表中出现次数特别多的键值,分别生成两个集合L1和L2。
2)将R(A,B)、S(B,C)随机平均分配到k个reduce节点。
3)在每个reducei节点上,将Ri划分为三个集合,第一个集合包含了Ri中所有满足Ri.B∈L1的所有元组,这部分将被保存在本reduce完成处理。第二个集合包含了Ri中所有满足Ri.B∈L2的所有元组,这部分将被广播到所有reduce。第三个集合包含了Ri中剩下的所有元组,这部分将被当做普通hashjoin进行处理。同理将Si划分为三个集合
4)在所有的reducei上完成以下三个join操作:连接连接连接
5)各个reduce将各自得到的三个结果结合在一起写入hdfs,即为最后的结果。
《基于hadoop的连接算法中数据倾斜问题的研究》提供的方案存在如下问题:
1)划分粒度问题:
现有技术只将数据划分为有倾斜和无倾斜,未对倾斜程度做进一步的细分。
2)二次传输问题:
现有技术先将数据进行一轮随机分配到k个reduce节点,再根据划分情况进行一轮数据广播,形成了二次数据传输,会额外消耗网络资源,影响执行效率。如果能一次划分分配到位,可以达到更好效果。
3)广播大量数据问题:
现有技术将倾斜数据广播到所有k个reduce节点,相当于被广播的数据被复制传输了k份,当倾斜数据量较大时,会消耗很多网络资源,严重情况下甚至会得不偿失,达不到优化效果。
可以认为,目前在表连接中处理数据倾斜的方案,均存在一定的问题。
发明内容
本申请实施例提出了一种表连接处理方法、装置和云计算系统,用以更好地解决表连接中数据倾斜带来的问题。
在一个方面,本申请实施例提供了一种表连接处理方法,包括:
根据第一表中各关联键对应的数据量在总数据量中的占比以及表连接总分区数确定所述各关联键对应的分区数,所述第一表存在数据倾斜;
根据所述各关联键对应的分区数为所述各关联键分配相应数量的分区;
将所述第一表中各关联键对应的数据划分到对应的分区,将第二表各关联键对应的数据复制到对应分区;
将各分区对应的数据传输到所述各分区对应的归约节点,供归约节点进行所述第一表与所述第二表的表连接。
在另一个方面,本申请实施例提供了一种表连接处理装置,其特征在于,包括:
分区数确定模块,用于根据第一表中各关联键对应的数据量在总数据量中的占比以及表连接总分区数确定所述各关联键对应的分区数,所述第一表存在数据倾斜;
分区分配模块,用于根据所述各关联键对应的分区数为所述各关联键分配相应数量的分区;
数据分区模块,用于将所述第一表中各关联键对应的数据划分到对应的分区,将第二表各关联键对应的数据复制到对应分区;
数据传输模块,用于将各分区对应的数据传输到所述各分区对应的reduce节点,供归约节点进行所述第一表与所述第二表的表连接。
再一个方面,本申请实施例提供了一种云计算系统,包括主控节点、映射节点和归约节点,其中:
所述主控节点,用于确定表连接总分区数;
所述映射节点,用于根据第一表中各关联键对应的数据量在总数据量中的占比以及表连接总分区数确定所述各关联键对应的分区数,所述第一表存在数据倾斜;根据所述各关联键对应的分区数为所述各关联键分配相应数量的分区;将所述第一表中各关联键对应的数据划分到对应的分区,将第二表各关联键对应的数据复制到对应分区;将各分区对应的数据传输到所述各分区对应的归约节点;
所述归约节点,用于根据接收到的数据进行所述第一表与所述第二表的表连接。
有益效果如下:
在本申请中,在表连接处理中,对存在数据倾斜问题的表,即第一表进行了相应处理,根据第一表中各关联键对应的数据量在总数据量中的占比以及表连接总分区数来确定各关联键对应的分区数,并根据各关联键对应的分区数为各关联键分配相应数量的分区,从而区分了不同关联键的数据量,可以将数据量更大的关联键对应的数据分配给更多的归约节点进行处理,从而避免处理数据量非常大的少数节点很长时间都不能执行完成,严重影响执行效率的问题,使得各个归约节点的处理量比较均匀,提高执行效率。
附图说明
下面将参照附图描述本申请的具体实施例,其中:
图1示出了本申请实施例中表连接处理方法的流程示意图;
图2示出了本申请实施例一表连接处理方法的流程示意图;
图3示出了本申请实施例中表连接处理装置的结构示意图;
图4示出了本申请一个实例中表连接处理装置的结构示意图;
图5示出了本申请一个实例中表连接处理装置的结构示意图;
图6示出了本申请一个实例中表连接处理装置的结构示意图。
具体实施方式
为了使本申请的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。并且在不冲突的情况下,本说明中的实施例及实施例中的特征可以互相结合。
发明人在发明过程中注意到:传统的MapReduce框架采用MapJoin方法和SemiJoin方法处理数据倾斜,均有一定的适用范围。本申请提出的方案作为MapJoin方法和SemiJoin方法的补充,适用于两个大表连接(1GB以上)的情况,且对连接后数据量是否减小无限制。本申请提出的方案尤其适用一个表中存在数据倾斜,另一个表中不存在数据倾斜的情况,例如一个很大的事实表和一个较大的维度表连接,事实表中存在数据倾斜。但是,对于两个表均存在数据倾斜的情况,也能够有一定的改善。本申请提供的方案适用限制较小。
针对《基于hadoop的连接算法中数据倾斜问题的研究》存在的问题,发明人有如下思考:
1)关于划分粒度问题:现有技术只将数据划分为有倾斜和无倾斜,未对倾斜程度做进一步的细分。如果根据每个key值的数据量做进一步的细分,可以达到更好效果。
2)关于二次传输问题:
现有技术先将数据进行一轮随机分配到k个reduce节点,再根据划分情况进行一轮数据广播,形成了二次数据传输,会额外消耗网络资源,影响执行效率。如果能一次划分分配到位,可以达到更好效果。
3)关于广播大量数据问题:
现有技术将倾斜数据广播到所有k个reduce节点,相当于被广播的数据被复制传输了k份,当倾斜数据量较大时,会消耗很多网络资源,严重情况下甚至会得不偿失,达不到优化效果。如果根据倾斜程度,只广播到k个reduce节点的一个子集,则可以减少数据传输量,提高效率。
基于此,本申请实施例提出了一种表连接处理方法、装置和云计算系统,下面进行说明。
图1示出了本申请实施例表连接处理的方法,如图所示,包括:
步骤101,根据第一表中各关联键对应的数据量在总数据量中的占比以及表连接总分区数确定所述各关联键对应的分区数;
该第一表存在数据倾斜。
步骤102,根据所述各关联键对应的分区数为所述各关联键分配相应数量的分区;
步骤103,将所述第一表中各关联键对应的数据划分到对应的分区,将第二表各关联键对应的数据复制到对应分区;
步骤104,将各分区对应的数据传输到所述各分区对应的reduce节点,供reduce节点进行所述第一表与所述第二表的表连接。
有益效果:
在本申请实施例中,在表连接处理中,对存在数据倾斜问题的表,即第一表进行了相应处理,根据第一表中各关联键对应的数据量在总数据量中的占比以及表连接总分区数来确定各关联键对应的分区数,并根据各关联键对应的分区数为各关联键分配相应数量的分区,从而区分了不同关联键的数据量,可以将数据量更大的关联键对应的数据分配给更多的reduce节点进行处理,从而避免处理数据量非常大的少数节点很长时间都不能执行完成,严重影响执行效率的问题,使得各个reduce节点的处理量比较均匀,提高执行效率。
由于本申请实施例的方案统计了存在倾斜的表每个key值的数据量,并根据数据量大小决定划分到1个reduce节点进行处理,还是n个(n≤k,k为进行表连接的reduce节点总数,n值可变)reduce节点进行处理,对倾斜程度进行细粒度的划分,使得reduce节点进行处理时,更加均匀。
由于本申请实施例中,在步骤103将所述第一表中各关联键对应的数据划分到对应的分区,并将第二表各关联键对应的数据复制到对应分区之后,在步骤104一次性将各分区对应的数据传输到所述各分区对应的reduce节点,避免二次传输,避免了额外的网络资源消耗,同样有助于执行效率的提升。
采用本申请实施例的方案,根据每个key值倾斜程度局部广播到n个(n≤k,k为进行表连接的reduce节点总数,n值可变)reduce节点。某key值的数据量越大则n越大,某key值的数据量越小则n越小,从而减小广播的数据量。
进一步地,为了减少运算量,还可以按以下方式实施。
实施中,对所述第一表进行采样,得到采样后各关联键对应的数据行数与采样总数据行数;
计算所述采样后各关联键对应的数据行数与所述采样总数据行数的比值,以所述比值作为所述各关联键对应的数据量在总数据量中的占比。
有益效果:由于对数据进行了采样,减少了运算量,进一步提升了效率,并降低了处理负担。
为了便于本申请的实施,下面以实例进行说明。
实施例一:
图2示出了本申请实施例一表连接处理的方法,如图所示,包括:
步骤201,接收用户指令,根据用户指令确定表R(第一表);
通常出现数据倾斜的情况为一个事实表一个维度表,事实表的外键与维度表的主键进行关联,事实表中容易出现数据倾斜。由用户来指定哪个表中存在数据倾斜,记为第一表(表R),另一个不倾斜的表记为第二表(表S)。用户指定的好处是对于无数据倾斜的情况,可以采用传统连接算法,不必进行任何额外的运算,对于有数据倾斜的情况,可以只收集倾斜表的统计信息,减少运算量。但是在实际操作时,并不限定一定由用户来进行倾斜表的指定,可以通过对两个表分别进行统计处理,确定是否存在某些key值的数据相比其他key值特别多的情况,若存在,则可以确定该表为表R。
本申请提供的方案尤其适用一个表倾斜,另一个表不倾斜的情况,但在实际应用中,也可以应用于两个表均不倾斜或者两个表均倾斜的情况,由用户来指定,可以根据用户的经验进行判断,在应用于两个表均倾斜的情况时,可以从中指定一个作为表R,使得处理过程中能够降低一定的数据倾斜的情况,若不由用户指定,则可以根据对两个表分别进行的统计处理,判断哪个表的数据倾斜更加严重,以此来确定表R。
步骤202,确定进行表连接的reduce节点总数k;
具体可以采用传统方法根据两个源表的大小确定进行表连接的reduce节点总数k,由于进行表连接的reduce节点总数对应了表连接总分区数,因此表连接总分区数也为k。
步骤203,对表R进行随机采样,对采样子集数据进行聚合,统计采样后总行数记为cnt,以及各key值keyi的数据行数,记为(keyi,cnti);
对采样子集数据进行聚合时也会面临数据倾斜问题,但聚合的倾斜处理已有成熟的解决方案,不再详述。
步骤204,根据cnti在cnt中的占比以及表连接总分区数k计算每个key值keyi的分区数ni,保存数据(keyi,ni);
具体可根据公式(1)进行计算:
ni=四舍五入取整(cnti*k/cnt),当ni<1时取为1; (1)
其中,cnt为所述采样总数据行数,cnti为关联键i对应的数据行数,k为所述表连接总分区数。
在保存数据(keyi,ni)时,为了减小存储量,可只保存ni>1的数据。具体为,在确定keyi对应的分区数大于1时,保存相应keyi及其对应的分区数ni,在读取keyi对应的分区数时,若没有keyi的数据,则确定keyi对应的分区数为1。
步骤205,根据各key值的哈希值确定各key值的初始分区pi
具体按照传统哈希方法计算每个key值keyi对应的分区pi
步骤206,根据各key值keyi对应的分区数ni和初始分区pi确定keyi的分区集合{pil,…,Pini};
具体可根据公式(2)进行计算:
Pim=四舍五入取整(pi+(m-1)*k/ni))mod k (2)
其中,ni为关联键i对应的分区数,m为小于等于ni的正整数,k为表连接总分区数,pi为关联键i的初始分区。
在本步骤中,确定分区集合具体算法可以不同,只要能达到根据keyt对应的分区数ni为keyi确定出具体的分区即可。
此外,在具体实现时,不需要一定进行步骤205的初始分区再确定分区集合,直接对分区根据分区数ni进行划分也是可以的。
步骤207,将表R中key值为keyi的每行数据随机划分到{pil,…,pini}中的某个分区,将表S中key值为keyi的每行数据复制到{pil,…,pini}中的每个分区,对相同分区的数据进行合并,生成文件保存;
在具体实现是,表R中key值为keyi的每行数据进行划分时可以如本步骤一样随机划分,从而使得数据更均匀,但也可以采用其他的方式进行划分,只要将表R中key值为keyi的每行数据均匀划分到{pil,…,pini}中的某个分区即可。
本步骤是根据步骤206的分区结果,如果表R中某key值数据量很小则会被传输到1个reduce节点处理,如果某key值数据量大则会被传输到多个reduce节点处理。而表S中的数据会被局部广播到对应的reduce节点处理。
步骤208,将各分区对应的数据传输到各分区对应的reduce节点,供reduce节点进行表R与表S的表连接。
基于同一发明构思,本申请实施例中还提供了一种表连接处理装置,以及一种云计算系统,由于本申请实施例中装置、系统解决问题的原理与一种表连接处理方法相似,因此这些装置、系统的实施可以参见方法的实施,重复之处不再赘述。
如图3所示,本申请实施例中的表连接处理装置可以包括:
分区数确定模块301,用于根据第一表中各关联键对应的数据量在总数据量中的占比以及表连接总分区数确定各关联键对应的分区数,该第一表存在数据倾斜;
分区分配模块302,用于根据各关联键对应的分区数为各关联键分配相应数量的分区;
数据分区模块303,用于将第一表中各关联键对应的数据划分到对应的分区,将第二表各关联键对应的数据复制到对应分区;
数据传输模块304,用于将各分区对应的数据传输到各分区对应的reduce节点,供reduce节点进行第一表与第二表的表连接。
进一步地,如图4所示,该装置还可以包括采样模块401,用于对第一表进行采样,得到采样后各关联键对应的数据行数与采样总数据行数;
分区数确定模块301,用于计算采样后各关联键对应的数据行数与采样总数据行数的比值,以该比值作为各关联键对应的数据量在总数据量中的占比。
进一步地,如图5所示,分区分配模块302可以包括初始分区单元3021和分区集合确定单元3022,其中:
初始分区单元3021,用于根据各关联键的哈希值确定各关联键的初始分区;
分区集合确定单元3022,用于根据各关联键对应的分区数确定各关联键的分区集合。
进一步地,如图6所示,该装置还可以包括用户指令接收单元601,用于接收用户指令,根据用户指令确定第一表。
在具体实现时,上述各进一步增加的内容,可以根据实际需求进行配合采用,例如一个表连接处理装置可以同时具有分区数确定模决301、分区分配模块302、数据分区模块303、数据传输模块304、采样模块401、初始分区单元3021、分区集合确定单元3022和用户指令接收单元601,也可以在图3的基础上增加部分单元或模块,具体的配合可参见方法部分的描述。
本申请实施例提供一种云计算系统,包括主控节点、map节点和reduce节点,其中,主控节点用于确定表连接总分区数,reduce节点用于根据接收到的数据进行第一表与第二表的表连接,其特征在于,map节点包括上述的表连接处理装置。
为了描述的方便,以上所述装置的各部分以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各模块或单元的功能在同一个或多个软件或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

Claims (12)

1.一种表连接处理方法,其特征在于,包括:
根据第一表中各关联键对应的数据量在总数据量中的占比以及表连接总分区数确定所述各关联键对应的分区数,所述第一表存在数据倾斜;
根据所述各关联键对应的分区数为所述各关联键分配相应数量的分区;
将所述第一表中各关联键对应的数据划分到对应的分区,将第二表各关联键对应的数据复制到对应分区;
将各分区对应的数据传输到所述各分区对应的归约节点,供归约节点进行所述第一表与所述第二表的表连接。
2.如权利要求1所述的方法,其特征在于,还包括:
对所述第一表进行采样,对采样子集数据进行聚合,得到采样后各关联键对应的数据行数与采样总数据行数;
计算所述采样后各关联键对应的数据行数与所述采样总数据行数的比值,以所述比值作为所述各关联键对应的数据量在总数据量中的占比。
3.如权利要求2所述的方法,其特征在于,所述根据第一表中各关联键对应的数据量在总数据量中的占比以及总分区数确定所述各关联键对应的分区数包括根据如下公式计算得到所述各关联键对应的分区数:
ni=四舍五入取整(cnti*k/cnt),当ni<1时取为1;
其中,cnt为所述采样总数据行数,cnti为关联键i对应的数据行数,k为所述表连接总分区数。
4.如权利要求1所述的方法,其特征在于,在确定所述各关联键对应的分区数大于1时,保存相应关联键及其对应的分区数;
在读取所述各关联键对应的分区数时,若没有相应关联键的数据,则确定相应关联键对应的分区数为1。
5.如权利要求1所述的方法,其特征在于,所述根据所述各关联键对应的分区数为所述各关联键分配相应数量的分区包括:
根据所述各关联键的哈希值确定所述各关联键的初始分区;
根据所述各关联键对应的分区数确定所述各关联键的分区集合。
6.如权利要求5所述的方法,其特征在于,所述根据所述各关联键对应的分区数确定所述各关联键的分区集合包括根据如下公式计算得到所述各关联键的分区集合:
Pim=四舍五入取整(pi+(m-1)*k/ni))mod k
其中,ni为关联键i对应的分区数,m为小于等于ni的正整数,k为所述表连接总分区数,pi为关联键i的初始分区。
7.如权利要求1所述的方法,其特征在于,还包括:
接收用户指令,根据用户指令确定所述第一表。
8.一种表连接处理装置,其特征在于,包括:
分区数确定模块,用于根据第一表中各关联键对应的数据量在总数据量中的占比以及表连接总分区数确定所述各关联键对应的分区数,所述第一表存在数据倾斜;
分区分配模块,用于根据所述各关联键对应的分区数为所述各关联键分配相应数量的分区;
数据分区模块,用于将所述第一表中各关联键对应的数据划分到对应的分区,将第二表各关联键对应的数据复制到对应分区;
数据传输模块,用于将各分区对应的数据传输到所述各分区对应的归约节点,供归约节点进行所述第一表与所述第二表的表连接。
9.如权利要求8所述的装置,其特征在于,还包括采样模块,用于对所述第一表进行采样,得到采样后各关联键对应的数据行数与采样总数据行数;
所述分区数确定模块,用于计算所述采样后各关联键对应的数据行数与所述采样总数据行数的比值,以所述比值作为所述各关联键对应的数据量在总数据量中的占比。
10.如权利要求8所述的装置,其特征在于,所述分区分配模块包括初始分区单元和分区集合确定单元,其中:
所述初始分区单元,用于根据所述各关联键的哈希值确定所述各关联键的初始分区;
所述分区集合确定单元,用于根据所述各关联键对应的分区数确定所述各关联键的分区集合。
11.如权利要求8所述的装置,其特征在于,还包括用户指令接收单元,用于接收用户指令,根据用户指令确定所述第一表。
12.一种云计算系统,包括主控节点、映射节点和归约节点,所述主控节点用于确定表连接总分区数,所述归约节点用于根据接收到的数据进行所述第一表与所述第二表的表连接,其特征在于,所述映射节点包括如权利要求8-11所述的装置。
CN201510178854.3A 2015-04-16 2015-04-16 一种表连接处理方法、装置和云计算系统 Active CN106156159B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510178854.3A CN106156159B (zh) 2015-04-16 2015-04-16 一种表连接处理方法、装置和云计算系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510178854.3A CN106156159B (zh) 2015-04-16 2015-04-16 一种表连接处理方法、装置和云计算系统

Publications (2)

Publication Number Publication Date
CN106156159A true CN106156159A (zh) 2016-11-23
CN106156159B CN106156159B (zh) 2019-08-16

Family

ID=58058221

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510178854.3A Active CN106156159B (zh) 2015-04-16 2015-04-16 一种表连接处理方法、装置和云计算系统

Country Status (1)

Country Link
CN (1) CN106156159B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106776026A (zh) * 2016-12-19 2017-05-31 北京奇虎科技有限公司 一种分布式数据处理方法及装置
CN107633001A (zh) * 2017-08-03 2018-01-26 北京空间科技信息研究所 哈希分区优化方法和装置
CN108628972A (zh) * 2018-04-25 2018-10-09 咪咕音乐有限公司 一种数据表的处理方法、装置及存储介质
CN108694205A (zh) * 2017-04-11 2018-10-23 北京京东尚科信息技术有限公司 匹配目标字段的方法、装置
CN109408219A (zh) * 2017-08-16 2019-03-01 中国电信股份有限公司 分布式数据接收方法、系统和用于分布式数据接收的装置
CN109992372A (zh) * 2017-12-29 2019-07-09 中国移动通信集团陕西有限公司 一种基于映射归约的数据处理方法及装置
CN110019187A (zh) * 2017-09-12 2019-07-16 阿里巴巴集团控股有限公司 一种数据分配方法、装置及设备
CN110851452A (zh) * 2020-01-16 2020-02-28 医渡云(北京)技术有限公司 数据表连接处理方法及装置、电子设备和存储介质
CN111061712A (zh) * 2019-11-29 2020-04-24 苏宁金融科技(南京)有限公司 一种数据连接操作的处理方法及装置
CN111083189A (zh) * 2018-10-18 2020-04-28 北京京东尚科信息技术有限公司 用于在运行时处理数据倾斜的系统和方法
CN112400164A (zh) * 2018-06-11 2021-02-23 斯诺弗雷克公司 在连接操作中管理数据倾斜的系统、方法和设备
CN113742314A (zh) * 2021-08-06 2021-12-03 紫金诚征信有限公司 数据倾斜矫正方法、装置、计算机设备和存储介质
CN117149717A (zh) * 2023-08-31 2023-12-01 中电云计算技术有限公司 表连接处理方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102629219A (zh) * 2012-02-27 2012-08-08 北京大学 并行计算框架中的Reduce端自适应负载均衡方法
CN104239529A (zh) * 2014-09-19 2014-12-24 浪潮(北京)电子信息产业有限公司 防止Hive数据倾斜的方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102629219A (zh) * 2012-02-27 2012-08-08 北京大学 并行计算框架中的Reduce端自适应负载均衡方法
CN104239529A (zh) * 2014-09-19 2014-12-24 浪潮(北京)电子信息产业有限公司 防止Hive数据倾斜的方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
翟红敏 等: "MapReduce中连接负载均衡优化研究", 《计算机工程与科学》 *
金健 等: "数据倾斜情况下基于MapReduce模型的连接算法研究", 《计算机与现代化》 *

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106776026A (zh) * 2016-12-19 2017-05-31 北京奇虎科技有限公司 一种分布式数据处理方法及装置
CN108694205A (zh) * 2017-04-11 2018-10-23 北京京东尚科信息技术有限公司 匹配目标字段的方法、装置
CN107633001A (zh) * 2017-08-03 2018-01-26 北京空间科技信息研究所 哈希分区优化方法和装置
CN109408219A (zh) * 2017-08-16 2019-03-01 中国电信股份有限公司 分布式数据接收方法、系统和用于分布式数据接收的装置
CN109408219B (zh) * 2017-08-16 2021-04-02 中国电信股份有限公司 分布式数据接收方法、系统和用于分布式数据接收的装置
CN110019187A (zh) * 2017-09-12 2019-07-16 阿里巴巴集团控股有限公司 一种数据分配方法、装置及设备
CN110019187B (zh) * 2017-09-12 2023-05-12 阿里云计算有限公司 一种数据分配方法、装置及设备
CN109992372A (zh) * 2017-12-29 2019-07-09 中国移动通信集团陕西有限公司 一种基于映射归约的数据处理方法及装置
CN108628972B (zh) * 2018-04-25 2020-11-06 咪咕音乐有限公司 一种数据表的处理方法、装置及存储介质
CN108628972A (zh) * 2018-04-25 2018-10-09 咪咕音乐有限公司 一种数据表的处理方法、装置及存储介质
CN112400164A (zh) * 2018-06-11 2021-02-23 斯诺弗雷克公司 在连接操作中管理数据倾斜的系统、方法和设备
CN111083189A (zh) * 2018-10-18 2020-04-28 北京京东尚科信息技术有限公司 用于在运行时处理数据倾斜的系统和方法
CN111083189B (zh) * 2018-10-18 2023-04-18 北京京东尚科信息技术有限公司 用于在运行时处理数据倾斜的系统和方法
CN111061712A (zh) * 2019-11-29 2020-04-24 苏宁金融科技(南京)有限公司 一种数据连接操作的处理方法及装置
CN110851452B (zh) * 2020-01-16 2020-09-04 医渡云(北京)技术有限公司 数据表连接处理方法及装置、电子设备和存储介质
CN110851452A (zh) * 2020-01-16 2020-02-28 医渡云(北京)技术有限公司 数据表连接处理方法及装置、电子设备和存储介质
CN113742314A (zh) * 2021-08-06 2021-12-03 紫金诚征信有限公司 数据倾斜矫正方法、装置、计算机设备和存储介质
CN117149717A (zh) * 2023-08-31 2023-12-01 中电云计算技术有限公司 表连接处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN106156159B (zh) 2019-08-16

Similar Documents

Publication Publication Date Title
CN106156159A (zh) 一种表连接处理方法、装置和云计算系统
Tang et al. An intermediate data placement algorithm for load balancing in spark computing environment
Yildirim et al. Application-level optimization of big data transfers through pipelining, parallelism and concurrency
Yang et al. A hybrid computing method of SpMV on CPU–GPU heterogeneous computing systems
CN107196900A (zh) 一种共识校验的方法及装置
US10565022B2 (en) Systems for parallel processing of datasets with dynamic skew compensation
CN110347515B (zh) 一种适合边缘计算环境的资源优化分配方法
US9813490B2 (en) Scheduled network communication for efficient re-partitioning of data
US10127281B2 (en) Dynamic hash table size estimation during database aggregation processing
CN109726004B (zh) 一种数据处理方法及装置
CN108804383B (zh) 基于度量空间的支撑点并行枚举方法及装置
CN112346871A (zh) 一种请求处理方法及微服务系统
CN108345643A (zh) 一种数据处理方法及装置
CN111563070A (zh) 一种Hash算法的结果存储的方法和设备
Berlińska et al. Comparing load-balancing algorithms for MapReduce under Zipfian data skews
Komarasamy et al. A novel approach for Dynamic Load Balancing with effective Bin Packing and VM Reconfiguration in cloud
CN110046638A (zh) 多平台间数据的融合方法、装置及设备
CN107395708A (zh) 一种处理下载请求的方法和装置
CN110505276B (zh) 对象匹配方法、装置及系统、电子设备及存储介质
CN110069319B (zh) 一种面向朵云资源管理的多目标虚拟机调度方法及系统
CN106612296A (zh) 一种用户设备连接请求分配的方法及装置
CN106294445A (zh) 基于跨机房Hadoop集群的数据存储的方法及装置
Hassan et al. An efficient parallel algorithm for evaluating join queries on heterogeneous distributed systems
CN110908800B (zh) 边云协同环境中基于调度熵的调度优化方法
Berenbrink et al. Balls into non-uniform bins

Legal Events

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