一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种空间连接查询方法、装置、电子设备及存储介质与流程

2021-12-01 00:48:00 来源:中国专利 TAG:


1.本技术涉及空间数据分析技术领域,特别涉及一种空间连接查询方法、装置、一种电子设备及一种存储介质。


背景技术:

2.空间数据中蕴藏着丰富的价值,空间数据分析技术是空间数据挖掘的基础。空间连接查询是空间分析技术中重要的操作,通过空间连接查询可以确定多个空间数据集在空间上相交的几何对象。
3.在相关技术中,主要通过空间分区操作和并行计算操作来实现空间连接查询,在空间分区过程中通常按照一定的采样率从空间数据集中抽取样本集,并利用样本集的空间分布近似表示全量数据的空间分布,以便得到需要进行并行计算操作空间分区数据。但是,上述方式得到的空间分区数据存在较多无效数据,空间连接查询效率较低。
4.因此,如何提高空间连接查询效率是本领域技术人员目前需要解决的技术问题。


技术实现要素:

5.本技术的目的是提供一种空间连接查询方法、装置、一种电子设备及一种存储介质,能够提高空间连接查询效率。
6.为解决上述技术问题,本技术提供一种空间连接查询方法,该空间连接查询方法包括:
7.获取第一空间数据的第一弹性分布式数据集和第二空间数据的第二弹性分布式数据集;其中,所述第一弹性分布式数据集和所述第二弹性分布式数据集包括多个空间分区;
8.对所述空间分区创建多叉树空间索引,并根据所述多叉树空间索引统计几何对象空间分布信息,得到所述第一弹性分布式数据集的全局空间分布信息和第二弹性分布式数据集的全局空间分布信息;
9.根据所述全局空间分布信息确定所述第一弹性分布式数据集和所述第二弹性分布式数据集的相交空间分区;
10.将所述第一空间数据和所述第二空间数据中与所述相交空间分区对应的数据设置为目标数据,并对所述目标数据进行空间连接计算。
11.可选的,对所述空间分区创建多叉树空间索引,并根据所述多叉树空间索引统计几何对象空间分布信息,包括:
12.对所述空间分区创建四叉树空间索引,以便将所述空间分区划分为多个子空间;
13.根据所述四叉树空间索引查询每一所述子空间中目标几何对象的数量,得到几何对象空间分布信息;其中,所述子空间为包含所述目标几何对象的最小子空间。
14.可选的,对所述空间分区创建四叉树空间索引包括:
15.利用spark引擎对所有所述空间分区并行创建所述四叉树空间索引。
16.可选的,根据所述多叉树空间索引统计几何对象空间分布信息,得到所述第一弹性分布式数据集的全局空间分布信息和第二弹性分布式数据集的全局空间分布信息,包括:
17.根据所述多叉树空间索引统计每一所述空间分区对应的几何对象空间分布信息;
18.对所有所述空间分区对应的几何对象空间分布信息进行聚合得到所述第一弹性分布式数据集的全局空间分布信息和第二弹性分布式数据集的全局空间分布信息。
19.可选的,根据所述全局空间分布信息确定所述第一弹性分布式数据集和所述第二弹性分布式数据集的相交空间分区,包括:
20.根据所述全局空间分布信息逐级确定对等节点;其中,所述对等节点为所述第一弹性分布式数据集和所述第二弹性分布式数据集对应的全局空间分布信息中路径相同的节点;
21.根据所述对等节点中每一节点的统计值对所述对等节点进行筛选,得到所述第一弹性分布式数据集和所述第二弹性分布式数据集的相交空间分区;其中,所述统计值为统计所述几何对象空间分布信息的统计结果。
22.可选的,根据所述对等节点中每一节点的统计值对所述对等节点进行筛选,得到所述第一弹性分布式数据集和所述第二弹性分布式数据集的相交空间分区,包括:
23.若所述对等节点包括一个叶子节点和一个非叶子节点,则判断所述叶子节点和所述叶子节点的父节点的统计值是否均为0;若否,则将所述对等节点对应的空间分区设置为所述第一弹性分布式数据集和所述第二弹性分布式数据集的相交空间分区;
24.若所述对等节点包括两个非叶子节点,则执行根据所述全局空间分布信息逐级确定对等节点的操作;
25.若所述对等节点包括两个叶子节点,则判断两个叶子节点的统计值是否均不为0;若是,则将所述对等节点对应的空间分区设置为所述第一弹性分布式数据集和所述第二弹性分布式数据集的相交空间分区。
26.可选的,将所述第一空间数据和所述第二空间数据中与所述相交空间分区对应的数据设置为目标数据,包括:
27.确定所述相交空间分区对应的目标空间范围;
28.从所述全局空间分布信息的根节点自顶向下查询所述第一空间数据和所述第二空间数据中与所述目标空间范围相交的几何对象;
29.将与所述目标空间范围相交的几何对象的空间数据设置为所述目标数据。
30.本技术还提供了一种空间连接查询装置,该装置包括:
31.数据集获取模块,用于获取第一空间数据的第一弹性分布式数据集和第二空间数据的第二弹性分布式数据集;其中,所述第一弹性分布式数据集和所述第二弹性分布式数据集包括多个空间分区;
32.空间分布信息获取模块,用于对所述空间分区创建多叉树空间索引,并根据所述多叉树空间索引统计几何对象空间分布信息,得到所述第一弹性分布式数据集的全局空间分布信息和第二弹性分布式数据集的全局空间分布信息;
33.相交空间确定模块,用于根据所述全局空间分布信息确定所述第一弹性分布式数据集和所述第二弹性分布式数据集的相交空间分区;
34.空间连接查询模块,用于将所述第一空间数据和所述第二空间数据中与所述相交空间分区对应的数据设置为目标数据,并对所述目标数据进行空间连接计算。
35.本技术还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述空间连接查询方法执行的步骤。
36.本技术还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述空间连接查询方法执行的步骤。
37.本发明提供了一种空间连接查询方法,包括:获取第一空间数据的第一弹性分布式数据集和第二空间数据的第二弹性分布式数据集;其中,所述第一弹性分布式数据集和所述第二弹性分布式数据集包括多个空间分区;对所述空间分区创建多叉树空间索引,并根据所述多叉树空间索引统计几何对象空间分布信息,得到所述第一弹性分布式数据集的全局空间分布信息和第二弹性分布式数据集的全局空间分布信息;根据所述全局空间分布信息确定所述第一弹性分布式数据集和所述第二弹性分布式数据集的相交空间分区;将所述第一空间数据和所述第二空间数据中与所述相交空间分区对应的数据设置为目标数据,并对所述目标数据进行空间连接计算。
38.本技术获取空间数据的弹性分布式数据集,对弹性分布式数据集中的空间分区创建多叉树空间索引以便将空间分区细分为多个子空间。通过对几何对象空间分布信息进行统计可以得到用于描述弹性分布式数据集中几何对象的分布情况的全局空间分布信息。本技术基于第一弹性分布式数据集和所述第二弹性分布式数据集的全局空间分布信息确定相交空间分区,并根据相交空间分区确定需要执行空间连接查询的目标数据。由于只有相交空间分区中的几何对象才会存在连接,上述方案能够滤除空间数据中对空间连接查询没有贡献的无效数据,降低空间连接查询操作的计算量,进而提高了空间连接查询效率。本技术同时还提供了一种空间连接查询装置、一种电子设备和一种存储介质,具有上述有益效果,在此不再赘述。
附图说明
39.为了更清楚地说明本技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
40.图1为本技术实施例所提供的一种空间连接查询结果示意图;
41.图2为基于spark的空间连接查询方法的原理示意图;
42.图3为本技术实施例所提供的一种空间分区过滤算法的结果示意图;
43.图4为本技术实施例所提供的一种空间连接查询系统的结构示意图;
44.图5为本技术实施例所提供的一种空间连接查询方法的流程图;
45.图6为本技术实施例所提供的几何对象空间分布信息示意图;
46.图7为本技术实施例所提供的空间分区的索引和几何空间分布信息的生成示意图;
47.图8为本技术实施例所提供的一种全局空间分布信息的获取原理示意图;
48.图9为本技术实施例所提供的一种确定相交空间分区的原理示意图;
49.图10为本技术实施例所提供的一种相交空间分区确定的过程的示意图;
50.图11为本技术实施例所提供的一种目标数据确定方法的流程图;
51.图12为本技术实施例所提供的一种在四叉树索引中查询目标数据的原理示意图;
52.图13为本技术实施例所提供的一种空间连接查询装置的结构示意图;
53.图14为本技术实施例所提供的一种电子设备的结构图。
具体实施方式
54.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
55.随着信息化进程的推进和移动互联设备的广泛使用,海量的带有空间位置信息的数据也随之产生。随着分布式技术的发展,日趋成熟的分布式数据库、分布式计算引擎等框架为海量空间数据的存储和分析提供了分布式解决方案,spark分布式计算引擎为空间大数据的分析提供了丰富的空间算子,包括空间拓扑关系查询、空间范围查询、空间最近邻查询和空间连接查询等。空间连接查询指对于空间数据集q中的每个几何对象q,查询在空间数据集s中与q在空间上相交的几何对象s,最终返回几何对象二元组(q,s)的集合。如图1所示,图1为本技术实施例所提供的一种空间连接查询结果示意图,几何对象s
1~5
和q
1~5
的空间连接记为{(q1,s1),(q2,s2),(q2,s3),(q3,s4)}。图1中x和y表示水平方向的竖直方向。
56.现有的spark分布式空间连接查询技术的实现方法可概括为两个阶段:空间分区和并行计算。如图2所示,图2为基于spark的空间连接查询方法的原理示意图。如图2(a)所示,在空间分区阶段,首先利用spark的sample算子从数据集s中以采样率p抽取样本集s',然后用样本集s'的空间分布近似表示全量数据s的空间分布,并依据样本的疏密对整个空间范围利用quad

tree、r

tree或kd

tree等空间索引算法进行划分,生成小范围的空间分区,以确保每个空间分区内的数据量尽量相同,之后利用spark的repartition算子将数据集q和s中的几何对象投影到与之相交的空间分区内,每个空间分区的数据组成spark rdd(resilient distributed dataset,弹性分布式数据集)的一个partition(空间分区)。如图2(b)所示,在并行计算阶段,利用spark的zippartitions算子将两个数据集的弹性分布式数据集转换成一个复合弹性分布式数据集,来自相同空间分区的数据汇聚到同一个partition,然后利用传统单机版的空间连接查询算法进行并行计算(parallel computing),对每个partition内来自q和s的空间对象执行空间连接查询,生成二元组集合tuples,最后将运算结果输出到分布式文件系统hdfs中。
57.上述传统的基于spark的空间连接查询方案用数据集s的样本集s'的空间疏密情况作为划分空间分区的依据,但是样本集s'的空间分布不能完全代表全量数据集s的空间分布,更不能代表全量数据集q的空间分布,从而导致每个空间分区内,来自s的数据和来自q的数据的疏密情况可能相差甚远。
58.请参见图3,图3为本技术实施例所提供的一种空间分区过滤算法的结果示意图,数据集q和s在同一个分区(存在斜线的方框)内都有数据,但是s在分区内的分布密集而q在分区内的分布稀疏,最终两个数据集在分区内相交部分的空间范围要远小于分区的空间范
围。由此可见,上述基于spark的空间连接查询方案在空间分区阶段未过滤掉对最终结果没有贡献的无效数据,导致大量的无效数据参与了空间连接计算流程。对无效数据的计算和传输会造成cpu、内存和网络资源的大量浪费,将会导致空间连接查询的计算过程耗时较长。为解决上述传统方案中存在的缺陷,本技术提供了以下几种新的空间连接查询方案,能够去除无效数据并提高空间连接查询效率。
59.请参见图4,图4为本技术实施例所提供的一种空间连接查询系统的结构示意图,该空间连接查询系统可以包括数据库401、计算装置402和结果显示装置403。其中,数据库401中可以存储有多种几何对象的空间数据,例如可以包括某一区域的铁路分布空间数据、河流分布空间数据、公路分布空间数据等。计算装置402可以从数据库401中获取2种以上几何对象的空间数据,进而确定几何对象之间的空间连接情况。具体的,计算装置402在接收到空间数据之后可以先后执行空间分区操作和并行计算操作,在执行空间分区操作时根据空间数据中几何对象的空间分布信息确定相交空间分区,进而将相交空间分区的空间数据作为并行计算的输入数据。上述过程仅对相交空间分区进行计算,能够减少空间连接查询过程中对无效数据的计算,提高空间连接查询效率。计算装置402在得到了空间连接查询结果之后,可以通过结果显示装置403进行显示,以便用户进行观察和分析。
60.下面请参见图5,图5为本技术实施例所提供的一种空间连接查询方法的流程图。
61.具体步骤可以包括:
62.s501:获取第一空间数据的第一弹性分布式数据集和第二空间数据的第二弹性分布式数据集;
63.其中,在本步骤之前还可以存在获取第一空间数据和第二空间数据的操作,空间数据为用于描述某一种几何对象(如山川、河流、公路、森林等)的空间分布状况的数据。具体的,第一空间数据为描述第一几何对象的空间分布状况的数据,第二空间数据为描述第二几何对象的空间分布状况的数据。
64.本实施例可以通过安装有spark引擎的电子设备用弹性分布式数据集分别表示第一空间数据和第二空间数据,进而得到第一空间数据的第一弹性分布式数据集和第二空间数据的第二弹性分布式数据集。弹性分布式数据集中可以包括多个空间分区(partition),即本实施例中提到的第一弹性分布式数据集和第二弹性分布式数据集分别包括多个空间分区。
65.s502:对所述空间分区创建多叉树空间索引,并根据所述多叉树空间索引统计几何对象空间分布信息,得到所述第一弹性分布式数据集的全局空间分布信息和第二弹性分布式数据集的全局空间分布信息;
66.其中,在得到第一弹性分布式数据集和第二弹性分布式数据集之后,本步骤对上述两个的弹性分布式数据集包括的空间分区执行创建多叉树空间索引的操作。多叉树索引的基本思想是将地理空间递归划分为不同层次的树结构,具体的多叉树空间索引可以将已知范围的空间等分成多个相等的子空间,如此递归下去,直至树的层次达到一定深度或者满足预设要求后停止分割。作为一种可行的实施方式,本实施例可以对所述空间分区创建二叉树空间索引、四叉树空间索引或八叉树空间索引,以便将空间分区划分为多个子空间。
67.进一步的,本技术还可以根据所述多叉树空间索引统计几何对象空间分布信息,上述几何对象空间分布信息具体为几何对象在创建多叉树空间索引后的子空间内的分布
状况。通过根据所述多叉树空间索引统计几何对象空间分布信息可以确定每一分区空间的几何对象空间分布信息,本技术可以通过对弹性分布式数据集包括的所有分区空间的几何对象空间分布信息进行聚合得到第一弹性分布式数据集的全局空间分布信息和第二弹性分布式数据集的全局空间分布信息。全局空间分布信息指第一空间数据或第二空间数据中全部几何对象的分布信息。
68.s503:根据全局空间分布信息确定第一弹性分布式数据集和第二弹性分布式数据集的相交空间分区;
69.其中,在得到全局空间分布信息之后,本实施例可以将第一弹性分布式数据集的全局空间分布信息和第二弹性分布式数据集的全局空间分布信息进行对比,得到二者的相交空间分区。相交空间分区指第一弹性分布式数据集和第二弹性分布式数据集中均存在几何对象的同一区域。例如,根据第一弹性分布式数据集的全局空间分布信息可知在a、b、c三个区域存在公路,根据第二弹性分布式数据集的全局空间分布信息可知在b、c、d三个区域存在河流,故二者的相交空间分区为b区域和c区域。
70.s504:将第一空间数据和第二空间数据中与相交空间分区对应的数据设置为目标数据,并对所述目标数据进行空间连接计算。
71.可以理解的是,相交空间分区为包括几何对象的区域,两种几何对象发生空间连接的位置处于相交空间分区中,相交空间分区之后的区域不存在空间连接。本技术将第一空间数据和第二空间数据中与相交空间分区对应的数据设置为目标数据,相当于滤除了相交空间分区之外其他区域的空间数据,降低了参与空间连接查询操作的无效数据比例,提高了空间连接查询的效率。本实施例在空间分区阶段过滤掉无效数据,可大大精简参与后续计算流程的数据量,进而减少了机器之间的数据传输和计算资源的压力,使整个计算流程更轻便,大幅提高查询计算效率,缩短计算时长。
72.本实施例获取空间数据的弹性分布式数据集,对弹性分布式数据集中的空间分区创建多叉树空间索引以便将空间分区细分为多个子空间。通过对几何对象空间分布信息进行统计可以得到用于描述弹性分布式数据集中几何对象的分布情况的全局空间分布信息。本实施例基于第一弹性分布式数据集和所述第二弹性分布式数据集的全局空间分布信息确定相交空间分区,并根据相交空间分区确定需要执行空间连接查询的目标数据。由于只有相交空间分区中的几何对象才会存在连接,上述方案能够滤除空间数据中对空间连接查询没有贡献的无效数据,降低空间连接查询操作的计算量,进而提高了空间连接查询效率。
73.作为对于上述实施例中创建多叉树空间索引和统计几何对象空间分布信息过程的进一步介绍,可以将以下操作与上述实施例相结合得到进一步的实施方式:对所述空间分区创建四叉树空间索引,以便将所述空间分区划分为多个子空间;根据所述四叉树空间索引查询每一所述子空间中目标几何对象的数量,得到几何对象空间分布信息;其中,所述子空间为包含所述目标几何对象的最小子空间。
74.在上述过程中,根据创建四叉树空间索引后每一子空间内包含的目标集合对象数量作为几何对象空间分布信息。上述过程通过统计子空间中完全包含的目标几何对象数量得到几何对象空间分布信息,所述“完全包含”指当前进行统计的子空间为包含所述目标几何对象的最小子空间。请参见图6,图6为本技术实施例所提供的几何对象空间分布信息示意图,图6(a)中最大的实线矩形框包括的目标几何对象数量为1,小矩形框包括的目标几何
对象数量为0;图6(b)中左上角的小矩形框包括的目标几何对象数量为1,其余小矩形框和最大的实线矩形框包括的目标几何对象数量为0。
75.请参见图7,图7为本技术实施例所提供的空间分区的索引和几何空间分布信息的生成示意图。如图7所示,本实施例可以利用spark的并行计算能力,对每个空间分区创建本地四叉树索引,并从索引中提取空间数据的分布情况。如图7(a)所示,一个空间可递归地划分为4个子空间,每个几何对象位于包含该对象的最小子空间中。如图7(b)所示,从索引中提取出几何对象的空间分布情况,即统计每个子空间内的几何对象数量(即图7矩形中的数字)。具体的,在将一个空间可递归地划分为4个子空间的过程中,可以根据得到的子空间中包含的数据量判断是否继续执行划分为4个子空间的操作。若子空间中包含的数据量小于预设值,则可以停止对该空间可递归地划分为4个子空间的操作。
76.为了降低网络传输的数据量,本实施例还可以对每个空间分区中的统计结果进行了序列化编码,编码原理是利用树的先序遍历算法收集每个节点的统计值,用

#’符号标识叶子节点的统计值,然后将每个节点的统计值用逗号拼接成一个字符串。例如图7(b)中的统计值的字符串为:1,1,#0,#1,#0,#1,#2,1,#0,#1,#1,#0,#1。
77.作为对于上述实施例中创建多叉树空间索引和统计几何对象空间分布信息过程的进一步介绍,本实施例可以根据多叉树空间索引统计每一所述空间分区对应的几何对象空间分布信息;对所有所述空间分区对应的几何对象空间分布信息进行聚合得到所述第一弹性分布式数据集的全局空间分布信息和第二弹性分布式数据集的全局空间分布信息。具体的,可以通过将相同路径的节点的统计值相加聚合得到全局空间分布信息。请参见图8,图8为本技术实施例所提供的一种全局空间分布信息的获取原理示意图,本实施例可以利用spark的collect算子将每个空间分区中的空间分布信息的编码收集到一起,然后解码并聚合生成整个数据集的全局空间分布信息。如图8所示,左边是每个空间分区的空间分布信息,右边是聚合生成整个数据集的全局空间分布信息。
78.作为对于上述实施例中确定第一弹性分布式数据集和第二弹性分布式数据集的相交空间分区的进一步介绍,本实施例可以通过以下方式获取相交空间分区:根据所述全局空间分布信息逐级确定对等节点;根据所述对等节点中每一节点的统计值对所述对等节点进行筛选,得到所述第一弹性分布式数据集和所述第二弹性分布式数据集的相交空间分区。
79.上述对等节点为第一弹性分布式数据集和所述第二弹性分布式数据集对应的全局空间分布信息中路径相同的节点。对等节点在第一弹性分布式数据集和所述第二弹性分布式数据集中具有相同的层级和位置。上述统计值为统计所述几何对象空间分布信息的统计结果,即节点对应的空间分区中目标几何对象的数量。
80.请参见图9,图9为本技术实施例所提供的一种确定相交空间分区的原理示意图。如图9所示本实施例可以得到第一弹性分布式数据集的全局空间分布信息和所述第二弹性分布式数据集的全局空间分布信息,通过对两个数据集的全局空间分布信息进行计算,便可获得两个数据集相交的空间分区(即图9中填充斜线的矩形)。为了便于空间分区信息在网络间传输,本实施例还可以用每个分区从根节点到叶子节点所经过的路径标识该分区。
81.具体的,本实施例可以按照以下三条规则对等节点进行筛选:
82.规则1:若所述对等节点包括一个叶子节点和一个非叶子节点,则判断所述叶子节
点和所述叶子节点的父节点的统计值是否均为0;若否,则将所述对等节点对应的空间分区设置为所述第一弹性分布式数据集和所述第二弹性分布式数据集的相交空间分区;若是,则停止对该对等节点的子节点进行统计值分析,并继续根据其他对等节点中每一节点的统计值对其他对等节点进行筛选。其中,叶子节点为不存在子节点的节点,非叶子节点为存在子节点的节点。
83.规则2:若所述对等节点包括两个非叶子节点,则继续执行根据所述全局空间分布信息逐级确定对等节点的操作。
84.规则3:若所述对等节点包括两个叶子节点,则判断两个叶子节点的统计值是否均不为0;若是,则将所述对等节点对应的空间分区设置为第一弹性分布式数据集和第二弹性分布式数据集的相交空间分区;若否,则继续根据其他对等节点中每一节点的统计值对其他对等节点进行筛选。
85.请参见图10,图10为本技术实施例所提供的一种相交空间分区确定的过程的示意图。如图10所示,若第一弹性分布式数据集和第二弹性分布式数据集中的两个对等节点中有一个是叶子节点,且该叶子节点及其父节点中的统计值均为0,则过滤掉这两个对等节点及其子节点,否则保留这两个对等节点所表示的相交分区并停止递归下推。若第一弹性分布式数据集和第二弹性分布式数据集中的两个对等节点都不是叶子节点,则继续递归下推。递归下推指对对等节点的子节点的统计值进行比较分析的操作。由于统计值为统计所述几何对象空间分布信息的统计结果,若两个对等节点的统计值均不为0,则说明这两个对等节点中存在相交空间分区;若两个对等节点的统计值中至少存在一个0,则说明这两个对等节点中不存在相交空间分区。
86.请参见图11,图11为本技术实施例所提供的一种目标数据确定方法的流程图,本实施例是对上述实施例中将相交空间分区对应的数据设置为目标数据的过程的进一步描述,可以将本实施例与上述实施例相结合得到进一步的实施方式,本实施例可以包括以下步骤:
87.s1101:确定所述相交空间分区对应的目标空间范围;
88.s1102:从所述全局空间分布信息的根节点自顶向下查询所述第一空间数据和所述第二空间数据中与所述目标空间范围相交的几何对象;
89.s1103:将与所述目标空间范围相交的几何对象的空间数据设置为所述目标数据。
90.通过上述选取目标数据的操作相当于去除无效数据,在得到第一弹性分布式数据集和第二弹性分布式数据集的基础上,确定相交空间分区对应的目标空间范围,进而查询第一空间数据和第二空间数据中处于目标空间范围内的几何对象。全局空间分布信息描述空间数据中几何对象的分布状况,因此可以通过从全局空间分布信息的根节点自顶向下查询,得到与所述目标空间范围相交的几何对象。进一步的,本实施例可以将与所述目标空间范围相交的几何对象的空间数据设置为用于进行空间连接计算。
91.作为一种可行的实施方式,本实施例可以将相交空间分区用集合i表示,集合i中的每个元素表示一个分区从根节点开始的路径。用每条路径分别查询第一弹性分布式数据集和第二弹性分布式数据集的每个空间分区所构成的四叉树索引,摘取与路径匹配的节点所包含的空间几何对象。
92.请参见图12,图12为本技术实施例所提供的一种在四叉树索引中查询目标数据的
原理示意图。已知相交空间分区的路径和根节点的矩形空间范围,可以计算得出相交空间分区对应的空间范围p
bound
。从根节点自顶向下沿路径收集每个节点上与p
bound
相交的空间几何对象。如路径
‘0’
所示,当路径p的底部对应的不是叶子节点,则收集该节点及其所有子节点上的几何对象;如路径

20’所示,当路径p的底部对应的恰好是叶子节点,则收集该叶子节点上的所有几何对象;如路径

231’所示,当路径p未能下推到底部就遇到叶子节点,则收集该叶子节点上与p
bound
相交的几何对象。
93.从每个空间分区的四叉树索引中查询得到第一弹性分布式数据集和第二弹性分布式数据集在每个分区对应的空间对象集合,用spark表示为rdd[(p,set[geometry])]。其中,p表示相交分区,set[geometry]表示相交分区内的空间对象。在此基础上,可以通过利用spark的cogroup算子,将第一弹性分布式数据集和第二弹性分布式数据集中相同分区内的空间对象汇聚到一起生成rdd[(p,(set[geometry],set[geometry]))],通过执行图2(b)所示的并行计算过程,获得空间连接查询的最终结果。
[0094]
请参见图13,图13为本技术实施例所提供的一种空间连接查询装置的结构示意图,该装置可以包括:
[0095]
数据集获取模块1301,用于获取第一空间数据的第一弹性分布式数据集和第二空间数据的第二弹性分布式数据集;其中,所述第一弹性分布式数据集和所述第二弹性分布式数据集包括多个空间分区;
[0096]
空间分布信息获取模块1302,用于对所述空间分区创建多叉树空间索引,并根据所述多叉树空间索引统计几何对象空间分布信息,得到所述第一弹性分布式数据集的全局空间分布信息和第二弹性分布式数据集的全局空间分布信息;
[0097]
相交空间确定模块1303,用于根据所述全局空间分布信息确定所述第一弹性分布式数据集和所述第二弹性分布式数据集的相交空间分区;
[0098]
空间连接查询模块1304,用于将所述第一空间数据和所述第二空间数据中与所述相交空间分区对应的数据设置为目标数据,并对所述目标数据进行空间连接计算。
[0099]
本实施例获取空间数据的弹性分布式数据集,对弹性分布式数据集中的空间分区创建多叉树空间索引以便将空间分区细分为多个子空间。通过对几何对象空间分布信息进行统计可以得到用于描述弹性分布式数据集中几何对象的分布情况的全局空间分布信息。本实施例基于第一弹性分布式数据集和所述第二弹性分布式数据集的全局空间分布信息确定相交空间分区,并根据相交空间分区确定需要执行空间连接查询的目标数据。由于只有相交空间分区中的几何对象才会存在连接,上述方案能够滤除空间数据中对空间连接查询没有贡献的无效数据,降低空间连接查询操作的计算量,进而提高了空间连接查询效率。
[0100]
进一步的,空间分布信息获取模块1302包括:
[0101]
四叉树索引创建单元,用于对所述空间分区创建四叉树空间索引,以便将所述空间分区划分为多个子空间;
[0102]
几何对象查询单元,用于根据所述四叉树空间索引查询每一所述子空间中目标几何对象的数量,得到几何对象空间分布信息;其中,所述子空间为包含所述目标几何对象的最小子空间。
[0103]
进一步的,所述四叉树索引创建单元用于利用spark引擎对所有所述空间分区并行创建所述四叉树空间索引,以便将所述空间分区划分为多个子空间。
[0104]
进一步的,空间分布信息获取模块1302包括:
[0105]
空间分区信息获取单元,用于根据所述多叉树空间索引统计每一所述空间分区对应的几何对象空间分布信息;
[0106]
聚合单元,用于对所有所述空间分区对应的几何对象空间分布信息进行聚合得到所述第一弹性分布式数据集的全局空间分布信息和第二弹性分布式数据集的全局空间分布信息。
[0107]
进一步的,相交空间确定模块1303包括:
[0108]
对等节点确定单元,用于根据所述全局空间分布信息逐级确定对等节点;其中,所述对等节点为所述第一弹性分布式数据集和所述第二弹性分布式数据集对应的全局空间分布信息中路径相同的节点;
[0109]
节点筛选单元,用于根据所述对等节点中每一节点的统计值对所述对等节点进行筛选,得到所述第一弹性分布式数据集和所述第二弹性分布式数据集的相交空间分区;其中,所述统计值为统计所述几何对象空间分布信息的统计结果。
[0110]
进一步的,所述节点筛选单元包括:
[0111]
第一筛选子单元,用于若所述对等节点包括一个叶子节点和一个非叶子节点,则判断所述叶子节点和所述叶子节点的父节点的统计值是否均为0;若否,则将所述对等节点对应的空间分区设置为所述第一弹性分布式数据集和所述第二弹性分布式数据集的相交空间分区;
[0112]
第二筛选子单元,用于若所述对等节点包括两个非叶子节点,则执行根据所述全局空间分布信息逐级确定对等节点的操作;
[0113]
第三筛选子单元,用于若所述对等节点包括两个叶子节点,则判断两个叶子节点的统计值是否均不为0;若是,则将所述对等节点对应的空间分区设置为所述第一弹性分布式数据集和所述第二弹性分布式数据集的相交空间分区。
[0114]
进一步的,空间连接查询模块1304包括:
[0115]
目标数据确定单元,用于确定所述相交空间分区对应的目标空间范围;还用于从所述全局空间分布信息的根节点自顶向下查询所述第一空间数据和所述第二空间数据中与所述目标空间范围相交的几何对象;还用于将与所述目标空间范围相交的几何对象的空间数据设置为所述目标数据;
[0116]
计算单元,用于对所述目标数据进行空间连接计算。
[0117]
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
[0118]
本技术还提供了一种存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0119]
本技术还提供了一种电子设备,参见图14,本技术实施例提供的一种电子设备的结构图,如图14所示,可以包括处理器1410和存储器1420。
[0120]
其中,处理器1410可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1410可以采用dsp(digital signal processing,数字信号处理)、fpga(field-
programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1410也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1410可以在集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1410还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
[0121]
存储器1420可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1420还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器1420至少用于存储以下计算机程序1421,其中,该计算机程序被处理器1410加载并执行之后,能够实现前述任一实施例公开的由电子设备侧执行的空间连接查询方法中的相关步骤。另外,存储器1420所存储的资源还可以包括操作系统1422和数据1423等,存储方式可以是短暂存储或者永久存储。其中,操作系统1422可以包括windows、linux、android等。
[0122]
在一些实施例中,电子设备还可包括有显示屏1430、输入输出接口1440、通信接口1450、传感器1460、电源1470以及通信总线1480。
[0123]
当然,图14所示的电子设备的结构并不构成对本技术实施例中电子设备的限定,在实际应用中电子设备可以包括比图14所示的更多或更少的部件,或者组合某些部件。
[0124]
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
[0125]
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献