CN106055563A - 一种基于网格划分的并行空间查询方法及其系统 - Google Patents

一种基于网格划分的并行空间查询方法及其系统 Download PDF

Info

Publication number
CN106055563A
CN106055563A CN201610333152.2A CN201610333152A CN106055563A CN 106055563 A CN106055563 A CN 106055563A CN 201610333152 A CN201610333152 A CN 201610333152A CN 106055563 A CN106055563 A CN 106055563A
Authority
CN
China
Prior art keywords
spatial
grid
space
numbering
space object
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
CN201610333152.2A
Other languages
English (en)
Other versions
CN106055563B (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.)
Fujian Agriculture and Forestry University
Original Assignee
Fujian Agriculture and Forestry University
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 Fujian Agriculture and Forestry University filed Critical Fujian Agriculture and Forestry University
Priority to CN201610333152.2A priority Critical patent/CN106055563B/zh
Publication of CN106055563A publication Critical patent/CN106055563A/zh
Application granted granted Critical
Publication of CN106055563B publication Critical patent/CN106055563B/zh
Expired - Fee Related 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/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • 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/29Geographical information databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Remote Sensing (AREA)
  • Software Systems (AREA)
  • Image Analysis (AREA)

Abstract

本发明提供一种基于网格划分的并行空间查询方法及其系统,方法包括依据四叉树对查询空间对象以及目标空间对象集合所处的空间范围进行网格划分并编号;对各个空间对象构建空间分片索引,依据空间分片索引中的所述最小网格的编号,从目标空间对象集合中,获取与查询空间对象对应的所述最小网格存在相交关系的目标空间对象。本发明使用四叉树进行空间网格划分和网格编号,使每个空间对象都被包含在一个对应的四叉树网格中,从而消除边界对象处理问题;同时,依据四叉树编码中隐含的空间拓扑关系,筛除明显不符合查询条件的空间对象,实现对候选目标空间对象的预过滤,从而减少任务候选集,再次提高并行查询效率。

Description

一种基于网格划分的并行空间查询方法及其系统
技术领域
本发明涉及并行空间数据分析处理领域,具体说的是一种基于网格划分的并行空间查询方法及其系统。
背景技术
如今主流的GIS地理信息系统仍以串行计算为基础框架,难以充分利用和发挥当前新型硬件构架计算机资源的能力,难以满足实际应用的规模与高效需求。并行化成为当今提高地理计算效率的重要方式。对基于矢量数据的并行化地理数据计算,难点多体现在空间划分、任务调度、并行性分析等方面。空间任务分配是并行空间查询(并行范围查询、并行连接查询等)的基础,可分为空间划分(space declustering)和数据划分(datapartition)两种方案。
空间划分主要是通过将空间范围划分成空间对象数量相等或者大致相等的分片集合,然后分配给不同的处理器进行本地化连接操作。针对基于拓扑关系的空间分析应用中,在分片时需要对处于边界的对象进行特殊处理,即边界对象处理问题(BoundaryObject Handling),当前有四种处理方案解决边界对象:1、副本拷贝:该方案将与空间对象相交的所有分片都保存完整的副本,在并行处理完成时,再消除并行连接过程中产生的重复结果;2、空间对象片段代理:该方案将与多分片相交的空间对象分配到某个特定分片上,并将空间对象在其余分片上的相交部分的MBR及该空间对象的指针OID(对象编号)分配给其余相交分片,该方案同样必须进行重复结果消除工作;3、副本避免:一种称为参考点方法的方案,来自不同空间关系R和S的每一对空间对象Tr和Ts,如果均被复制到多个分片中,那么Tr和Ts的空间关系判断只在二者均有副本的分片中进行。该方法计算Tr和Ts的MBR的特定参考点(对象相交角点),并只在参考点所在的分片中进行连接计算,以避免副本。参考分片法是参考点方法的改进,该类算法必须将与多分片相交的空间对象进行复制备份;4、空间对象分割:直接将与多分片相交的空间对象沿着空间分片的边界进行分割,并将得到的空间对象片段的几何对象信息保存在索引中,在连接运算中,对各片段分别运算。该方案在分片数量很多的情况下索引结构增长,将导致大量的I/O,并且对空间对象进行分割的过程也需要额外的几何运算。
上述现有技术能够解决边界对象问题的空间划分方案中,前两种在划分阶段和结果集中都有冗余副本;第三种虽然避免了结果集中的副本,但是必须将边界对象分别拷贝到各个分区;第四种方案还需要对对象进行划分,增加了额外的分割运算过程和存储空间,当边界对象随着空间划分的进行而增多时,其额外的分割和存储消耗不可忽视。
空间划分产生的分片是生成并行空间查询任务候选集的基础,当前已有的方案中,划分完成后,直接利用生成的分片集合生成空间任务候选集,进行并行任务分配,未对候选集中不符合空间查询限定的空间拓扑关系的分片集合进行筛选过滤,产生一些不必要的候选集,影响了查询效率。
专利公开号CN 101515284A的中国专利公开了一种基于离散网格的并行空间拓扑分析方法,具体公开了先加载数据,在由Root进程对空间对象进行数据划分,将划分后的子数据传送给多个Sub进行空间拓扑分析的技术方案。该方案中,还是需要对对象进行划分,还是存在需要额外增加分割运算和存储空间的问题,并不能很好的解决边界对象问题;以此,据此获取的空间任务候选集还是存在查询效率低的问题。
发明内容
本发明所要解决的技术问题是:提供一种基于网格划分的并行空间查询方法及其系统,不仅能够有效解决空间划分时产生的边界对象处理问题,而且能够预先筛除无关空间对象,显著提高并行数据分析效率。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于网格划分的并行空间查询方法,包括:
获取查询空间对象以及目标空间对象;获取目标空间对象集合;
依据四叉树对所述查询空间对象以及目标空间对象集合所处的空间范围进行网格划分;依据四叉树对网格进行编号;
对查询空间对象以及目标空间对象集合内的各个空间对象构建空间分片索引,所述空间分片索引包括能完全覆盖空间对象的最小网格的编号、空间对象的编号以及空间对象的最小外包矩形MBR;
依据空间分片索引中的所述最小网格的编号,从目标空间对象集合中,获取与查询空间对象对应的所述最小网格存在相交关系的目标空间对象,构成第一目标空间对象集合。
本发明提供的另一个技术方案为:
一种基于网格划分的并行空间查询系统,包括:
第一获取模块,用于确定查询空间对象以及目标空间对象;
第二获取模块,用于获取目标空间对象集合;
网格划分模块,用于依据四叉树对所述查询空间对象集合以及第二目标空间对象集合所处的空间范围进行网格划分;
网格编号模块,用于依据四叉树对网格进行编号;
第一构建模块,用于对所述空间内每一个空间对象构建空间分片索引,所述空间分片索引包括能完全覆盖空间对象的最小网格的编号、空间对象的编号以及空间对象的最小外包矩形MBR;
第三获取模块,用于依据空间分片索引中的所述最小网格的编号,从目标空间对象集合中,获取与查询空间对象对应的所述最小网格存在相交关系的目标空间对象,构成第一目标空间对象集合。
本发明的有益效果在于:区别于现有技术的并行空间查询方案中的空间分片过程会存在边界对象处理问题,同时也未对分片集合进行筛选过滤,将产生额外分割运算和存储消耗,并行查询效率低的问题。本发明依据四叉树对空间进行网格划分,以及编码;确定能够包含空间对象的最小外包矩形的四叉树网格,构建以该四叉树网格编号为主键的空间分片索引;由于每个空间对象都包含在一个对应的四叉树网格中;因此,基于空间分片索引的空间并行运算过程,便不会出现边界对象问题的发生。同时,又能依据所述空间分片索引中隐含的空间拓扑关系,对目标空间对象进行预过滤,直接过滤掉明显不满足查询条件的空间对象;从而减少依据空间对象构建的任务候选集。相较于现有技术,能够显著提高并行查询处理的效率,同时缩减数据存储空间。
附图说明
图1为本发明一种基于网格划分的并行空间查询方法的流程示意图;
图2为本发明实施例一的方法流程示意图;
图3(a)为本发明实施例一中基于四叉树模型的空间划分及编码规则示意图;
图3(b)为本发明实施例一中基于四叉树模型的空间划分及编码规则中第一层级划分后生成一级网格的示意图;
图3(c)为本发明实施例一中基于四叉树模型的空间划分及编码规则中第二层级划分后生成二级网格示意图;
图4为发明一种基于网格划分的并行空间查询系统的结构组成示意图;
图5为实施例四的系统结构示意图。
标号说明:
1、第一获取模块;2、第二获取模块;3、网格划分模块;
4、网格编号模块;5、第一构建模块;6、第三获取模块;
7、第四获取模块;8、第二构建模块;9、统计模块;10、分配模块;
11、一级划分编号单元;12、二级划分编号单元;13、划分编号单元。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:依据四叉树进行空间网格划分和网格编号,基于能够包含空间对象最小外包矩形的网格,构建以网格编号为主键的空间分片索引,并据此对明显不符合查询条件的空间对象进行预筛除,不仅能够消除边界对象处理问题,还能提高并行查询效率。
本发明涉及的技术术语解释:
请参照图1,本发明提供一种基于网格划分的并行空间查询方法,包括:
获取查询空间对象以及目标空间对象;获取目标空间对象集合;
依据四叉树对所述查询空间对象以及目标空间对象集合所处的空间范围进行网格划分;依据四叉树对网格进行编号;
对查询空间对象以及目标空间对象集合内的各个空间对象构建空间分片索引,所述空间分片索引包括能完全覆盖空间对象的最小网格的编号、空间对象的编号以及空间对象的最小外包矩形MBR;
依据空间分片索引中的所述最小网格的编号,从目标空间对象集合中,获取与查询空间对象对应的所述最小网格存在相交关系的目标空间对象,构成第一目标空间对象集合。
从上述描述可知,本发明的有益效果在于:使用四叉树模型对空间范围进行划分,得到空间分片(网格),并对空间分片进行四叉树编码,划分过程中,对每个空间对象,寻找能包含该空间对象最小外包矩形的四叉树格网,构建以格网编码为主键的空间分片索引。该划分方法中,每个空间对象都包含在一个对应的四叉树格网中,避免了边界对象问题的产生;依据四叉树编码中隐含的空间拓扑关系,筛除明显不符合查询条件的空间对象,实现对候选目标空间对象的预过滤,从而减少任务候选集,再次提高并行查询效率。
进一步的,所述构成第一目标空间对象集合,之后,进一步包括:
依据空间分片索引中的所述最小外包矩形MBR,从第一目标空间对象集合中获取与所述查询空间对象可能存在相交关系的目标空间对象,构成第二目标空间对象集合。
由上述可知,依据空间对象的最小外包矩形MBR是否相交,进行无关空间对象的二次筛选,再次缩减候选目标空间对象集合的数量,从而提高并行查询效率。
进一步的,所述构成第二目标空间对象集合,之后,进一步包括:
依据所述查询空间对象与所述第二目标空间对象集合中各个空间对象的对应关系,构建两个以上的任务候选集;
统计各个任务候选集的工作量;
依据工作量分配相应的任务候选集至处理器。
进一步的,所述统计各个任务候选集的工作量;依据工作量分配相应的任务候选集至处理器,具体为:
计算各个任务候选集中查询空间对象与目标空间对象的连接工作量;
将所述任务候选集放入异步任务队列中,并依据连接工作量对所述任务候选集进行排序;
依据负载均衡策略将所述异步任务队列中的任务候选集均分给不同处理器,或者依序分配任务候选集给不同处理器进行并行连接处理。
由上述可知,依据静态负载均衡法或者动态负载均衡法合理分配任务至处理器进行并行查询处理。相较现有技术,在负载均衡的提前下,显著减少并行处理的工作量,实现高效并行分析处理。
进一步的,所述依据四叉树对网格进行编号之后,进一步包括:
选取所述空间范围的一边角作为坐标原点,构建坐标系;
依据四叉树,计算各个网格的坐标。
由上述可知,获取各个网格对应的坐标,作为后续并行处理中所述网格在空间中位置的标示;通过对空间对象的空间分片索引中的网格编号进行分析,便可推算出该空间对象在空间中所处的位置。
进一步的,所述依据四叉树对所述查询空间对象集合以及第二目标空间对象集合所处的空间范围进行网格划分;依据四叉树对网格进行编号,具体为:
依据四叉树对所述查询空间对象集合以及第二目标空间对象集合所处的空间范围进行四等分,获取四个一级网格,并分别对一级网格进行编号;
对一级网格进行四等分,获取四个二级网格,并依据对应的一级网格的编号对二级网格进行编号;
依据预设的网格划分次数继续对所述二级网格进行相应次数的划分并编号。
由上述描述可知,本发明基于四叉树进行网格的划分和网格的编码,在前一次网格划分结果上对每个网格继续进行网格划分,新划分的网格的编码是在前一次划分的网格的编号后添加新的区域编号,从而建立区域关联,标示空间信息。
请参阅图4,本发明提供的另一个技术方案为:
第一获取模块1,用于确定查询空间对象以及目标空间对象;
第二获取模块2,用于获取目标空间对象集合;
网格划分模块3,用于依据四叉树对所述查询空间对象集合以及第二目标空间对象集合所处的空间范围进行网格划分;
网格编号模块4,用于依据四叉树对网格进行编号;
第一构建模块5,用于对所述空间内每一个空间对象构建空间分片索引,所述空间分片索引包括能完全覆盖空间对象的最小网格的编号、空间对象的编号以及空间对象的最小外包矩形MBR;
第三获取模块6,用于依据空间分片索引中的所述最小网格的编号,从目标空间对象集合中,获取与查询空间对象对应的所述最小网格存在相交关系的目标空间对象,构成第一目标空间对象集合。
进一步的,还包括:
第四获取模块7,用于依据空间分片索引中的所述最小外包矩形MBR,从第一目标空间对象集合中获取与所述查询空间对象可能存在相交关系的目标空间对象,构成第二目标空间对象集合。
进一步的,还包括:
第二构建模块8,用于依据所述查询空间对象与所述第二目标空间集合中各个空间对象的对应关系,构建两个以上的任务候选集;
统计模块9,用于统计各个任务候选集的工作量;
分配模块10,用于依据工作量分配相应的任务候选集至处理器。
进一步的,所述网格划分模块3和所述网格编号模块4具体包括:
一级划分编号单元11,用于依据四叉树对空间对象所在的空间进行四等分,获取四个一级网格,并分别对一级网格进行编号;
二级划分编号单元12,用于对一级网格进行四等分,获取四个二级网格,并依据对应的一级网格的编号对二级网格进行编号;
划分编号单元13,用于依据预设的网格划分次数继续对所述二级网格进行相应次数的划分并编号。
进一步的,还包括:
第三构建模块,用于选取所述空间范围的一边角作为坐标原点,构建坐标系;
计算模块,用于依据四叉树,计算各个网格的坐标。
进一步的,所述第三构建模块具体包括:
第一选取单元,用于选取所述空间的一边角作为坐标原点,构建坐标系;
第二选取单元,用于选取所述网格的一边角对应所述坐标系的坐标作为所述网格的坐标,依据四叉树网格编码规则,计算获取所述坐标。
实施例一
请参照图2、图3(a)至图3(c),本实施例提供一种基于网格划分的并行空间查询方法,所述空间查询可以是连接查询或者是范围查询。以R与S并行连接查询为例,假设所述R为公交路线,所述S为桥梁,通过对R与S进行并行连接查询,获取与该公交路线相交的所有桥梁;
首先,确定查询空间对象以及目标空间对象,即,查询空间对象为任意指定的一条公交路线R1,目标空间对象为桥梁,并行查询条件为二者之间的空间拓扑关系为相交;
然后获取查询空间的目标空间对象集合,即所有桥梁构成的集合;对参与并行空间查询的空间数据集,即查询空间对象以及目标空间对象集合,所处的空间范围基于四叉树模型进行网格划分,并依据网格划分规则,即四叉树模型对网格进行编号;具体的网格划分和编号方式如下:
1、将空间进行并行分层处理,分为0-N层,空间数据集所在的空间范围作为第0层,不进行划分,第0层如图3(a)所示;
2、对第一层的空间进行四等分划分,获取四个一级网格,然后按上下左右(即上左、上右、下左、下右)的顺序分别给划分的一级网格区域编号A、B、C、D,将其作为第一层的网格划分结果,如图3(b)所示;
3、在第一层的四个一级网格区域上对每一个一级网格区域再继续做四等分划分,一个一级网格划分得到四个二级网格;新划分网格区域的编号是在被切割网格区域(一级网格区域)的编号后添加新的网格区域编号{A,B,C,D}其中之一获得,结果为AA,AB,AC,AD,BA,BB,BC,BD,CA,CB,CC,CD,DA,DB,DC,DD 16个区域,并作为第二层的划分结果,如图3(c)所示;
4、依据预设的网格划分次数在第二层的划分结果(二级网格)上继续进行四等分和编号,直到达到预设的划分次数;所述网格划分次数可以依据空间对象的空间大小,或者处理器的处理能力,或者并行分析处理的精度来设定。
优选的,还可以对应所述空间构建坐标系,获取对应网格的行列号,即坐标,行号对应坐标x,列号对应坐标y;该步骤可以在网格划分完毕后进行,也可以与网格划分过程同步进行;具体过程可以包括:
1、选取所述空间的一边角作为坐标原点,构建坐标系;优选的,可以选取空间左下角作为笛卡尔坐标系的原点;同时也将网格的左下角位置作为该网格的坐标;
2、选取所述网格的一边角对应所述坐标系的坐标作为所述网格的坐标;那么,一级网格A、B、C、D四个区域对应的坐标为(1,0),(1,1),(0,0)和(0,1),二级网格A下的二级网格AA、AB、AC和AD的坐标为(3,0),(3,1),(2,0)和(2,1);一级网格C为坐标原点,坐标为(0,0)。
可选的,对应网格的坐标只是为了标示网格在空间所处位置。因此,坐标系原点的选取,以及选取网格哪一点的坐标作为网格的坐标都是可以依据需求灵活的设定的,比如,还可以选取网格的中心点位置的坐标作为网格的坐标。
进一步的,网格坐标的获取可以通过建立坐标系后,依据四叉树划分编码规则,计算获取对应网格的坐标。具体的,能够直接依据公式:
R o w = Σ k = 0 n - 1 2 k × r k
C o l = Σ k = 0 n - 1 2 k × c k
其中,Row为行号,Col为列号,n为层号;rk是行判断函数,当将网格编号翻转后的第k+1个字母(k从0开始)是A或B的时候,rk=1否则rk=0;ck是列判断函数,当将网格编号翻转后的第k+1个字母是B或D的时候,ck=1否则ck=0。
编码计算行列号运算实例:
一空间对象P的网格编号为BCD;翻转后是DCB,经过上面的公式可以计算出它的行列号为:
Row=20×0+21×0+22×1=0+0+4=4
Col=20×1+21×0+22×1=1+0+4=5
可知,该空间对象的坐标为P(4,5)。
再然后,对查询空间对象以及目标空间对象集合内的各个空间对象都构建空间分片索引,构建空间索引列表,将所有的空间分片索引添加到空间索引列表中,所述空间分片索引包括能完全覆盖空间对象的最小网格的编号、空间对象的编号以及空间对象的最小外包矩形MBR。
具体的,以R为例,对R中每一个空间对象R1、R2和R3构建对应的空间分片索引;即构建桥梁R1、桥梁R2、桥梁R3的空间分片索引。
1、计算R1最小外包矩形MBR(R1)、R2最小外包矩形MBR(R2)以及R3最小外包矩形MBR(R3);
2、分别寻找更好能够完全覆盖所述MBR(R1)、MBR(R2)以及MBR(R3)的最低层级的四叉树网格;如图3(c)所示,能够完全覆盖所述MBR(R1)的网格刚好为处于第一层级的一级网格A,MBR(R2)对应第二层级的二级网格CB;而MBR(R3)由于部分超出了网格CC,因此对应的是第一层级的一级网格C;
3、获取空间对象R1、R2和R3预设的指针OID,即ID编号,所述ID编号指向数据库中对应空间对象记录的具体数据;
4、构建由能完全覆盖空间对象的最小网格的编号、空间对象的编号以及空间对象的最小外包矩形MBR组成的空间分片索引;如空间对象R1的空间分片索引项为<A,R1_id,MBR(R1)>,空间对象R2和R3的索引项分别为<CB,R2_id,MBR(R2)>和<C,R3_id,MBR(R3)>。通过空间对象所处四叉树格网的编号可以推算出该网格所在的层级号及行列号,进而可以算出该网格在空间的范围,反之亦然。
通过上述,已经对应每个空间对象都构建了空间分片索引,由于网格划分过程中,每个空间对象都包含在一个对应的四叉树网格中。因此,便不存在边界对象处理问题,从而明显减少并行分析处理的工作量,以及冗余、重叠副本而带来的额外存储空间。
进一步的,利用四叉树编码中隐含的空间拓扑关系,能够依据空间拓扑关系判断转换成字符串编码匹配运算,对目标空间对象进行预筛选,直接过来掉所有与查询空间对象不相交的空间对象,从而减少依据空间对象生成的任务候选集,进而显著提高空间并行分析处理的效率。具体的,可以包括:
1、依据空间分片索引中的所述最小网格的编号,从目标空间对象集合中,获取与查询空间对象对应的所述最小网格存在相交关系的目标空间对象,构成第一目标空间对象集合。原理具体分析如下:根据四叉树格网编码规则,假设空间对象A的最小网格的编号为A1A2...Ai,空间对象B的最小网格的编号为B1B2...Bj,其中i,j分别表示空间对象A,B所在最低层次格网的层次编号。如果A1A2...Ai是B1B2...Bj的前缀,说明空间对象A所在格网包含于B所在的网格中,反之亦然。
具体的,上述可通过编码的字符串匹配运算确定二者的编号关系。
因此,可以通过四叉树网格编码规则,即空间分片索引;对R中的任意对象Ri,通过比较空间分片索引中的所述最小网格的编号,便可直接过滤掉所有与S不相交的空间对象,即直接过滤掉远离指定公交路线S1的桥梁。R中剩余的空间对象所构成的第一目标空间对象集合为经过第一次预筛选,依据最小网格是否相交而获取的,能够删除一大部分与查询空间对象S无关的空间对象。
在此,为了帮助更好的理解基于四叉树的空间拓扑关系分析过程,请参阅图3(c),下面分别以相交(Intersects)、包含(Contains)和相离(Disjoints)为例进行说明。
1)相交(Intersects)判断方法
如图3(c),来自S的空间对象S1的索引编号为C,在R的空间分片索引中查找C开头的空间分片索引包含的空间对象,得到{R2,R3}。由于S1与R2,R3处在同一个空间分片中,可知S1与来自R的空间对象R2、R3(编号C、CB)存在相交的可能,而与其他的来自R的空间对象不存在相交的可能。因此,在构建与S1相交的并行任务候选集时,可以过滤掉除R2、R3所在分片之外的其他所有分片组合。
2)包含(Contains)判断方法
包含是相交的子集,从相交判断中可得可能包含在S1(C)中的来自R的空间对象有R2(C)和R3(CB),其过滤方法与相交判断方法一样。
3)相离(Disjoints)判断方法
相离是相交的补集,可以首先从相交判断中得到的候选集进行精确的过滤,得到精确的相交的结果集,取其补集即可。
该方法在减少索引空间的同时,可对并行任务候选集进行预过滤,从而提高并行空间查询效率。
本发明的实施例二为
本实施例在实施例一的基础上进一步的延伸,相同之处不再复述,区别之处在于对第一目标空间对象集合进行二次筛选,依据最小外包矩形MBR获取可能存在相交的目标空间对象。具体可以包括:
依据空间分片索引中的所述最小外包矩形MBR,分析对第一目标空间对象集合中各个空间对象队形的所述MBR是否与所述查询空间对象存在相交关系,具体可以通过平面扫描算法进行分析,若否,则去除该目标空间对象,由剩下的目标空间对象构成第二目标空间对象集合。
通过实施例二,能够直接依据空间对象在空间中的占用面积,进一步筛除第一目标对象集合中,与查询空间对象一定不存在相交关系的目标对象;进一步提高候选目标空间对象的精确度。即,能够通过比对指定公交路线R1的最小外包矩形MBR与第一目标对象集合中各个目标对象的MBR是否存在相交关系,再次剔除绝大部分与指定公交线路的桥梁;虽然对于一些少数的特殊情况,如二者的MBR存在相交,但实际情况只是二者间隔距离很近,并非真实相交的情况不能完全过滤掉,但经过二次筛选后得到的第二目标空间对象集合,已经剔除了绝大部分无关对象空间,据此构建的任务候选集数量相较现有技术成倍缩减,能够显著降低处理器的工作量。
实施例三
本实施例在实施例一和实施例二的基础上进一步的延伸,相同之处不再复述,区别之处在于增加了基于空间对象的空间分片索引的负载均衡分配方案:
1、依据所述查询空间对象与所述第二目标空间对象集合中各个空间对象的对应关系,构建两个以上的任务候选集;如S1-R2的任务候选集;S1-R3的任务候选集;
2、计算各个任务候选集中查询空间对象与目标空间对象的连接工作量,即S1到R1的连接工作量Wt;
3、将所述任务候选集放入异步任务队列中,并依据连接工作量对所述任务候选集进行排序;对任务队列Task以Wt为关键字进行排序,设Wp=Wsum/N,
其中Wsum为总工作量,N为并行工作线程数,Wp为平均工作量;
4、依据负载均衡策略将所述异步任务队列中的任务候选集均分给不同处理器,或者依序分配任务候选集给不同处理器进行并行连接处理。
优选的,可以依据所配置的处理器的性能,如双核处理器、4核处理器或者6核处理器来均分所要处理的任务;具体的,可以根据Wp对任务队列进行分割,然后分配给各工作线程,进行本地连接。平均分配等量工作量的任务进行处理,实现多核并行处理空间任务,即静态负载均衡法;
优选的,还可以由负载均衡控制器根据工作量大小,从工作量大的任务对开始依次分配给各工作线程,当某个工作线程运算完毕,从剩余的任务队列中取工作量最大的任务进行运算,直到队列为空,即动态负载均衡法。
通过上述,能够实现基于空间分片索引的并行分析处理,不仅克服了边界对象处理问题,而且对任务候选集进行了两次筛选,减少并行处理工作量;同时,还实现了均衡负载,最终中实现高效地并行处理空间任务。
实施例四
请参阅图5,本实施例为对应实施例一至三的并行空间查询方法而提供的一种基于网格划分的并行空间查询系统,具体包括:
第一获取模块1,用于确定查询空间对象以及目标空间对象;
第二获取模块2,用于获取目标空间对象集合;
网格划分模块3,用于依据四叉树对所述查询空间对象集合以及第二目标空间对象集合所处的空间范围进行网格划分;
网格编号模块4,用于依据四叉树对网格进行编号;所述网格划分模块和网格编号模块可以集成由一个功能模块实现,该模块具体包括:
一级划分编号单元11,用于依据四叉树模型对空间对象所在的空间进行四等分,获取四个一级网格,并分别对一级网格进行编号;
二级划分编号单元12,用于对一级网格进行四等分,获取四个二级网格,并依据对应的一级网格的编号对二级网格进行编号;
划分编号单元13,用于按照预设的网格划分次数对所述二级网格进行相应次数的划分和编号。
进一步的,系统还包括:
第一构建模块5,用于对所述空间内每一个空间对象构建空间分片索引,所述空间分片索引包括能完全覆盖空间对象的最小网格的编号、空间对象的编号以及空间对象的最小外包矩形MBR;
第三获取模块6,用于依据空间分片索引中的所述最小网格的编号,从目标空间对象集合中,获取与查询空间对象对应的所述最小网格存在相交关系的目标空间对象,构成第一目标空间对象集合;
第四获取模块7,用于依据空间分片索引中的所述最小外包矩形MBR,从第一目标空间对象集合中获取与所述查询空间对象可能存在相交关系的目标空间对象,构成第二目标空间对象集合。
第二构建模块8,用于依据所述查询空间对象与所述第二目标空间集合中各个空间对象的对应关系,构建两个以上的任务候选集;
统计模块9,用于统计各个任务候选集的工作量;
分配模块10,用于依据工作量分配相应的任务候选集至处理器。
进一步的,还包括第三构建模块,用于选取所述空间范围的一边角作为坐标原点,构建坐标系;
计算模块,用于依据四叉树,计算各个网格的坐标。
所述第三构建模块具体包括:
第一选取单元,用于选取所述空间的一边角作为坐标原点,构建坐标系;
第二选取单元,用于选取所述网格的一边角对应所述坐标系的坐标作为所述网格的坐标,依据四叉树网格编码规则,计算获取所述坐标。
综上所述,本发明提供的一种基于网格划分的并行空间查询方法及其系统,能够有效解决空间划分时产生的边界对象处理过程以及任务候选集无过滤而导致的需要额外增加数据处理量和占用存储空间,从而影响并行数据分析效率的问题。通过依据四叉树对空间进行网格划分和编码;基于能够包含空间对象最小外包矩形的网格,构建以网格编号为主键的空间分片索引,使每个空间对象都包含在一个对应的四叉树网格中,从而消除边界对象处理问题;依据空间分片索引对明显不符合查询条件的空间对象进行至少两次的预筛选,大大减少依据目标空间对象获取的任务候选集的处理量,不仅显著提高并行分析处理效率,同时缩减数据存储空间;进一步的,依据任务候选集对应的工作量进行并行任务分配,实现了负载均衡,从而提高空间任务查询效率。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种基于网格划分的并行空间查询方法,其特征在于,包括:
获取查询空间对象以及目标空间对象;获取目标空间对象集合;
依据四叉树对所述查询空间对象以及目标空间对象集合所处的空间范围进行网格划分;依据四叉树对网格进行编号;
对查询空间对象以及目标空间对象集合内的各个空间对象构建空间分片索引,所述空间分片索引包括能完全覆盖空间对象的最小网格的编号、空间对象的编号以及空间对象的最小外包矩形MBR;
依据空间分片索引中的所述最小网格的编号,从目标空间对象集合中,获取与查询空间对象对应的所述最小网格存在相交关系的目标空间对象,构成第一目标空间对象集合。
2.如权利要求1所述的一种基于网格划分的并行空间查询方法,其特征在于,所述构成第一目标空间对象集合,之后,进一步包括:
依据空间分片索引中的所述最小外包矩形MBR,从第一目标空间对象集合中获取与所述查询空间对象可能存在相交关系的目标空间对象,构成第二目标空间对象集合。
3.如权利要求2所述的一种基于网格划分的并行空间查询方法,其特征在于,所述构成第二目标空间对象集合,之后,进一步包括:
依据所述查询空间对象与所述第二目标空间对象集合中各个空间对象的对应关系,构建两个以上的任务候选集;
统计各个任务候选集的工作量;
依据工作量分配相应的任务候选集至处理器。
4.如权利要求3所述的一种基于网格划分的并行空间查询方法,其特征在于,所述统计各个任务候选集的工作量;依据工作量分配相应的任务候选集至处理器,具体为:
计算各个任务候选集中查询空间对象与目标空间对象的连接工作量;
将所述任务候选集放入异步任务队列中,并依据连接工作量对所述任务候选集进行排序;
依据负载均衡策略将所述异步任务队列中的任务候选集均分给不同处理器,或者依序分配任务候选集给不同处理器进行并行连接处理。
5.如权利要求1所述的一种基于网格划分的并行空间查询方法,其特征在于,所述依据四叉树对网格进行编号之后,进一步包括:
选取所述空间范围的一边角作为坐标原点,构建坐标系;
依据四叉树,计算各个网格的坐标。
6.如权利要求1所述的一种基于网格划分的并行空间查询方法,其特征在于,所述依据四叉树对所述查询空间对象集合以及第二目标空间对象集合所处的空间范围进行网格划分;依据四叉树对网格进行编号,具体为:
依据四叉树对所述查询空间对象集合以及第二目标空间对象集合所处的空间范围进行四等分,获取四个一级网格,并分别对一级网格进行编号;
对一级网格进行四等分,获取四个二级网格,并依据对应的一级网格的编号对二级网格进行编号;
依据预设的网格划分次数继续对所述二级网格进行相应次数的划分并编号。
7.一种基于网格划分的并行空间查询系统,其特征在于,包括:
第一获取模块,用于确定查询空间对象以及目标空间对象;
第二获取模块,用于获取目标空间对象集合;
网格划分模块,用于依据四叉树对所述查询空间对象集合以及第二目标空间对象集合所处的空间范围进行网格划分;
网格编号模块,用于依据四叉树对网格进行编号;
第一构建模块,用于对所述空间内每一个空间对象构建空间分片索引,所述空间分片索引包括能完全覆盖空间对象的最小网格的编号、空间对象的编号以及空间对象的最小外包矩形MBR;
第三获取模块,用于依据空间分片索引中的所述最小网格的编号,从目标空间对象集合中,获取与查询空间对象对应的所述最小网格存在相交关系的目标空间对象,构成第一目标空间对象集合。
8.如权利要求7所述的一种基于网格划分的并行空间查询系统,其特征在于,还包括:
第四获取模块,用于依据空间分片索引中的所述最小外包矩形MBR,从第一目标空间对象集合中获取与所述查询空间对象可能存在相交关系的目标空间对象,构成第二目标空间对象集合。
9.如权利要求7所述的一种基于网格划分的并行空间查询系统,其特征在于,还包括:
第二构建模块,用于依据所述查询空间对象与所述第二目标空间集合中各个空间对象的对应关系,构建两个以上的任务候选集;
统计模块,用于统计各个任务候选集的工作量;
分配模块,用于依据工作量分配相应的任务候选集至处理器。
10.如权利要求7所述的一种基于网格划分的并行空间查询系统,其特征在于,所述网格划分模块和所述网格编号模块具体包括:
一级划分编号单元,用于依据四叉树对空间对象所在的空间进行四等分,获取四个一级网格,并分别对一级网格进行编号;
二级划分编号单元,用于对一级网格进行四等分,获取四个二级网格,并依据对应的一级网格的编号对二级网格进行编号;
划分编号单元,用于依据预设的网格划分次数继续对所述二级网格进行相应次数的划分并编号。
CN201610333152.2A 2016-05-19 2016-05-19 一种基于网格划分的并行空间查询方法及其系统 Expired - Fee Related CN106055563B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610333152.2A CN106055563B (zh) 2016-05-19 2016-05-19 一种基于网格划分的并行空间查询方法及其系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610333152.2A CN106055563B (zh) 2016-05-19 2016-05-19 一种基于网格划分的并行空间查询方法及其系统

Publications (2)

Publication Number Publication Date
CN106055563A true CN106055563A (zh) 2016-10-26
CN106055563B CN106055563B (zh) 2019-06-25

Family

ID=57177818

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610333152.2A Expired - Fee Related CN106055563B (zh) 2016-05-19 2016-05-19 一种基于网格划分的并行空间查询方法及其系统

Country Status (1)

Country Link
CN (1) CN106055563B (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106649821A (zh) * 2016-12-29 2017-05-10 郑州星途信息科技有限公司 空间目标索引构建、碰撞预警、区域和最近邻查询方法
CN106909639A (zh) * 2017-02-16 2017-06-30 东北大学 一种基于Spark的链式多路空间连接查询处理算法
CN106960023A (zh) * 2017-03-14 2017-07-18 北京京东尚科信息技术有限公司 用于基于四叉树结构确定目标的地理位置的方法和装置
CN106980644A (zh) * 2017-02-20 2017-07-25 浙江大学 一种异构城市数据的个体人际关系可视推理方法
CN108009377A (zh) * 2017-12-22 2018-05-08 上海海洋大学 一种考虑内方位关系的锥形模型方法及系统
WO2018086497A1 (en) * 2016-11-14 2018-05-17 Huawei Technologies Co., Ltd. Quad full mesh and dimension driven network architecture
CN108549690A (zh) * 2018-04-12 2018-09-18 石家庄铁道大学 基于空间距离约束的空间关键字查询方法及系统
CN108874799A (zh) * 2017-05-09 2018-11-23 中国科学院沈阳自动化研究所 高速并行数据查找方法
CN110119458A (zh) * 2018-01-23 2019-08-13 北京云游九州空间科技有限公司 一种网格检索方法及装置
CN110347938A (zh) * 2019-07-12 2019-10-18 深圳众赢维融科技有限公司 地理信息处理方法、装置、电子设备及介质
CN110427156A (zh) * 2019-07-16 2019-11-08 华中科技大学 一种基于分片的mbr的并行读方法
CN110888880A (zh) * 2019-11-19 2020-03-17 武汉光谷信息技术股份有限公司 基于空间索引的邻近分析方法、装置、设备及介质
CN111506576A (zh) * 2020-04-08 2020-08-07 华东师范大学 一种基于区域四叉树的地块编码方法及装置
CN111538735A (zh) * 2020-07-08 2020-08-14 武大吉奥信息技术有限公司 基于任意数据库的空间数据编码、查询方法和电子设备
CN112434177A (zh) * 2020-11-27 2021-03-02 北京邮电大学 一种三维模型检索方法、装置、电子设备及存储介质
CN113449208A (zh) * 2020-03-26 2021-09-28 阿里巴巴集团控股有限公司 空间查询方法、设备、系统及存储介质
CN113722314A (zh) * 2020-12-31 2021-11-30 京东城市(北京)数字科技有限公司 一种空间连接查询方法、装置、电子设备及存储介质
WO2021243862A1 (zh) * 2020-06-02 2021-12-09 完美世界(北京)软件科技发展有限公司 数据处理方法及装置
WO2022161368A1 (zh) * 2021-01-27 2022-08-04 京东城市(北京)数字科技有限公司 空间二元组的确定方法、装置、计算机设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101408900A (zh) * 2008-11-24 2009-04-15 中国科学院地理科学与资源研究所 一种网格计算环境下的分布式空间数据查询优化方法
CN105138560A (zh) * 2015-07-23 2015-12-09 北京天耀宏图科技有限公司 基于多级空间索引技术的分布式空间矢量数据管理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101408900A (zh) * 2008-11-24 2009-04-15 中国科学院地理科学与资源研究所 一种网格计算环境下的分布式空间数据查询优化方法
CN105138560A (zh) * 2015-07-23 2015-12-09 北京天耀宏图科技有限公司 基于多级空间索引技术的分布式空间矢量数据管理方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
乔百友,等: "一种基于网格索引的空间连接查询处理优化算法", 《小型微型计算机系统》 *
刘杰: "基于MapReduce的分布式空间连接查询研究", 《中国优秀硕士学位论文全文数据库 基础科学辑》 *

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018086497A1 (en) * 2016-11-14 2018-05-17 Huawei Technologies Co., Ltd. Quad full mesh and dimension driven network architecture
US10057334B2 (en) 2016-11-14 2018-08-21 Futurewei Technologies, Inc. Quad full mesh and dimension driven network architecture
CN106649821A (zh) * 2016-12-29 2017-05-10 郑州星途信息科技有限公司 空间目标索引构建、碰撞预警、区域和最近邻查询方法
CN106909639B (zh) * 2017-02-16 2020-09-29 东北大学 一种基于Spark的链式多路空间连接查询处理方法
CN106909639A (zh) * 2017-02-16 2017-06-30 东北大学 一种基于Spark的链式多路空间连接查询处理算法
CN106980644A (zh) * 2017-02-20 2017-07-25 浙江大学 一种异构城市数据的个体人际关系可视推理方法
CN106960023A (zh) * 2017-03-14 2017-07-18 北京京东尚科信息技术有限公司 用于基于四叉树结构确定目标的地理位置的方法和装置
CN106960023B (zh) * 2017-03-14 2022-04-26 北京京东振世信息技术有限公司 用于基于四叉树结构确定目标的地理位置的方法和装置
CN108874799A (zh) * 2017-05-09 2018-11-23 中国科学院沈阳自动化研究所 高速并行数据查找方法
CN108009377B (zh) * 2017-12-22 2021-04-02 上海海洋大学 一种考虑内方位关系的锥形模型方法及系统
CN108009377A (zh) * 2017-12-22 2018-05-08 上海海洋大学 一种考虑内方位关系的锥形模型方法及系统
CN110119458A (zh) * 2018-01-23 2019-08-13 北京云游九州空间科技有限公司 一种网格检索方法及装置
CN108549690A (zh) * 2018-04-12 2018-09-18 石家庄铁道大学 基于空间距离约束的空间关键字查询方法及系统
CN108549690B (zh) * 2018-04-12 2021-07-13 石家庄铁道大学 基于空间距离约束的空间关键字查询方法及系统
CN110347938A (zh) * 2019-07-12 2019-10-18 深圳众赢维融科技有限公司 地理信息处理方法、装置、电子设备及介质
CN110427156A (zh) * 2019-07-16 2019-11-08 华中科技大学 一种基于分片的mbr的并行读方法
CN110888880A (zh) * 2019-11-19 2020-03-17 武汉光谷信息技术股份有限公司 基于空间索引的邻近分析方法、装置、设备及介质
CN113449208B (zh) * 2020-03-26 2022-09-02 阿里巴巴集团控股有限公司 空间查询方法、设备、系统及存储介质
CN113449208A (zh) * 2020-03-26 2021-09-28 阿里巴巴集团控股有限公司 空间查询方法、设备、系统及存储介质
CN111506576B (zh) * 2020-04-08 2023-05-09 华东师范大学 一种基于区域四叉树的地块编码方法及装置
CN111506576A (zh) * 2020-04-08 2020-08-07 华东师范大学 一种基于区域四叉树的地块编码方法及装置
WO2021243862A1 (zh) * 2020-06-02 2021-12-09 完美世界(北京)软件科技发展有限公司 数据处理方法及装置
CN111538735A (zh) * 2020-07-08 2020-08-14 武大吉奥信息技术有限公司 基于任意数据库的空间数据编码、查询方法和电子设备
CN112434177A (zh) * 2020-11-27 2021-03-02 北京邮电大学 一种三维模型检索方法、装置、电子设备及存储介质
CN112434177B (zh) * 2020-11-27 2023-06-20 北京邮电大学 一种三维模型检索方法、装置、电子设备及存储介质
CN113722314A (zh) * 2020-12-31 2021-11-30 京东城市(北京)数字科技有限公司 一种空间连接查询方法、装置、电子设备及存储介质
CN113722314B (zh) * 2020-12-31 2024-04-16 京东城市(北京)数字科技有限公司 一种空间连接查询方法、装置、电子设备及存储介质
WO2022161368A1 (zh) * 2021-01-27 2022-08-04 京东城市(北京)数字科技有限公司 空间二元组的确定方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN106055563B (zh) 2019-06-25

Similar Documents

Publication Publication Date Title
CN106055563A (zh) 一种基于网格划分的并行空间查询方法及其系统
US7373353B2 (en) Reducing index size for multi-level grid indexes
CN106021480B (zh) 一种基于网格划分的并行空间划分方法及其系统
Hjaltason et al. Speeding up construction of PMR quadtree-based spatial indexes
US20070143759A1 (en) Scheduling and partitioning tasks via architecture-aware feedback information
Gerlhof et al. Partition-based clustering in object bases: From theory to practice
CN110175175B (zh) 一种基于spark的分布式空间二级索引与范围查询算法
CN111352950B (zh) 数据库表等值连接的优化方法、装置、服务器及存储介质
CN110147377A (zh) 大规模空间数据环境下基于二级索引的通用查询算法
CN109614520B (zh) 一种面向多模式图匹配的并行加速方法
CN106033442B (zh) 一种基于共享内存体系结构的并行广度优先搜索方法
CN101533525B (zh) 一种用于地理信息系统中的点面叠加分析方法
CN113419861A (zh) 一种面向gpu卡群的图遍历混合负载均衡方法
Arge et al. Cache-oblivious planar orthogonal range searching and counting
Huang et al. Integrated query processing strategies for spatial path queries
Johnson et al. Experiments in integer programming
CN106980673A (zh) 内存数据库表索引更新方法及系统
CN104794120B (zh) 一种海量地震数据并行抽道集方法
CN103106254B (zh) 多边形矢量数据文件的并行拼接方法
Dong et al. GAT: A unified GPU-accelerated framework for processing batch trajectory queries
Shahrivari et al. A Parallel and Distributed Approach for Diversified Top-k Best Region Search.
CN111782658A (zh) 交叉表处理方法、装置、电子设备及存储介质
Chen et al. Indexing moving objects using query oriented parallel grids
CN110990434B (zh) Spark平台分组和Fp-Growth关联规则挖掘方法
Tao Stabbing horizontal segments with vertical rays

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190625