一种大规模时空流数据实时空间连接查询方法及相关设备

文档序号:33505542发布日期:2023-03-18 00:11阅读:82来源:国知局
一种大规模时空流数据实时空间连接查询方法及相关设备

1.本发明涉及数据处理技术领域,尤其涉及一种大规模时空流数据实时空间连接查询方法、系统、终端及计算机可读存储介质。


背景技术:

2.随着5g、物联网、卫星定位技术的发展,海量的全球卫星导航系统(gnss)被安装在各类移动设备中,由此产生的带有空间位置信息的时空流数据正在以指数级的速度增长。空间连接作为一种重要的空间数据分析方法,可以从多个空间数据集中检索出满足指定空间条件的空间对象组。对海量的时空流数据进行实时空间连接计算,可以广泛赋能城市实时交通与城市安全监测等领域。然而,时空流数据具有实时产生且数据规模大的挑战,空间连接则是众多空间计算中最具有复杂性的空间操作之一。面对实时空间连接的广泛应用场景,如何对海量的时空流数据进行高效的实时空间连接计算,已逐步成为当前研究的热点问题。
3.目前为解决庞大的空间数据的空间连接计算问题,引入分布式计算框架,将计算任务分发至不同节点从而突破单机性能瓶颈是一种较为通用的方案。但是绝大部分计算框架仅适用于大批量的离线计算或仅在一个动态变化的数据集上对某一个时刻的快照进行批量查询,无法满足时空流数据实时空间连接计算的需求。有方法提出基于dataflow模型的流式计算引擎构建分布式流式计算框架,从而实现实时空间连接计算。但基于此方法,面对空间数据分布不均匀时,容易造成部分格网空间对象数量远大于其他格网,从而使得计算实时性受短板效应的影响,导致集群计算延时大;另一方面,由于分区内的空间计算没有建立对应的空间索引,当分区内实时空间连接语义需要涉及较多的空间数据时,空间连接效率低下,实时性无法得到保证。
4.因此,现有技术还有待于改进和发展。


技术实现要素:

5.本发明的主要目的在于提供一种大规模时空流数据实时空间连接查询方法、系统、终端及计算机可读存储介质,旨在解决现有技术中无法实时对时空流数据进行高效空间连接查询的问题。
6.为实现上述目的,本发明提供一种大规模时空流数据实时空间连接查询方法,所述大规模时空流数据实时空间连接查询方法包括如下步骤:获取流式空间连接任务,将所述流式空间连接任务对应的空间范围进行格网划分,得到多个格网单元,将所述多个格网单元按层级构建为四叉树,所述多个格网单元对应所述四叉树中的多个节点,得到多个节点格网单元,所述节点格网单元包括叶子节点格网单元和非叶子节点格网单元。
7.接入参与所述流式空间连接任务中的时空流数据集,将所述时空流数据集中的空间对象映射到一个或多个叶子节点格网单元中;
当所述时空流数据集中的时空流数据进入所述叶子节点格网单元时,根据所述时空流数据对应的空间连接语义,在所述叶子节点格网单元中将所述时空流数据插入到geohash索引或四叉树索引中,实时判断所述时空流数据中的空间对象携带的时间信息是否超出空间连接语义;根据所有叶子节点格网单元中现存的有效空间对象数量的变化,动态将所述节点格网单元进行切分或合并,并建立新的四叉树格网分区;获取到达所述新的四叉树格网分区中叶子节点格网单元的时空流数据,根据geohash索引或四叉树索引对所述时空流数据中的空间对象进行空间连接计算,并输出符合空间连接计算的数据流元组;获取所述叶子节点格网单元中符合空间连接条件的数据流元组,并将所述数据流元组进行实时去重与合并。
8.可选地,所述的大规模时空流数据实时空间连接查询方法,其中,所述获取流式空间连接任务,将所述流式空间连接任务对应的空间范围进行格网划分,得到多个格网单元,将所述多个格网单元按层级构建为四叉树,所述多个格网单元对应所述四叉树中的多个节点,得到多个节点格网单元,所述节点格网单元包括叶子节点格网单元和非叶子节点格网单元,具体包括:当接收到流式空间连接任务时,获取时空流数据集在地理空间中对应的最小外接矩形,根据递归划分的方式,将所述最小外接矩形进行格网逐级划分,得到4n个大小相等的格网单元,n为除0外的自然数;将所述格网单元按层级自顶向下构建四叉树,所述格网单元对应所述四叉树中的多个节点,得到多个节点格网单元;将所述节点格网单元进行编号,并将所述叶子节点格网单元映射到对应的分布式计算节点中。
9.可选地,所述的大规模时空流数据实时空间连接查询方法,其中,所述接入参与所述流式空间连接任务中的时空流数据集,将所述时空流数据集中的空间对象映射到一个或多个叶子节点格网单元中,具体包括:获取所述叶子节点格网单元的集合c;所述时空流数据集包括时空流数据集r和时空流数据集s;当接收到参与所述流式空间连接任务中的所述时空流数据集时,获取所述时空流数据集r中的空间对象对应的外接矩形r.mbr,得到所述外接矩形r.mbr与所述叶子节点格网单元相交的集合c1;获取所述时空流数据集s中的空间对象对应的外接矩形,并将所述外接矩形向外扩充空间连接距离d,得到扩展外接矩形s.mbr,并得到所述外接矩形s.mbr与所述叶子节点格网单元相交的集合c2。
10.可选地,所述的大规模时空流数据实时空间连接查询方法,其中,所述当所述时空流数据集中的时空流数据进入所述叶子节点格网单元时,根据所述时空流数据对应的空间连接语义,在所述叶子节点格网单元中将所述时空流数据插入到geohash索引或四叉树索引中,实时判断所述时空流数据中的空间对象携带的时间信息是否超出空间连接语义,具体包括:
当时空流数据进入所述叶子节点格网单元中的计算节点时,获取所述时空流数据对应的空间连接语义,所述时空流数据对应的空间连接语义由所述流式空间任务定义,所述空间连接语义包括实时模式和窗口模式;若所述时空流数据对应的空间连接语义为实时模式,则在所述计算节点中建立geohash索引;根据所述geohash索引将所述时空流数据进行geohash编码,将经过geohash编码后得到编码结果作为扩充字段存入所述时空流数据中,并将所述时空流数据存入geohash索引中;实时检测所述时空流数据中的空间对象携带的时间信息是否超出实时模式的预设时间,若未超出,则所述时空流数据为有效数据,继续保存在所述geohash索引中,若超出,则将所述时空流数据从geohash索引中移除;若所述时空流数据对应的模式为窗口模式,则在所述计算节点中建立四叉树索引,并将所述时空流数据存入四叉树索引中;实时检测所述时空流数据中的空间对象携带的时间信息是否超出窗口模式的预设时间,若未超出,则所述时空流数据为有效数据,保存在所述四叉树索引中,若超出,则将所述时空流数据从四叉树索引中移除。
11.可选地,所述的大规模时空流数据实时空间连接查询方法,其中,所述根据所有叶子节点格网单元中现存的有效空间对象数量的变化,动态将所述节点格网单元进行切分或合并,并建立新的四叉树格网分区,具体包括:获取所述四叉树中的叶子节点哈希表和叶子节点父节点哈希表;当时空流数据进入所述叶子节点格网单元且所述时空流数据对应的模式为实时模式时,将所述叶子节点哈希表中的空间对象数量进行加1,当所述叶子节点哈希表中的有效空间对象数量超过第一预设数量时,将所述叶子节点格网单元进行分裂,并将所述叶子节点格网单元中geohash索引中的数据复制到每一个分裂的第一新叶子节点格网单元中;当所述叶子节点格网单元中的所述时空流数据对应的模式为实时模式且所述时空流数据超出所述实时模式的预设时间时,将所述叶子节点哈希表中的空间对象数量进行减1,当所述叶子节点父节点哈希表中的有效空间对象数量低于第二预设数量时,则将所述叶子节点父节点哈希表对应的父节点格网单元中的所有子节点格网单元进行合并,得到第一新叶子节点格网单元,并将所述父节点格网单元中的所有子节点格网单元当前的geohash索引中的数据复制并合并到第二新叶子节点格网单元中;当时空流数据进入所述叶子节点格网单元且所述时空流数据对应的模式为窗口模式时,将所述叶子节点哈希表中的空间对象数量进行加1,当时空流数据集中的任意一个叶子节点格网单元的有效空间对象数量超过第三预设数量时,将所述时空流数据集对应的格网进行分裂,并将所述叶子节点格网单元中根据时空流数据构建的四叉树中根节点的四个子节点中的四叉树索引数据复制到分裂后的第三新叶子节点格网单元中;当所述叶子节点父节点格网单元中的时空流数据对应的模式为窗口模式且所述时空流数据超出窗口模式的预设时间时,将所述叶子节点父节点哈希表中的空间对象数量进行减1,当所述叶子节点父节点格网单元中的有效空间对象数量低于第四预设数量时,则将所述叶子节点父节点哈希表对应的叶子节点父节点格网单元中的所有子节点格网单元
进行合并,得到第三新叶子节点格网单元,并将所述叶子节点父节点格网单元中的所有子节点格网单元的当前四叉树索引数据复制并合并到第四新叶子节点格网单元中。
12.可选地,所述的大规模时空流数据实时空间连接查询方法,其中,所述获取到达所述新的四叉树格网分区中叶子节点格网单元的时空流数据,根据geohash索引或四叉树索引对所述时空流数据中的空间对象进行空间连接计算,并输出符合空间连接计算的数据流元组,具体包括:当时空流数据到达叶子格网单元对应的计算节点且所述时空流数据对应的模式为实时模式时,在所述geohash索引中进行检索,判断所述geohash索引中是否存在符合空间连接条件的数据,若存在,则输出数据流元组;当时空流数据到达叶子节点格网单元对应的计算节点且所述空间对象中携带的时间信息对应的模式为窗口模式时,在所述四叉树索引中进行检索,判断所述四叉树索引中是否存在符合空间连接条件的数据,若存在,则输出数据流元组。
13.可选地,所述的大规模时空流数据实时空间连接查询方法,其中,所述获取所述叶子节点格网单元中符合空间连接条件的数据流元组,并将所述数据流元组进行实时去重与合并,具体包括;当所述时空流数据集中的空间对象映射到所述多个节点格网单元中时,得到各个格网单元对应的计算节点的映射结果;将所述映射结果与所述数据流元组进行比对;若所述映射结果中的数据包含了所述数据流元组中的数据,则将所述数据流元组中的数据进行去除;若所述映射结果中的数据未包含所述数据流元组中的数据,则将所述数据流元组中的数据存入所述映射结果中。
14.此外,为实现上述目的,本发明还提供一种大规模时空流数据实时空间连接查询系统,其中,所述大规模时空流数据实时空间连接查询系统包括:格网划分模块,用于获取流式空间连接任务,将所述流式空间连接任务对应的空间范围进行格网划分,得到多个格网单元,将所述多个格网单元按层级构建为四叉树,所述多个格网单元对应所述四叉树中的多个节点,得到多个节点格网单元,所述节点格网单元包括叶子节点格网单元和非叶子节点格网单元;数据映射模块,用于接入参与所述流式空间连接任务中的时空流数据集,将所述时空流数据集中的空间对象映射到一个或多个叶子节点格网单元中;空间索引模块,用于当所述时空流数据集中的时空流数据进入所述叶子节点格网单元时,根据所述时空流数据对应的空间连接语义,在所述叶子节点格网单元中将所述时空流数据插入到geohash索引或四叉树索引中,实时判断所述时空流数据中的空间对象携带的时间信息是否超出空间连接语义;动态切合模块,用于根据所有叶子节点格网单元中现存的有效空间对象数量的变化,动态将所述节点格网单元进行切分或合并,并建立新的四叉树格网分区;空间连接模块,用于获取到达所述新的四叉树格网分区中叶子节点格网单元的时空流数据,根据geohash索引或四叉树索引对所述时空流数据中的空间对象进行空间连接计算,并输出符合空间连接计算的数据流元组;
去重合并模块,用于获取所述叶子节点格网单元中符合空间连接条件的数据流元组,并将所述数据流元组进行实时去重与合并。
15.此外,为实现上述目的,本发明还提供一种终端,其中,所述终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的大规模时空流数据实时空间连接查询程序,所述大规模时空流数据实时空间连接查询程序被所述处理器执行时实现如上所述的大规模时空流数据实时空间连接查询方法的步骤。
16.此外,为实现上述目的,本发明还提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有大规模时空流数据实时空间连接查询程序,所述大规模时空流数据实时空间连接查询程序被处理器执行时实现如上所述的大规模时空流数据实时空间连接查询方法的步骤。
17.本发明中,获取流式空间连接任务,将所述流式空间连接任务对应的空间范围进行格网划分,得到多个格网单元,将所述多个格网单元按层级构建为四叉树,所述多个格网单元对应所述四叉树中的多个节点,得到多个节点格网单元,所述节点格网单元包括叶子节点格网单元和非叶子节点格网单元。接入参与所述流式空间连接任务中的时空流数据集,将所述时空流数据集中的空间对象映射到一个或多个叶子节点格网单元中;当所述时空流数据集中的时空流数据进入所述叶子节点格网单元时,根据所述时空流数据对应的空间连接语义,在所述叶子节点格网单元中将所述时空流数据插入到geohash索引或四叉树索引中,实时判断所述时空流数据中的空间对象携带的时间信息是否超出空间连接语义;根据所有叶子节点格网单元中现存的有效空间对象数量的变化,动态将所述节点格网单元进行切分或合并,并建立新的四叉树格网分区;获取到达所述新的四叉树格网分区中叶子节点格网单元的时空流数据,根据geohash索引或四叉树索引对所述时空流数据中的空间对象进行空间连接计算,并输出符合空间连接计算的数据流元组;获取所述叶子节点格网单元中符合空间连接条件的数据流元组,并将所述数据流元组进行实时去重与合并。本发明一方面通过建立四叉树格网,将数据流中的空间对象均衡的存储到格网单元中,并且根据格网单元内空间对象数量的变化,动态地调整格网单元的空间大小,保证了格网单元内处理空间对象的均衡性与时效性,另一方面,针对时空流数据所处的不同空间语义模式分别建立不同的空间索引,并对流入格网单元的时空流数据实时进行更新,加速地完成了格网单元内的空间连接计算,同时,也进一步提高了大规模实施空间连接的时效性。
附图说明
18.图1是本发明大规模时空流数据实时空间连接查询方法的较佳实施例的流程图;图2是本发明大规模时空流数据实时空间连接查询方法的较佳实施例中四叉树格网构建与编码的示意图;图3是本发明大规模时空流数据实时空间连接查询方法的较佳实施例中时空流中空间对象格网单元分区的示意图;图4是本发明大规模时空流数据实时空间连接查询方法的较佳实施例中格网单元内geohash索引构建的示意图;图5是本发明大规模时空流数据实时空间连接查询方法的较佳实施例中格网单元内四叉树索引构建的示意图;
图6是本发明大规模时空流数据实时空间连接查询方法的较佳实施例中实时模式下的格网合并与分裂的示意图;图7是本发明大规模时空流数据实时空间连接查询方法的较佳实施例中窗口模式下的格网合并与分裂的示意图;图8是本发明大规模时空流数据实时空间连接查询系统的较佳实施例的结构图;图9为本发明终端的较佳实施例的结构图。
具体实施方式
19.为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
20.本发明较佳实施例所述的大规模时空流数据实时空间连接查询方法,如图1所示,所述大规模时空流数据实时空间连接查询方法包括以下步骤:步骤s10、获取流式空间连接任务,将所述流式空间连接任务对应的空间范围进行格网划分,得到多个格网单元,将所述多个格网单元按层级构建为四叉树,所述多个格网单元对应所述四叉树中的多个节点,得到多个节点格网单元,所述节点格网单元包括叶子节点格网单元和非叶子节点格网单元。
21.其中,流式空间连接任务是指针对在一定空间范围的两个时空流数据集,对它们实时到达的时空流空间对象进行空间连接,并将结果进行输出的过程。
22.其中,四叉树又称四元树,是一种树状数据结构,在每一个节点上会有四个子区块,四叉树常应用于二维空间数据的分析与分类,它将数据区分成为四个象限,在数据插入时,我们通过其二维属性选择四个叉中的一个继续向下,直至叶子结点。
23.具体地,如图2所示,当接收到流式空间连接任务时,获取时空流数据集在地理空间中对应的最小外接矩形a.mbr《x
min
,y
min
,x
max
,y
max
》,其中《x
min
,y
min
》和《x
max
,y
max
》分别表示矩形 a左下角和右上角的坐标,根据递归划分的方式,将所述最小外接矩形进行格网逐级划分,得到4n个大小相等的标准化格网单元,n为除0外的自然数。
24.将所述格网单元按层级自顶向下构建四叉树,所述格网单元对应所述四叉树中的多个节点,得到多个节点格网单元。
25.其中,没有子节点的格网单元为叶子节点格网单元,其余格网单元为非叶子节点格网单元,且每一个非叶子节点有且仅有4个子节点。
26.将所述节点格网单元进行编号,其中高16位标识格网层级,低16位标识格网逐层编号,并将所述叶子节点格网单元映射到对应的分布式计算节点中。
27.其中,计算节点是指与格网单元的一个映射关系,在本发明中,每一个格网单元都会与对应的计算节点进行映射,并且,每一个计算节点中都会存储一部分数据,这部分数据会参与时空流数据到达时的计算,当一个时空流数据的空间对象到达格网单元计算节点时,可以快速和计算节点中的数据进行计算,产生映射结果。
28.步骤s20、接入参与所述流式空间连接任务中的时空流数据集,将所述时空流数据集中的空间对象映射到一个或多个叶子节点格网单元中。
29.具体地,获取所述叶子节点格网单元的集合c(c1,c2,c3·····cm
),其中m为集
合c中叶子节点格网单元的数量。
30.所述时空流数据集包括时空流数据集r和时空流数据集s。
31.如图3所示,当接收到参与所述流式空间连接任务中的所述时空流数据集时,对于一个空间对象r∈r,获取所述时空流数据集r中的空间对象对应的外接矩形r.mbr,将其归属于集合c1,得到所述外接矩形r.mbr与所述叶子节点格网单元相交的集合c1(c
11
,c
12
,c
13
·····c1b
);其中,c
1b
表示第b个与外接矩形相交的所述叶子节点格网单元,c1表示所有与外接矩形r.mbr相交的叶子节点格网单元的全集。
32.获取所述时空流数据集s中的空间对象对应的外接矩形,对于一个空间对象s∈s,并将所述外接矩形向外扩充空间连接距离d,得到扩展外接矩形s.mbr,将其归属于集合c2(c
21
,c
22
,c
23
·····c2e
),其中,e表示第e个与扩展外接矩形相交的所述叶子节点格网单元,c2表示所有与扩展外接矩形s.mbr相交的叶子节点格网单元的全集,数据集中只有非常少部分空间对象会横跨多个格网分区。
33.步骤s30、当所述时空流数据集中的时空流数据进入所述叶子节点格网单元时,根据所述时空流数据对应的空间连接语义,在所述叶子节点格网单元中将所述时空流数据插入到geohash索引或四叉树索引中,实时判断所述时空流数据中的空间对象携带的时间信息是否超出空间连接语义。
34.其中,空间连接语义是指实时模式空间连接(仅对两个数据流中几乎同时到达的数据进行空间连接)或者窗口空间连接(对两个数据流中在一个时间段到达的数据进行空间连接)。
35.具体地,当时空流数据进入所述叶子节点格网单元中的计算节点时,获取所述时空流数据对应的空间连接语义,所述时空流数据对应的空间连接语义由所述流式空间任务定义,所述空间连接语义包括实时模式和窗口模式。
36.其中,时空流数据除了本身作为一个空间对象外,还会携带一个产生的时间信息,也可以称之为时间戳。
37.其中,实时模式空间连接指仅对两个数据流中几乎同时到达的数据进行空间连接,并且实时模式中数据累积少,数据变化频率快,窗口空间连接指对两个数据流中在一个时间段到达的数据进行空间连接,并且窗口模式中数据量显著大于实时模式,且数据需要持续存储窗口时长。
38.如图4所示,若所述时空流数据对应的空间连接语义为实时模式,则在所述计算节点中建立geohash索引。
39.根据所述geohash索引将所述时空流数据进行geohash编码,将经过geohash编码后得到编码结果作为扩充字段存入所述时空流数据中,并将所述时空流数据存入geohash索引中。
40.实时检测所述时空流数据中的空间对象携带的时间信息是否超出实时模式的预设时间,若未超出,则所述时空流数据为有效数据,继续保存在所述geohash索引中,若超出,则将所述时空流数据从geohash索引中移除。
41.其中,geohash索引是指将空间对象的空间位置编码为一串字符,通过字符串的比较可以得到空间的大致范围。
42.如图5所示,若所述时空流数据对应的模式为窗口模式,则在所述计算节点中建立
四叉树索引,并将所述时空流数据存入四叉树索引中。
43.实时检测所述时空流数据中的空间对象携带的时间信息是否超出窗口模式的预设时间,若未超出,则所述时空流数据为有效数据,保存在所述四叉树索引中,若超出,则将所述时空流数据从四叉树索引中移除。
44.其中,四叉树索引是指将叶子节点格网单元中的空间对象根据空间位置组织成一棵四叉树,通过分类查找的方式可以得到空间的大致范围。
45.步骤s40、根据所有叶子节点格网单元中现存的有效空间对象数量的变化,动态将所述节点格网单元进行切分或合并,并建立新的四叉树格网分区。
46.其中,时空流数据集实时存储在很多个格网单元计算节点组成的集群中,时空流数据集中空间对象数量是当前时刻总的数据量,而格网单元的数据量是当前时刻各自的数据量。
47.获取所述四叉树中的叶子节点哈希表map
leaf
《gid1,count1》和叶子节点父节点哈希表map
parent
《gid2,count2》,其中,gid指格网单元编号(节点编号),count为节点允许数据延迟时长存储的数据量。
48.其中,叶子节点哈希表维护的是叶子节点(最后一层)的信息;叶子节点父节点哈希表维护叶子节点父节点(倒数第二层)的信息。
49.如图6所示,当时空流数据进入所述叶子节点格网单元且所述时空流数据对应的模式为实时模式时,将所述叶子节点哈希表中的空间对象数量count1进行加1,当所述叶子节点哈希表中的有效空间对象数量超过第一预设数量时,例如count1》5*count
avg
时,(其中,count
avg
=所有叶子节点格网单元中数据量的和/叶子节点个数),将所述叶子节点格网单元进行分裂,并将所述叶子节点格网单元中geohash索引中的数据复制到每一个分裂后产生的第一新叶子节点格网单元中。
50.当所述叶子节点格网单元中的所述时空流数据对应的模式为实时模式且所述时空流数据超出所述实时模式的预设时间时,将所述叶子节点哈希表中的空间对象数量count1进行减1,当所述叶子节点父节点哈希表中的有效空间对象数量低于第二预设数量时,例如count2《0.8*count
avg
时,则将所述叶子节点父节点哈希表对应的父节点格网单元中的所有子节点格网单元进行合并,得到第一新叶子节点格网单元,并将所述父节点格网单元中的所有子节点格网单元当前的geohash索引中的数据复制并合并到第二新叶子节点格网单元中。
51.如图7所示,当时空流数据进入所述叶子节点格网单元且所述时空流数据对应的模式为窗口模式时,将所述叶子节点哈希表中的空间对象数量进行加1,当时空流数据集中的任意一个叶子节点格网单元的有效空间对象数量超过第三预设数量时,例如,count1》5*count
avg
时,将所述时空流数据集对应的格网进行分裂,并将所述叶子节点格网单元中根据时空流数据构建的四叉树中根节点的四个子节点中的四叉树索引数据复制到分裂后的第三新叶子节点格网单元中。
52.当所述叶子节点父节点格网单元中的时空流数据对应的模式为窗口模式且所述时空流数据超出窗口模式的预设时间时,将所述叶子节点父节点哈希表中的空间对象数量进行减1,当所述叶子节点父节点格网单元中的有效空间对象数量低于第四预设数量时,例如,count2《0.8*count
avg
时,则将所述叶子节点父节点哈希表对应的叶子节点父节点格网
单元中的所有子节点格网单元进行合并,得到第三新叶子节点格网单元,并将所述叶子节点父节点格网单元中的所有子节点格网单元的当前四叉树索引数据复制并合并到第四新叶子节点格网单元中。
53.其中,当一个非叶子节点成为叶子节点时,则将转变后的空间对象信息加入到叶子节点哈希表,当一个叶子节点成为非叶子节点时,将空间对象信息移出叶子节点哈希表,叶子节点父节点哈希表转变过程同上。
54.步骤s50、获取到达所述新的四叉树格网分区中叶子节点格网单元的时空流数据,根据geohash索引或四叉树索引对所述时空流数据中的空间对象进行空间连接计算,并输出符合空间连接计算的数据流元组。
55.若当前到达的时空流数据对应的空间连接语义为实时模式,则在所述新的四叉树格网分区中叶子节点格网单元中的计算节点中建立geohash索引。
56.根据所述geohash索引将所述当前到达的时空流数据进行geohash编码,将经过geohash编码后得到编码结果作为扩充字段存入所述当前到达的时空流数据中,并将所述当前到达的时空流数据存入geohash索引中。
57.实时检测所述当前到达的时空流数据中的空间对象携带的时间信息是否超出实时模式的预设时间,若未超出,则所述当前到达的时空流数据为有效数据,继续保存在所述geohash索引中,若超出,则将所述当前到达的时空流数据从geohash索引中移除。
58.进一步的,在所述geohash索引中进行检索,判断所述geohash索引中是否存在符合空间连接条件的数据,若存在,则输出数据流元组《r1,s1》。
59.若所述当前到达的时空流数据对应的模式为窗口模式,则在所述新的四叉树格网分区中叶子节点格网单元中的计算节点中建立四叉树索引,并将所述当前到达的时空流数据存入四叉树索引中;实时检测所述当前到达的时空流数据中的空间对象携带的时间信息是否超出窗口模式的预设时间,若未超出,则所述当前到达的时空流数据为有效数据,保存在所述四叉树索引中,若超出,则将所述时空流数据从四叉树索引中移除。
60.进一步的,在所述四叉树索引中进行检索,判断所述四叉树索引中是否存在符合空间连接条件的数据,若存在,则输出数据流元组《r2,s2》。
61.步骤s60、获取所述叶子节点格网单元中符合空间连接条件的数据流元组,并将所述数据流元组进行实时去重与合并。
62.其中,在步骤s20的节点格网单元投影中,会存在一个时空流数据的空间对象投影到多个格网单元的情况,因此需要对各个格网单元计算节点的映射结果进行汇总,并根据得到的数据流元组进行去重,将映射结果中没有的数据流元组进行合并。
63.当所述时空流数据集中的空间对象映射到所述多个节点格网单元中时,得到各个格网单元对应的计算节点的映射结果。
64.将所述映射结果与所述数据流元组进行比对。
65.若所述映射结果中的数据包含了所述数据流元组中的数据,则将所述数据流元组中的数据进行去除。
66.若所述映射结果中的数据未包含所述数据流元组中的数据,则将所述数据流元组中的数据合并存入所述映射结果中,并将所述映射结果中去重和合并后的数据作为实时空
间连接任务的总结果。
67.本发明中,在分布式计算中,最终的计算结果需要在所有节点计算完成后进行汇总,计算时间取决于最慢的计算节点,因此,本发明将时空流数据按空间位置进行分区,可以有效避免因数据倾斜带来的部分格网分区计算节点负载高带来的时延问题,在格网分区内进行空间连接计算时,使用流式空间索引可以有效减少流式空间连接的无效判断,从而实现海量时空流数据的高效实时空间连接计算。
68.进一步地,如图8所示,基于上述大规模时空流数据实时空间连接查询方法,本发明还相应提供了一种大规模时空流数据实时空间连接查询系统,其中,所述大规模时空流数据实时空间连接查询系统包括:格网划分模块51,用于获取流式空间连接任务,将所述流式空间连接任务对应的空间范围进行格网划分,得到多个格网单元,将所述多个格网单元按层级构建为四叉树,所述多个格网单元对应所述四叉树中的多个节点,得到多个节点格网单元,所述节点格网单元包括叶子节点格网单元和非叶子节点格网单元;数据映射模块52,用于接入参与所述流式空间连接任务中的时空流数据集,将所述时空流数据集中的空间对象映射到一个或多个叶子节点格网单元中;空间索引模块53,用于当所述时空流数据集中的时空流数据进入所述叶子节点格网单元时,根据所述时空流数据对应的空间连接语义,在所述叶子节点格网单元中将所述时空流数据插入到geohash索引或四叉树索引中,实时判断所述时空流数据中的空间对象携带的时间信息是否超出空间连接语义;动态切合模块54,用于根据所有叶子节点格网单元中现存的有效空间对象数量的变化,动态将所述节点格网单元进行切分或合并,并建立新的四叉树格网分区;空间连接模块55,用于获取到达所述新的四叉树格网分区中叶子节点格网单元的时空流数据,根据geohash索引或四叉树索引对所述时空流数据中的空间对象进行空间连接计算,并输出符合空间连接计算的数据流元组;去重合并模块56,用于获取所述叶子节点格网单元中符合空间连接条件的数据流元组,并将所述数据流元组进行实时去重与合并。
69.进一步地,如图9所示,基于上述大规模时空流数据实时空间连接查询方法和系统,本发明还相应提供了一种终端,所述终端包括处理器10、存储器20及显示器30。图9仅示出了终端的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
70.所述存储器20在一些实施例中可以是所述终端的内部存储单元,例如终端的硬盘或内存。所述存储器20在另一些实施例中也可以是所述终端的外部存储设备,例如所述终端上配备的插接式硬盘,智能存储卡(smart media card, smc),安全数字(secure digital, sd)卡,闪存卡(flash card)等。进一步地,所述存储器20还可以既包括所述终端的内部存储单元也包括外部存储设备。所述存储器20用于存储安装于所述终端的应用软件及各类数据,例如所述安装终端的程序代码等。所述存储器20还可以用于暂时地存储已经输出或者将要输出的数据。在一实施例中,存储器20上存储有大规模时空流数据实时空间连接查询程序40,该大规模时空流数据实时空间连接查询程序40可被处理器10所执行,从而实现本技术中大规模时空流数据实时空间连接查询方法。
71.所述处理器10在一些实施例中可以是一中央处理器(central processing unit, cpu),微处理器或其他数据处理芯片,用于运行所述存储器20中存储的程序代码或处理数据,例如执行所述大规模时空流数据实时空间连接查询方法等。
72.所述显示器30在一些实施例中可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organic light-emitting diode,有机发光二极管)触摸器等。所述显示器30用于显示在所述终端的信息以及用于显示可视化的用户界面。所述终端的部件10-30通过系统总线相互通信。
73.在一实施例中,当处理器10执行所述存储器20中大规模时空流数据实时空间连接查询程序40时实现所述大规模时空流数据实时空间连接查询方法的步骤。
74.本发明还提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有大规模时空流数据实时空间连接查询程序,所述大规模时空流数据实时空间连接查询程序被处理器执行时实现如上所述的大规模时空流数据实时空间连接查询方法的步骤。
75.综上所述,本发明提供一种大规模时空流数据实时空间连接查询方法及相关设备,所述方法包括:获取流式空间连接任务,将所述流式空间连接任务对应的空间范围进行格网划分,得到多个格网单元,将所述多个格网单元按层级构建为四叉树,所述多个格网单元对应所述四叉树中的多个节点,得到多个节点格网单元,所述节点格网单元包括叶子节点格网单元和非叶子节点格网单元。接入参与所述流式空间连接任务中的时空流数据集,将所述时空流数据集中的空间对象映射到一个或多个叶子节点格网单元中;当所述时空流数据集中的时空流数据进入所述叶子节点格网单元时,根据所述时空流数据对应的空间连接语义,在所述叶子节点格网单元中将所述时空流数据插入到geohash索引或四叉树索引中,实时判断所述时空流数据中的空间对象携带的时间信息是否超出空间连接语义;根据所有叶子节点格网单元中现存的有效空间对象数量的变化,动态将所述节点格网单元进行切分或合并,并建立新的四叉树格网分区;获取到达所述新的四叉树格网分区中叶子节点格网单元的时空流数据,根据geohash索引或四叉树索引对所述时空流数据中的空间对象进行空间连接计算,并输出符合空间连接计算的数据流元组;获取所述叶子节点格网单元中符合空间连接条件的数据流元组,并将所述数据流元组进行实时去重与合并。本发明一方面通过建立四叉树格网,将数据流中的空间对象均衡的存储到其中的格网单元中,并且根据格网单元内空间对象数量的变化,动态地调整格网单元的空间大小,保证了格网单元内处理空间对象的均衡性与时效性,另一方面,针对时空流数据所处的不同空间语义模式分别建立不同的空间索引,并对流入格网单元的时空流数据实时进行更新,加速地完成了格网单元内的空间连接计算,同时,也进一步提高了大规模实施空间连接的时效性。
76.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者终端中还存在另外的相同要素。
77.当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的程序可存储于一计算机可读取的计算机可读存储介质中,所述程序在执行时可包括如上述各方法实施
例的流程。其中所述的计算机可读存储介质可为存储器、磁碟、光盘等。
78.应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1