一种基于Spark的链式多路空间连接查询处理算法的制作方法

文档序号:12786474阅读:来源:国知局

技术特征:

1.一种基于Spark的链式多路空间连接查询处理算法,其特征在于:包括如下步骤:

步骤1:利用网格划分方法,将整个数据空间划分成许多大小相同的网格单元,并采用Z-order填充曲线技术对每个网格单元进行编码;

步骤2:将m(m>2)路空间连接数据集R1,R2,…,Rm中的每个空间对象根据其在数据空间中的位置投影到相应的网格单元,并形成一系列键值对,将投影结果分别存放到弹性分布式数据集RDD1,RDD2,…,RDDm中,设定循环变量i=2,中间结果数据集RDDresultnew=RDD1

步骤3:如果满足条件i<m,则对两个数据集RDDresultnew,RDDi执行空间连接运算Overlap(RDDresultnew,RDDi)。计算过程中,依次进行数据聚集、边界过滤、空间连接计算、重复避免和数据复制等操作,最终形成中间结果数据集RDDresultnew,即RDDresultnew=Overlap(RDDresultnew,RDDi);

步骤4:i=i+1,执行步骤3直到条件i<m不满足为止;

步骤5:执行最后一次空间连接运算Overlap(RDDresultnew,RDDm),计算过程中,依次进行数据聚集、边界过滤、空间连接计算,并将结果直接输出,形成最终空间连接结果集合,并保存到HDFS文件系统。

2.根据权利要求1所述的基于Spark的链式多路空间连接查询处理算法,其特征在于:所述数据划分和编码方法为:采用基于网格的划分方法将整个数据空间划分成n个大小相等的网格单元,采用Z-order填充曲线对网格单元进行编码,空间数据对象根据其位置被投影到各个网格单元,并采用Hash方式将所有网格单元映射给多个Executor执行单元,使得整个处理任务被划分成多个并行的处理任务。

3.根据权利要求1所述的基于Spark的链式多路空间连接查询处理算法,其特征在于:所述空间对象投影为:将空间数据对象根据其所在位置映射到相应的网格单元中,设C=(c1,c2,…,cn)代表一个数据空间划分,ci代表每一个网格单元;设R为一类待连接处理的空间对象集合,若一个空间对象u∈R,其MBR与网格单元ci有交叠,所述ci为网格单元的Z-order编码,则将对象u映射到网格单元ci中,并生成相应键值对(ci,u),如果一个空间对象与多个网格单元有交叠,则相应的会生成多个键值对。

4.根据权利要求1所述的基于Spark的链式多路空间连接查询处理算法,其特征在于:步骤3具体包括以下步骤:

步骤3-1:计算Overlap(RDDresultnew,RDDi),即对RDDresultnew,RDDi按照Key值执行Cogroup操作,即将RDDresultnew和RDDi中的数据根据Key值聚集到一起得到RDDnew

步骤3-2:利用过滤策略对RDDnew进行过滤,去掉不可能有结果的数据对,然后进行实际空间连接运算;

步骤3-3:执行重复避免策略,形成连接中间结果,并对连接中间结果执行数据复制操作,最终形成新的中间连接结果数据集RDDresultnew

5.根据权利要求1所述的基于Spark的链式多路空间连接查询处理算法,其特征在于:步骤5包括以下步骤:

步骤5-1:计算Overlap(RDDresultnew,RDDi),即对RDDresultnew,RDDi按照Key值执行Cogroup操作,即将RDDresultnew和RDDi中的数据根据Key值聚集到一起得到RDDnew

步骤5-2:利用过滤策略对RDDnew进行过滤,去掉不可能有结果的数据对,然后进行实际空间连接运算;

步骤5-3:执行重复避免策略,形成由元组对构成的最终连接结果数据集RDDresultnew,并保存到HDFS文件系统。

6.根据权利要求1所述的基于Spark的链式多路空间连接查询处理算法,其特征在于:所述数据复制操作为:对于当前网格单元上的最近一次空间连接运算所生成的中间连接结果集合T中的任一元组t,若t.s为与下一次空间连接运算相关的空间对象,则若t.s与某一网格单元ci存在交叠,则将元组t复制到网格单元ci,并生成相应的键值对(ci,t)。

7.根据权利要求4所述的基于Spark的链式多路空间连接查询处理算法,其特征在于:所述过滤策略为:在并行执行连接运算的过程中,采用相应过滤策略,去掉不可能产生连接结果的元组,并仅对可能产生连接结果的元组进行复制。

8.根据权利要求7所述的基于Spark的链式多路空间连接查询处理算法,其特征在于:所述过滤策略包括两部分:

边界过滤,所述边界过滤为:在进行连接运算之前,首先统计已经完成的连接中间结果中与后续空间连接相关的空间对象的边界MBR,并利用该MBR来过滤掉后续要连接数据集中与该MBR不相交的空间对象,从而减少后续连接计算代价;

复制阶段过滤,所述复制阶段过滤为:在多路连结查询处理过程中,需要对前几路连接处理之后的中间结果进行数据复制操作,仅将其复制到可能会产生连接结果的其他网格单元中,从而避免连接结果的丢失,在对中间连接结果复制中,仅对包含跨网格连接对象的中间结果进行复制。

9.根据权利要求4所述的基于Spark的链式多路空间连接查询处理算法,其特征在于:所述重复避免策略为:在两个跨多个网格单元的空间对象进行连接时,仅让这两个相交叠而形成的新的对象的左下角交点所在的网格单元负责输出结果。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1