CN103678395B - 一种数据分布方法和管理节点 - Google Patents
一种数据分布方法和管理节点 Download PDFInfo
- Publication number
- CN103678395B CN103678395B CN201210351902.0A CN201210351902A CN103678395B CN 103678395 B CN103678395 B CN 103678395B CN 201210351902 A CN201210351902 A CN 201210351902A CN 103678395 B CN103678395 B CN 103678395B
- Authority
- CN
- China
- Prior art keywords
- rectangle
- sub
- sublist
- big
- sequence number
- 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.)
- Expired - Fee Related
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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
- G06F16/24544—Join order optimisation
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- 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/2282—Tablespace storage structures; Management thereof
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Operations Research (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种数据分布方法和管理节点,其中,所述方法包括:根据收到的交叉连接请求,获取需要进行交叉连接的表A和表B各自包括的子表的数目、子表的序列号、节点的数目和节点的序列号;将表A或表B包括的子表的序列号依次设置在横坐标或纵坐标方向,分别作为大矩形的长或宽,生成一个大矩形;根据构造的方法把所述大矩形分为两个子矩形,分别为第一子矩形和第二子矩形;对所述第一子矩形和第二子矩形分别进行均匀分割,形成若干小矩形,每个小矩形对应一个计算节点的序列号,并且与子表的序列号对应;将各小矩形所对应的子表分布到各小矩形对应的计算节点上。本发明能够减少传输的数据量,减轻网络传输负担。
Description
技术领域
本发明涉及分布式数据管理技术领域,尤其涉及一种数据分布方法和管理节点。
背景技术
通常,使用一台普通的计算机处理几百GB(吉比特)的数据,例如日志文件,往往需要几个小时或者更长的时间,而处理几十TB(太比特)的数据,可能需要几百个小时,处理用时太长,为此,人们采用数据分布的方法来解决上述问题,所述数据分布是指,全部数据的集合称为表,全部数据中的一部分的集合称为子表,一个表包括若干个子表,把若干个子表分布到若干个计算节点上,例如100个计算节点,每个计算节点只负责全部数据中的一部分数据的计算。这样,这些计算节点可以同时进行计算,可以大大减少处理用时。
数据分布系统通常包括一个管理节点和若干计算节点,参见图5所示,管理节点和计算节点通过网络相互连接。管理节点负责数据的分布、计算任务的调度等,管理节点往往与数据存储管理节点、集群管理节点在物理上是重合的,其中数据管理节点记录表的子表数目以及子表的位置等信息,集群管理节点记录节点的地址、内存大小、CPU能力等信息。计算节点负责在本地的硬盘或内存中存储子表,以及执行管理节点分配的任务,并将执行结果保存在本地的硬盘或内存中。所述管理节点和计算节点可以是计算机,也可以是处理器。
例如,{中国所有人的姓名}就是一个表,这个表包括16亿个名字,由于数据量太大了,需要把它分成一些子表,每个子表的姓名总数不超过1万。这样就形成了子表{{姓张的人1},{姓张的人2},...{姓钱的人1},...},一个表包括16万个子表。把这些子表分布到1000个计算节点上,可以把前160个子表存储在第一个计算节点,依此类推,这个过程就是数据分布。把一个子表放到一个计算节点上需要通过网络传输完成,如果一个计算节点存储160个子表,那么,就需要向这个计算节点传输160个子表的数据量,数据量越大网络传输的负担越大。
交叉连接(cross join)是两个表之间的一个标准操作命令,它的功能与日常算术中的乘法比较相近,但cross join是两个表之间的乘积(笛卡儿积)。例如,表1为(5,4),表2为(3,2,6),表1包括5和4两个元素,表2包括3、2、6三个元素。日常算术中5×5=25,但是,(5,4)cross join(3,2,6)的结果可能是(5×3,4×3,5×2,4×2,5×6,4×6)=(15,12,10,8,30,24),或者是(5+3,4+3,5+2,4+2,5+6,4+6)=(8,7,7,6,11,10)。这些实例得到的结果都是一个表,得到的表都包括2×3=6个元素。
假设有两个计算节点,计算节点N1和计算节点N2,如果把上述表1和表2里的元素当作子表,子表{5}、{3}、{2}分布在N1上,子表{4}、{6}分布在N2上。当需要进行两个表之间的cross join计算时,即({5},{4})cross join({3},{2},{6})时,会出现以下问题:完成cross join计算需要进行{5}和{6}、{4}和{3}和{4}和{2}之间的计算,而这两个子表在不同的计算节点上,导致无法进行计算。目前,为了正常进行cross join计算,通常使每个计算节点都存储其中一个表里的所有子表,另一个表里的子集均匀的分布在各计算节点上,例如N1和N2都存储{3}、{2}、{6},N1存储{5},N2存储{4},或者,N1和N2都存储{5}和{4},N1存储{3}、{2},N2存储{6}等数据分布方式。但是现有这种数据分布方式,会使需要传输到计算节点上的数据量很大,网络传输的负担很重,尤其是数据分布的计算节点数量越多,两个表的子表数目接近时,数据量过大的问题更为明显。目前还没有一种能够减少传输的数据量的技术。
发明内容
有鉴于此,本发明的主要目的在于提供一种数据分布方法和管理节点,能够减少传输的数据量,减轻网络传输负担。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种数据分布方法,应用于节点,所述方法包括:
根据收到的交叉连接请求,获取需要进行交叉连接的表A和表B各自包括的子表的数目、子表的序列号、节点的数目和节点的序列号;
将表A或表B包括的子表的序列号依次设置在横坐标或纵坐标方向,分别作为大矩形的长或宽,生成一个大矩形;
根据构造的方法把所述大矩形分为两个子矩形,分别为第一子矩形和第二子矩形;
对所述第一子矩形和第二子矩形分别进行均匀分割,形成若干小矩形,每个小矩形对应一个计算节点的序列号,并且与子表的序列号对应;
将各小矩形所对应的子表分布到各小矩形对应的计算节点上。
优选地,所述根据构造的方法把所述大矩形分为两个子矩形,为,
计算分配到所有计算节点上的表A或表B的子集的理想备份数目Ma或Mb;
根据计算得到的Ma或Mb,得到第一子矩形均匀分割系数Xa1*Xb1和第二子矩形均匀分割系数Xa2*Xb2;
根据得到的Xa1*Xb1和Xa2*Xb2,计算得到大矩形的长或宽的分割点Pa;
根据计算得到的Pa将所述大矩形分为两个子矩形。
优选地,所述根据计算得到的Pa将所述大矩形分为两个子矩形,为,
根据计算得到的Pa,在设置子表的序列号较多的边将所述大矩形分为两个子矩形。
优选地,所述对所述第一子矩形和第二子矩形分别进行均匀分割,为,
根据得到的Xa1*Xb1、Xa2*Xb2,分别对所述第一子矩形和第二子矩形分别进行均匀分割。
本发明提供了一种管理节点,所述管理节点包括:
信息获取单元,用于根据收到的交叉连接请求,获取需要进行交叉连接的表A和表B各自包括的子表的数目、子表的序列号、节点的数目和节点的序列号;
大矩形生成单元,用于将表A或表B包括的子表的序列号依次设置在横坐标或纵坐标方向,分别作为大矩形的长或宽,生成一个大矩形;
大矩形分割单元,用于根据构造的方法把所述大矩形分为两个子矩形,分别为第一子矩形和第二子矩形;
子矩形分割单元,用于对所述第一子矩形和第二子矩形分别进行均匀分割,形成若干小矩形,每个小矩形对应一个计算节点,并且与子表的序列号对应;
分布单元,用于将各小矩形所对应的子表分布到各小矩形对应的计算节点上。
优选地,所述大矩形分割单元包括:
理想备份数目计算子单元,用于计算分配到所有计算节点上的表A或表B的子集的理想备份数目Ma或Mb;
均匀分割系数计算子单元,根据理想备份数目计算子单元计算得到的Ma,得到第一子矩形均匀分割系数Xa1*Xb1和第二子矩形均匀分割系数Xa2*Xb2;
分割点计算子单元,用于根据均匀分割系数计算子单元得到的Xa1*Xb1和Xa2*Xb2,计算得到大矩形的长或宽的分割点Pa;
分割子单元,用于根据分割点计算子单元计算得到的Pa将所述大矩形分为两个子矩形。
优选地,所述分割子单元,具体用于根据分割点计算子单元计算得到的Pa,在设置子表的序列号较多的边将所述大矩形分为两个子矩形。
优选地,所述子矩形分割单元,具体用于根据均匀分割系数计算子单元得到的Xa1*Xb1、Xa2*Xb2,对所述第一子矩形和第二子矩形分别进行均匀分割。
由上可知,本发明的技术方案包括:根据收到的交叉连接请求,获取需要进行交叉连接的表A和表B各自包括的子表的数目、子表的序列号、节点的数目和节点的序列号;将表A或表B包括的子表的序列号依次设置在横坐标或纵坐标方向,分别作为大矩形的长或宽,生成一个大矩形;根据构造的方法把所述大矩形分为两个子矩形,分别为第一子矩形和第二子矩形;对所述第一子矩形和第二子矩形分别进行均匀分割,形成若干小矩形,每个小矩形对应一个计算节的序列号,并且与子表的序列号对应;将各小矩形所对应的子表分布到各小矩形对应的计算节点上;由此,本发明能够减少分布到计算节点上的子集数量,从而减少数据传输量。
附图说明
图1为本发明提供的一种数据分布方法的第一实施例的流程图;
图2为本发明提供的一种管理节点的实施例的结构图;
图3为本发明提供的一种数据分布方法的第二实施例的子表分布示意图;
图4为本发明提供的一种数据分布方法的第三实施例的子表分布示意图;
图5为数据分布系统的结构示意图。
具体实施方式
本发明提供的一种数据分布方法的第一实施例,如图1所示,所述方法包括:
步骤101、根据收到的交叉连接请求,获取需要进行交叉连接的表A和表B各自包括的子表的数目、子表的序列号、节点的数目和节点的序列号;
步骤102、将表A或表B包括的子表的序列号依次设置在横坐标或纵坐标方向,分别作为大矩形的长或宽,生成一个大矩形;
步骤103、根据构造的方法把所述大矩形分为两个子矩形,分别为第一子矩形和第二子矩形;
步骤104、对所述第一子矩形和第二子矩形分别进行均匀分割,形成若干小矩形,每个小矩形对应一个计算节点的序列号,并且与子表的序列号对应;
步骤105、将各小矩形包括的方格所对应的子表分布到各小矩形对应的计算节点上。
较佳地,所述根据构造的方法把所述大矩形分为两个子矩形,可以为,
计算分配到所有计算节点上的表A或表B的子表的理想备份数目Ma或Mb;
根据计算得到的Ma或Mb,得到第一子矩形均匀分割系数Xa1*Xb1和第二子矩形均匀分割系数Xa2*Xb2;
根据得到的Xa1*Xb1和Xa2*Xb2,计算得到大矩形的长或宽的分割点Pa;
根据计算得到的Pa将所述大矩形分为两个子矩形。
较佳地,所述根据计算得到的Pa将所述大矩形分为两个子矩形,可以为,
根据计算得到的Pa,在设置子表的序列号较多的边将所述大矩形分为两个子矩形。
较佳地,所述对所述第一子矩形和第二子矩形分别进行均匀分割,可以为,
根据得到的Xa1*Xb1、Xa2*Xb2,分别对所述第一子矩形和第二子矩形分别进行均匀分割。
本发明提供的一种管理节点的实施例,如图2所示,所述管理节点包括:
信息获取单元,用于根据收到的交叉连接请求,获取需要进行交叉连接的表A和表B各自包括的子表的数目、子表的序列号、节点的数目和节点的序列号;
大矩形生成单元,用于将表A或表B包括的子表的序列号依次设置在横坐标或纵坐标方向,分别作为大矩形的长或宽,生成一个大矩形;
大矩形分割单元,用于根据构造的方法把所述大矩形分为两个子矩形,分别为第一子矩形和第二子矩形;
子矩形分割单元,用于对所述第一子矩形和第二子矩形分别进行均匀分割,形成若干小矩形,每个小矩形对应一个计算节点的序列号,并且与子表的序列号对应;
分布单元,用于将各小矩形包括的方格所对应的子表分布到各小矩形对应的计算节点上。
较佳地,所述大矩形分割单元包括:
理想备份数目计算子单元,用于计算分配到所有计算节点上的表A或表B的子集的理想备份数目Ma或Mb;
均匀分割系数计算子单元,根据理想备份数目计算子单元计算得到的Ma或Mb,得到第一子矩形均匀分割系数Xa1*Xb1和第二子矩形均匀分割系数Xa2*Xb2;
分割点计算子单元,用于根据均匀分割系数计算子单元得到的Xa1*Xb1和Xa2*Xb2,计算得到大矩形的长或宽的分割点Pa;
分割子单元,用于根据分割点计算子单元计算得到的Pa将所述大矩形分为两个子矩形。
较佳地,所述分割子单元,具体用于根据分割点计算子单元计算得到的Pa,在设置子表的序列号较多的边将所述大矩形分为两个子矩形。
较佳地,子矩形分割单元,具体用于根据均匀分割系数计算子单元得到的Xa1*Xb1、Xa2*Xb2,对所述第一子矩形和第二子矩形分别进行均匀分割。
下面结合图3对本发明提供的一种数据分布方法的第二实施例进行介绍,本例中,计算节点的数目Nn为3,计算节点的序列号可以表示为Node1、Node2、Node3;两个表分别表示为表A和表B,其中,表A的子表数目Na为4,表A的子表的序列号可以表示为A1、A2、A3、A4;表B的子表数目Nb为4,表B的子表的序列号可以表示为B1、B2、B3、B4;该方法包括以下步骤:
步骤201、管理节点根据收到的交叉连接请求,获取需要进行交叉连接的表A和表B各自包括的子表的数目、子表的序列号、节点的数目和节点的序列号。
步骤202、将表A或表B包括的子表的序列号依次设置在横坐标或纵坐标方向,分别作为大矩形的长或宽,生成一个由若干方格组成的大矩形,所述方格的数量为表A和表B各自包括的子表的数目的乘积;
本例中,参见图3所示,表A的子表的序列号依次设置在横坐标上,作为长,表B的子表的序列号依次设置在纵坐标上,作为宽,生成一个由16个方格组成的大矩形。
步骤203、根据构造的方法把所述大矩形分为两个子矩形,分别为第一子矩形和第二子矩形;
具体的,包括以下步骤:
步骤2031、计算分配到所有计算节点上的表A或表B的子集的理想备份数目Ma;
这里,需要完成的cross join的总计算量为Na*Nb,一个计算节点可完成的crossjoin的部分计算量为(Ma*Na/Nn)*(Mb*Nb/Nn),那么一个节点可完成的cross join的部分计算量乘以计算节点数目应该大于等于需要完成的cross join的总计算量,即
(Ma*Na/Nn)*(Mb*Nb/Nn)*Nn≥Na*Nb, (1)
根据公式(1)可以得到Ma*Na*Mb*Nb≥Nn*Na*Nb,当数据传输量小时,Ma*Na*Mb*Nb=Nn*Na*Nb;
Ma*Na+Mb*Nb为数据传输量,根据数学原理可知Ma*Na+Mb*Nb≥当Ma*Na=Mb*Nb时,数据传输量最小,
由此得到
步骤2032、根据计算得到的Ma,得到第一子矩形均匀分割系数Xa1*Xb1和第二子矩形均匀分割系数Xa2*Xb2;
具体的,根据方程组:Xa1*Xb1+Xa2*Xb2=Nn (2)
Xa1=Ma的整数部分 (3)
Xa2=Xa1+1 (4)
由于子表的实际备份数目只能为整数,因此需要对Ma进行整数调整以得到整数,本例中,得到Xa1=1,Xa2=2,Xb1=1,Xb2=1,由此得到Xa1*Xb1为1,Xa2*Xb2为2。在实践中,Xb1和Xb2可能分别有多个解,只要分别从两组解中各选取一个解即可。
步骤2033、根据得到的Xa1*Xb1和Xa2*Xb2,计算得到大矩形的长或宽的分割点Pa,所述Pa指的是从左起第几个方格处将所述大矩形进行分割;
具体的,根据公式(5)计算得到Pa的理想值,
Pa理想值=Na*(Xa1*Xb1)/(Xa1*Xb1+Xa2*Xb2) (5)
本例中,Pa理想值=4*(1)/(1+2)=1.3,
当Pa理想值为非整数时,取Pa理想值的整数部分得到Pa,本例中Pa为1。
步骤2034、根据计算得到的Pa将所述大矩形分为两个子矩形,第一子矩形和第二子矩形;
本例中,从左起第一个方格处将所述大矩形分为左右两个子矩形。
步骤204、根据得到的Xa1*Xb1、Xa2*Xb2,对所述第一子矩形和第二子矩形分别进行均匀分割;
本例中,根据1*1将所述第一子矩形进行均匀分割,第一子矩形横坐标方向划分为1等份,第一子矩形纵坐标方向划分为1等份,即不对第一子矩形进行均匀分割;根据2*1将所述第二子矩形进行均匀分割,第二子矩形横坐标方向划分为1等份,第二子矩形纵坐标方向划分为2等份,即将第二子矩形分为上下相等的两个矩形;也可以,第二子矩形横坐标方向划分为1等份,第二子矩形纵坐标方向划分为2等份,即将第二子矩形分为左右相等的两个矩形。
步骤205、将各小矩形包括的方格所对应的子表分布到各小矩形对应的计算节点上。
参见图3所示,将表A的子表A1,表B的子表B1、B2、B3、B4分布到Node1;将表A的子表A2、A3、A4,表B的子表B1、B2分布到Node2;将表A的子表A2、A3、A4,表B的子表B3、B4分布到Node3,由此,本发明只需要传输15个子表的数据量即可;
而采用现有的技术,需要向Node1分布A1、A2、B1、B2、B3、B4;向Node2分布A3、B1、B2、B3、B4;向Node3分布A4、B1、B2、B3、B4;一共需要传输16个子表的数据量,通过对比可知,本发明能够减少数据传输量。
下面结合图4对本发明提供的一种数据分布方法的第三实施例进行介绍,本例中,计算节点的数目Nn为5,计算节点的序列号可以表示为Node1、Node2、Node3、Node4、Node5;两个表分别表示为表A和表B,其中,表A的子表数目Na为5,表A的子表的序列号可以表示为A1、A2、A3、A4、A5;表B的子表数目Nb为6,表B的子表的序列号可以表示为B1、B2、B3、B4、B5、B6;该方法包括以下步骤:
步骤301、管理节点根据收到的交叉连接请求,获取需要进行交叉连接的表A和表B各自包括的子表的数目、子表的序列号、节点的数目和节点的序列号。
步骤302、将表A或表B包括的子表的序列号依次设置在横坐标或纵坐标方向,分别作为大矩形的长或宽,生成一个由若干方格组成的大矩形,所述方格的数量为表A和表B各自包括的子表的数目的乘积,每个方格对应一个表A的子表和一个表B的子表的序列号;
本例中,参见图4所示,表A的子表的序列号依次设置在横坐标上,作为长,表B的子表的序列号依次设置在纵坐标上,作为宽,生成一个由30个方格组成的大矩形。
步骤303、根据构造的方法把所述大矩形分为两个子矩形,分别为第一子矩形和第二子矩形;
具体的,包括以下步骤:
步骤3031、计算分配到所有计算节点上的表A或表B的子集的理想备份数目Ma;
这里,需要完成的cross join的总计算量为Na*Nb,一个计算节点可完成的crossjoin的部分计算量为(Ma*Na/Nn)*(Mb*Nb/Nn),那么一个节点可完成的cross join的部分计算量乘以计算节点数目应该大于等于需要完成的cross join的总计算量,即
(Ma*Na/Nn)*(Mb*Nb/Nn)*Nn≥Na*Nb, (1)
根据公式(1)可以得到Ma*Na*Mb*Nb≥Nn Na*Nb,当数据传输量小时,Ma*Na*Mb*Nb=Nn Na*Nb;
Ma*Na+Mb*Nb为数据传输量,根据数学原理可知Ma*Na+Mb*Nb≥当Ma*Na=Mb*Nb时,数据传输量最小,
由此得到
12285/-1-CP-Z1E
步骤3032、根据计算得到的Ma,得到第一子矩形均匀分割系数Xa1*Xb1和第二子矩形均匀分割系数Xa2*Xb2;
具体的,根据方程组:Xa1*Xb1+Xa2*Xb2=Nn (2)
Xa1=Ma的整数部分 (3)
Xa2=Xa1+1 (4)
本例中,得到Xa1=2,Xa2=3,Xb1=1,Xb2=1,由此得到Xa1*Xb1为2,Xa2*Xb2为3。
步骤3033、根据得到的Xa1*Xb1和Xa2*Xb2,计算得到大矩形的长或宽的分割点Pa;所述Pa指的是从左起第几个方格处将所述大矩形进行分割;
具体的,根据公式(5)计算得到Pa的理想值,
Pa理想值=Na*(Xa1*Xb1)/(Xa1*Xb1+Xa2*Xb2) (5)
本例中,Pa理想值=5*(2)/(2+3)=2,
当Pa理想值为整数时,Pa理想值即为Pa,本例中Pa为2。
步骤3034、根据计算得到的Pa将所述大矩形分为两个子矩形,第一子矩形和第二子矩形;
本例中,从左起第二个方格处将所述大矩形分为左右两个子矩形。
步骤304、根据得到的Xa1*Xb1、Xa2*Xb2,对所述第一子矩形和第二子矩形分别进行均匀分割;
本例中,根据2*1将所述第一子矩形进行均匀分割,第一子矩形横坐标方向划分为1等份,第一子矩形纵坐标方向划分为2等份,即将第一子矩形分为上下相等的两个矩形;根据3*1将所述第二子矩形进行均匀分割,第二子矩形横坐标方向划分为1等份,第二子矩形纵坐标方向划分为3等份,即将第二子矩形分为相等的三个矩形。实践中,也可以,根据2*1将所述第一子矩形进行均匀分割,第一子矩形横坐标方向划分为2等份,第一子矩形纵坐标方向划分为1等份,即将第一子矩形分为左右相等的两个矩形;根据3*1将所述第二子矩形进行均匀分割,第二子矩形横坐标方向划分为3等份,第二子矩形纵坐标方向划分为1等份,即将第二子矩形分为相等的三个矩形。
步骤305、将各小矩形包括的方格所对应的子表分布到各小矩形对应的计算节点上。
参见图4所示,将表A的子表A1、A2,表B的子表B1、B2、B3分布到Node1;将表A的子表A1、A2,表B的子表B4、B5、B6分布到Node2;将表A的子表A3、A4、A5,表B的子表B1、B2分布到Node3;将表A的子表A3、A4、A5,表B的子表B3、B4分布到Node4;将表A的子表A3、A4、A5,表B的子表B5、B6分布到Node5;由此,本发明只需要传输25个子表的数据量即可;
而采用现有的技术,需要向Node1分布A1,B1、B2、B3、B4、B5、B6;向Node2分布A2,B1、B2、B3、B4、B5、B6;向Node3分布A3,B1、B2、B3、B4、B5、B6;向Node4分布A4,B1、B2、B3、B4、B5、B6;向Node5分布A5,B1、B2、B3、B4、B5、B6;一共需要传输35个子表的数据量,通过对比可知,本发明能够减少数据传输量。数据分布的计算节点数量越多,两个表的子表数目越接近时,本发明的效果越显著。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (6)
1.一种数据分布方法,应用于节点,其特征在于,所述方法包括:
根据收到的交叉连接请求,获取需要进行交叉连接的表A和表B各自包括的子表的数目、子表的序列号、节点的数目和节点的序列号;
将表A或表B包括的子表的序列号依次设置在横坐标或纵坐标方向,分别作为大矩形的长或宽,生成一个大矩形;
根据构造的方法把所述大矩形分为两个子矩形,分别为第一子矩形和第二子矩形;
对所述第一子矩形和第二子矩形分别进行均匀分割,形成若干小矩形,每个小矩形对应一个计算节点的序列号,并且与子表的序列号对应;
将各小矩形所对应的子表分布到各小矩形对应的计算节点上;其中,
所述根据构造的方法把所述大矩形分为两个子矩形,为,
计算分配到所有计算节点上的表A或表B的子集的理想备份数目Ma或Mb;
根据计算得到的Ma或Mb,得到第一子矩形均匀分割系数Xa1*Xb1和第二子矩形均匀分割系数Xa2*Xb2;
根据得到的Xa1*Xb1和Xa2*Xb2,计算得到大矩形的长或宽的分割点Pa;
根据计算得到的Pa将所述大矩形分为两个子矩形。
2.根据权利要求1所述的方法,其特征在于,所述根据计算得到的Pa将所述大矩形分为两个子矩形,为,
根据计算得到的Pa,在设置子表的序列号较多的边将所述大矩形分为两个子矩形。
3.根据权利要求1所述的方法,其特征在于,所述对所述第一子矩形和第二子矩形分别进行均匀分割,为,
根据得到的Xa1*Xb1、Xa2*Xb2,分别对所述第一子矩形和第二子矩形分别进行均匀分割。
4.一种管理节点,其特征在于,所述管理节点包括:
信息获取单元,用于根据收到的交叉连接请求,获取需要进行交叉连接的表A和表B各自包括的子表的数目、子表的序列号、节点的数目和节点的序列号;
大矩形生成单元,用于将表A或表B包括的子表的序列号依次设置在横坐标或纵坐标方向,分别作为大矩形的长或宽,生成一个大矩形;
大矩形分割单元,用于根据构造的方法把所述大矩形分为两个子矩形,分别为第一子矩形和第二子矩形;
子矩形分割单元,用于对所述第一子矩形和第二子矩形分别进行均匀分割,形成若干小矩形,每个小矩形对应一个计算节点,并且与子表的序列号对应;
分布单元,用于将各小矩形所对应的子表分布到各小矩形对应的计算节点上;其中,
所述大矩形分割单元包括:
理想备份数目计算子单元,用于计算分配到所有计算节点上的表A或表B的子集的理想备份数目Ma或Mb;
均匀分割系数计算子单元,根据理想备份数目计算子单元计算得到的Ma,得到第一子矩形均匀分割系数Xa1*Xb1和第二子矩形均匀分割系数Xa2*Xb2;
分割点计算子单元,用于根据均匀分割系数计算子单元得到的Xa1*Xb1和Xa2*Xb2,计算得到大矩形的长或宽的分割点Pa;
分割子单元,用于根据分割点计算子单元计算得到的Pa将所述大矩形分为两个子矩形。
5.根据权利要求4所述的管理节点,其特征在于,所述分割子单元,具体用于根据分割点计算子单元计算得到的Pa,在设置子表的序列号较多的边将所述大矩形分为两个子矩形。
6.根据权利要求4所述的管理节点,其特征在于,所述子矩形分割单元,具体用于根据均匀分割系数计算子单元得到的Xa1*Xb1、Xa2*Xb2,对所述第一子矩形和第二子矩形分别进行均匀分割。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210351902.0A CN103678395B (zh) | 2012-09-20 | 2012-09-20 | 一种数据分布方法和管理节点 |
PCT/CN2013/081203 WO2014044092A1 (zh) | 2012-09-20 | 2013-08-09 | 一种数据分布方法和管理节点 |
US14/429,036 US9684692B2 (en) | 2012-09-20 | 2013-08-09 | Data distributing method and management node |
SG11201502128QA SG11201502128QA (en) | 2012-09-20 | 2013-08-09 | Data distributing method and management node |
EP13838776.6A EP2891991B1 (en) | 2012-09-20 | 2013-08-09 | Data distributing method and data distributing system |
IN2976DEN2015 IN2015DN02976A (zh) | 2012-09-20 | 2015-04-09 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210351902.0A CN103678395B (zh) | 2012-09-20 | 2012-09-20 | 一种数据分布方法和管理节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103678395A CN103678395A (zh) | 2014-03-26 |
CN103678395B true CN103678395B (zh) | 2017-07-11 |
Family
ID=50315976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210351902.0A Expired - Fee Related CN103678395B (zh) | 2012-09-20 | 2012-09-20 | 一种数据分布方法和管理节点 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9684692B2 (zh) |
EP (1) | EP2891991B1 (zh) |
CN (1) | CN103678395B (zh) |
IN (1) | IN2015DN02976A (zh) |
SG (1) | SG11201502128QA (zh) |
WO (1) | WO2014044092A1 (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063486A (zh) * | 2010-12-28 | 2011-05-18 | 东北大学 | 一种面向多维数据管理的云计算平台查询处理方法 |
CN102446208A (zh) * | 2011-09-02 | 2012-05-09 | 华东师范大学 | 一种基于分布式的海量遥感影像快速建立金字塔算法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7467125B2 (en) | 2002-12-12 | 2008-12-16 | International Business Machines Corporation | Methods to manage the display of data entities and relational database structures |
US7685193B2 (en) * | 2006-04-28 | 2010-03-23 | Kognitio Limited | Database system with multiple processing nodes |
US8099409B2 (en) | 2008-09-03 | 2012-01-17 | Teradata Us, Inc. | System, method, and computer-readable medium for duplication optimization for parallel join operations on similarly large skewed tables |
US8402016B2 (en) | 2009-05-27 | 2013-03-19 | Hewlett-Packard Development Company, L.P. | Fetching optimization in multi-way pipelined database joins |
JP2011053861A (ja) | 2009-09-01 | 2011-03-17 | Qualitech Inc | 多次元データ表示装置、多次元データ表示プログラム、多次元データ表示方法 |
-
2012
- 2012-09-20 CN CN201210351902.0A patent/CN103678395B/zh not_active Expired - Fee Related
-
2013
- 2013-08-09 WO PCT/CN2013/081203 patent/WO2014044092A1/zh active Application Filing
- 2013-08-09 SG SG11201502128QA patent/SG11201502128QA/en unknown
- 2013-08-09 EP EP13838776.6A patent/EP2891991B1/en active Active
- 2013-08-09 US US14/429,036 patent/US9684692B2/en active Active
-
2015
- 2015-04-09 IN IN2976DEN2015 patent/IN2015DN02976A/en unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063486A (zh) * | 2010-12-28 | 2011-05-18 | 东北大学 | 一种面向多维数据管理的云计算平台查询处理方法 |
CN102446208A (zh) * | 2011-09-02 | 2012-05-09 | 华东师范大学 | 一种基于分布式的海量遥感影像快速建立金字塔算法 |
Non-Patent Citations (1)
Title |
---|
并行数据库查询优化的遗传算法;玄萍;《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》;20050315(第01期);I138-423 * |
Also Published As
Publication number | Publication date |
---|---|
SG11201502128QA (en) | 2015-06-29 |
CN103678395A (zh) | 2014-03-26 |
IN2015DN02976A (zh) | 2015-09-18 |
US9684692B2 (en) | 2017-06-20 |
EP2891991A1 (en) | 2015-07-08 |
US20150254304A1 (en) | 2015-09-10 |
EP2891991B1 (en) | 2017-01-25 |
EP2891991A4 (en) | 2015-09-30 |
WO2014044092A1 (zh) | 2014-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105117171B (zh) | 一种能源scada海量数据分布式处理系统及其方法 | |
CN102457571B (zh) | 一种云存储中数据均衡分布方法 | |
CN104408174B (zh) | 数据库路由装置和方法 | |
CN103164261B (zh) | 多中心数据任务处理方法、装置及系统 | |
US10223437B2 (en) | Adaptive data repartitioning and adaptive data replication | |
US20130031229A1 (en) | Traffic reduction method for distributed key-value store | |
CN105511801B (zh) | 数据存储的方法和装置 | |
CN108897808A (zh) | 一种在云存储系统中进行数据存储的方法及系统 | |
CN106708917A (zh) | 一种数据处理方法、装置以及olap系统 | |
CN109710611B (zh) | 存储表数据的方法、查询表数据的方法、装置及存储介质 | |
CN103246549B (zh) | 一种数据转存的方法及系统 | |
CN107977396A (zh) | 一种KeyValue数据库的数据表的更新方法与表数据更新装置 | |
CN104054076B (zh) | 数据存储方法、数据库存储节点故障处理方法及装置 | |
CN109274710A (zh) | 网络负载均衡方法、装置及集群服务系统 | |
CN107070645A (zh) | 比较数据表的数据的方法和系统 | |
CN107465729A (zh) | 基于访问次数排名的虚拟节点副本调整系统及方法 | |
CN106789147A (zh) | 一种流量分析方法及装置 | |
CN103678395B (zh) | 一种数据分布方法和管理节点 | |
CN108073641A (zh) | 查询数据表的方法和装置 | |
CN110851282B (zh) | 一种基于内存网格的分布式数据计算方法及系统 | |
CN107908713A (zh) | 一种基于Redis集群的分布式动态杜鹃过滤系统及其过滤方法 | |
CN102087655A (zh) | 一种能体现人际关系网的网站系统 | |
CN106685751B (zh) | 网站访问量监测方法和装置 | |
JP5594460B2 (ja) | 送信情報制御装置、方法及びプログラム | |
CN105978714B (zh) | 互联网数据中心的扩容规划方法和扩容规划系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170711 Termination date: 20190920 |