一种路网移动对象概率聚集查询方法及系统转让专利

申请号 : CN201611020547.3

文献号 : CN106528815B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 史涯晴黄松任正平李辉郑长友王梅娟董会

申请人 : 中国人民解放军理工大学

摘要 :

本发明提供一种路网移动对象概率聚集查询方法及系统,其中,所述方法包括:对采样数据分别进行流处理和批处理;根据批处理后的采样数据构建时空索引;构建非重复计数聚集索引结构;在所述非重复计数聚集索引结构中查找与用户的查询请求中的查询区域相交的所有目标bucket;确定各个所述目标bucket对应的sketch数量以及所述查询区域对应的sketch数量;生成所述查询区域中各个路段对应的sketch值;计算所述查询区域的全局sketch值,并将所述全局sketch值转换为与所述查询请求相对应的移动车辆的近似聚集值。本发明提供的路网移动对象概率聚集查询方法及系统,能够将存储移动对象个体轨迹的批处理技术融入到路网数据流近似聚集查询中,以提高查询精度。

权利要求 :

1.一种路网移动对象概率聚集查询方法,其特征在于,所述方法包括:

对定位设备获取的采样数据分别进行流处理和批处理;其中,进行流处理后的数据中包括预设参数的sketch值;

根据批处理后的采样数据构建支持不确定数据获取的时空索引,并将流处理后的sketch值记录于索引结点项中;

其中,时空索引的空间维度为考虑路段邻接关系和时间属性的路网索引结构,叶结点子图中每条路段设计一个一维时间B+-tree索引,B+-tree索引统一用上层时间粒度TID索引下层时间粒度tID,在原有结点项基础上增加sketch的处理信息和历史bucket的标识,为后续非重复计数聚集索引方便快捷地获取每个栅格中的sketch值;

路网索引结构作为多维时空索引结构的空间索引部分用以解决路径查询,考虑查询用时间约束进行路段选择,因此索引结点邻接矩阵值采用路段限速行驶下的最短时间,叶结点矩阵中用最短时间值记录子图包含的所有内边路段,行、列为对应子图的所有顶点;中间结点矩阵中用最短时间值记录子图涉及的所有外边路段,行、列为其孩子结点的所有边界顶点;

多维时空索引结构将路网索引结构作为空间维度,将针对一维时间的B+-tree结构作为时间维度,查询进行中逐步记录下结点边界顶点间路径以Region表形式保存,达到间接索引部分不确定数据,提高查询效率目的;

利用Hadoop开源平台构建支持路网移动对象概率范围查询的时空索引结构,具体包括:采用并行多级k路划分技术将路网划分为考虑路段连接关系的索引基本单元;以路段最大限速下的最短时间作为时间权重形成各索引基本单元的最短时间矩阵,以构建路网索引结构;构建路网移动对象多维时空索引结构,并实现索引的并行创建;

根据所述时空索引,构建基于自适应多维直方图的非重复计数聚集索引结构,所述非重复计数聚集索引结构中包括至少一个桶bucket;

获取用户的查询请求,并在所述非重复计数聚集索引结构中查找与所述查询请求中的查询区域相交的所有目标bucket;

确定各个所述目标bucket对应的sketch数量,并根据各个所述目标bucket的面积以及相交区域的面积,确定所述查询区域对应的sketch数量;

其中,查询区域qR的合适sketch数量M计算:假设bi为与qR相交的各个bucket,mi为bi的sketch数量,RqRi为qR与bi相交面积,Ri为相交bi的面积,那么M的值为大于各个bucket内由面积比获得的sketch数量之和的最小整数,定义M如下:基于所述查询区域对应的sketch数量,设置所述查询区域对应的sketch生成器,以获取所述查询区域中各个路段中的移动对象,并生成所述查询区域中各个路段对应的sketch值;

将所述查询区域中各个路段对应的sketch值进行或运算,得到所述查询区域的全局sketch值,并将所述全局sketch值转换为与所述查询请求相对应的移动车辆的近似聚集值。

2.根据权利要求1所述的方法,其特征在于,对定位设备获取的采样数据进行流处理具体包括:以路段为单位设置sketch生成器,通过所述sketch生成器对获取的所述采样数据进行近似处理,以生成单位路段单位时刻的车辆聚集sketch值;

对定位设备获取的采样数据进行批处理具体包括:

将获取的所述采样数据存入数据库。

3.根据权利要求2所述的方法,其特征在于,构建基于自适应多维直方图的非重复计数聚集索引结构具体包括:将路网划分为多个栅格单元,其中每个栅格单元对应一个路段,各个路段与表征该路段移动车辆sketch值的频率值相关联;

对各个频率值进行聚类运算,以将所述多个栅格单元划分为至少一个桶bucket,其中,各个bucket中包含的频率值处于一个聚类集中;

建立与划分后的至少一个bucket相对应的二叉树索引,所述二叉树索引中的每个叶结点对应一个bucket;

将划分后的至少一个bucket写入内存,并对至少一个bucket保持更新、合并和分裂,以使得历史bucket从内存转存至数据库中。

4.根据权利要求1所述的方法,其特征在于,按照下述公式确定各个所述目标bucket对应的sketch数量:y=0.747978﹒x0.708563

其中,y表示查询过程中各个目标bucket中移动对象的数量,x表示查询过程中各个目标bucket对应的sketch数量。

5.根据权利要求1所述的方法,其特征在于,获取所述查询区域中各个路段中的移动对象具体包括:利用Hadoop开源平台构建支持路网移动对象概率范围查询的时空索引结构;

根据用户的查询请求,分析时间、空间和概率查询条件;

根据时间查询条件进行时间剪枝,以缩小候选集范围,判断输入的数据是确定数据还是不确定数据;

若是确定数据则根据所述时空索引结构,将空间维度结合时间维度索引,依据时间维度索引叶结点项中的OID与RowKey_TimeStamp唯一确定移动对象;

若是不确定数据则基于Hadoop的移动对象查询进行并行处理。

6.一种路网移动对象概率聚集查询系统,所述系统与定位设备相连,其特征在于,所述系统包括:数据处理单元,用于对定位设备获取的采样数据分别进行流处理和批处理;其中,进行流处理后的数据中包括预设参数的sketch值;

时空索引构建单元,用于根据批处理后的采样数据构建支持不确定数据获取的时空索引,并将流处理后的sketch值记录于索引结点项中;

其中,时空索引的空间维度为考虑路段邻接关系和时间属性的路网索引结构,叶结点子图中每条路段设计一个一维时间B+-tree索引,B+-tree索引统一用上层时间粒度TID索引下层时间粒度tID,在原有结点项基础上增加sketch的处理信息和历史bucket的标识,为后续非重复计数聚集索引方便快捷地获取每个栅格中的sketch值;

路网索引结构作为多维时空索引结构的空间索引部分用以解决路径查询,考虑查询用时间约束进行路段选择,因此索引结点邻接矩阵值采用路段限速行驶下的最短时间,叶结点矩阵中用最短时间值记录子图包含的所有内边路段,行、列为对应子图的所有顶点;中间结点矩阵中用最短时间值记录子图涉及的所有外边路段,行、列为其孩子结点的所有边界顶点;

多维时空索引结构将路网索引结构作为空间维度,将针对一维时间的B+-tree结构作为时间维度,查询进行中逐步记录下结点边界顶点间路径以Region表形式保存,达到间接索引部分不确定数据,提高查询效率目的;

利用Hadoop开源平台构建支持路网移动对象概率范围查询的时空索引结构,具体包括:采用并行多级k路划分技术将路网划分为考虑路段连接关系的索引基本单元;以路段最大限速下的最短时间作为时间权重形成各索引基本单元的最短时间矩阵,以构建路网索引结构;构建路网移动对象多维时空索引结构,并实现索引的并行创建;

非重复计数聚集索引构建单元,用于根据所述时空索引,构建基于自适应多维直方图的非重复计数聚集索引结构,所述非重复计数聚集索引结构中包括至少一个桶bucket;

查询请求处理单元,用于获取用户的查询请求,并在所述非重复计数聚集索引结构中查找与所述查询请求中的查询区域相交的所有目标bucket;

sketch数量确定单元,用于确定各个所述目标bucket对应的sketch数量,并根据各个所述目标bucket的面积以及相交区域的面积,确定所述查询区域对应的sketch数量;

其中,查询区域qR的合适sketch数量M计算:假设bi为与qR相交的各个bucket,mi为bi的sketch数量,RqRi为qR与bi相交面积,Ri为相交bi的面积,那么M的值为大于各个bucket内由面积比获得的sketch数量之和的最小整数,定义M如下:移动对象获取单元,用于基于所述查询区域对应的sketch数量,设置所述查询区域对应的sketch生成器,以获取所述查询区域中各个路段中的移动对象,并生成所述查询区域中各个路段对应的sketch值;

聚集值确定单元,用于将所述查询区域中各个路段对应的sketch值进行或运算,得到所述查询区域的全局sketch值,并将所述全局sketch值转换为与所述查询请求相对应的移动车辆的近似聚集值。

7.根据权利要求6所述的系统,其特征在于,所述数据处理单元具体包括:

近似处理模块,用于以路段为单位设置sketch生成器,通过所述sketch生成器对获取的所述采样数据进行近似处理,以生成单位路段单位时刻的车辆聚集sketch值;

数据存储模块,用于将获取的所述采样数据存入数据库。

8.根据权利要求7所述的系统,其特征在于,所述非重复计数聚集索引构建单元具体包括:栅格单元划分模块,用于将路网划分为多个栅格单元,其中每个栅格单元对应一个路段,各个路段与表征该路段移动车辆sketch值的频率值相关联;

桶划分模块,用于对各个频率值进行聚类运算,以将所述多个栅格单元划分为至少一个桶bucket,其中,各个bucket中包含的频率值处于一个聚类集中;

二叉树索引建立模块,用于建立与划分后的至少一个bucket相对应的二叉树索引,所述二叉树索引中的每个叶结点对应一个bucket;

数据更新模块,用于将划分后的至少一个bucket写入内存,并对至少一个bucket保持更新、合并和分裂,以使得历史bucket从内存转存至数据库中。

说明书 :

一种路网移动对象概率聚集查询方法及系统

技术领域

[0001] 本发明涉及时空数据管理技术领域,特别涉及一种路网移动对象概率聚集查询方法及系统。

背景技术

[0002] 大数据计算模式是指根据大数据的不同数据特征和计算特征,从多样性的大数据计算问题和需求中提炼并建立的各种高层抽象和模型。大数据的计算模式主要分为批处理计算模式和流处理计算模式,批处理计算模式是在对数据进行存储的基础上进行处理,而流处理计算模式则直接在内存中完成,更多的依赖于内存中的数据摘要结构。路网移动对象的聚集查询是一种典型的流处理计算模式,但实际数据采样过程中由于数据存储、设备盲区、能源节约和设备耗损等原因,路网移动对象定位设备的采样频率无法达到排除不确定数据影响的密集采样程度,连续采样间移动对象的位置存在不确定性,如果需要按时空条件查询某条道路的车辆聚集值就必须带有概率属性。这种情况下,单一的流处理计算模式并不能保证聚集查询的精准性,因此设计基于混合式大数据计算模式的概率聚集查询系统,将流处理和批处理计算模式相结合,对数据访问方法进行有针对性的优化,在兼顾移动对象轨迹不确定性和位置数据体量极大性前提下提供精准、实时的移动对象聚集查询变得尤为重要。
[0003] 路网非欧氏空间移动对象聚集查询通常使用数据流近似处理技术解决问题。sketch技术是计算机领域处理数据流的一种常用近似处理技术。Tao等人(TaoY,Kollios G,Considine J,Li F and Papadias D.Spatio-Temporal Aggregation Using Sketches[C].Proceedings of the International Conference on Data Engineering,2004:214-
226.)将aRB-tree结合sketch技术,提出利用OR运算解决移动对象时空间重复计数问题。但是sketch技术针对欧氏空间移动对象的聚集查询,对于路网这类非欧氏空间的移动车辆聚集查询不能直接使用;其次,sketch技术本身存在sketch数量与移动对象数量不一致问题,容易产生较大的查询误差。Feng等人(Feng J.,Lu C.and Wang Y.Sketch RR-tree:a spatio-temporal aggregation index for network-constrained moving objects[C].Proceedings of International Conference on Innovative Computing,Information and Control,Dalian:IEEE,2008:4-7.)将Sketch技术结合RR-tree提出了适用于路网的Sketch-RR-tree,在此基础上结合AMH动态划分思想,提出了DynSketch索引结构。此后在AMH基础上又将改进版本AMH*和AMH+与sketch技术结合,保证查询时间和查询误差优势下显著减少了存储空间。但是单纯使用数据流近似处理技术未考虑路网移动对象基于采样频率的不确定性,确定数据以概要数据结构形式存储在内存中,而必须通过查询时间前后确定数据推导的不确定数据无法获取,查询精度得不到保证。

发明内容

[0004] 本发明的目的在于提供一种路网移动对象概率聚集查询方法及系统,能够将存储移动对象个体轨迹的批处理技术融入到路网数据流近似聚集查询中,以提高查询精度。
[0005] 为实现上述目的,本发明提供一种路网移动对象概率聚集查询方法,所述方法包括:对定位设备获取的采样数据分别进行流处理和批处理;其中,进行流处理后的数据中包括预设参数的sketch值;根据批处理后的采样数据构建支持不确定数据获取的时空索引,并将流处理后的sketch值记录于索引结点项中;根据所述时空索引,构建基于自适应多维直方图的非重复计数聚集索引结构,所述非重复计数聚集索引结构中包括至少一个桶bucket;获取用户的查询请求,并在所述非重复计数聚集索引结构中查找与所述查询请求中的查询区域相交的所有目标bucket;确定各个所述目标bucket对应的sketch数量,并根据各个所述目标bucket的面积以及相交区域的面积,确定所述查询区域对应的sketch数量;基于所述查询区域对应的sketch数量,设置所述查询区域对应的sketch生成器,以获取所述查询区域中各个路段中的移动对象,并生成所述查询区域中各个路段对应的sketch值;将所述查询区域中各个路段对应的sketch值进行或运算,得到所述查询区域的全局sketch值,并将所述全局sketch值转换为与所述查询请求相对应的移动车辆的近似聚集值。
[0006] 进一步地,对定位设备获取的采样数据进行流处理具体包括:以路段为单位设置sketch生成器,通过所述sketch生成器对获取的所述采样数据进行近似处理,以生成单位路段单位时刻的车辆聚集sketch值;对定位设备获取的采样数据进行批处理具体包括:将获取的所述采样数据存入数据库。
[0007] 进一步地,构建基于自适应多维直方图的非重复计数聚集索引结构具体包括:将路网划分为多个栅格单元,其中每个栅格单元对应一个路段,各个路段与表征该路段移动车辆sketch值的频率值相关联;对各个频率值进行聚类运算,以将所述多个栅格单元划分为至少一个桶bucket,其中,各个bucket中包含的频率值处于一个聚类集中;建立与划分后的所述至少一个bucket相对应的二叉树索引,所述二叉树索引中的每个叶结点对应一个bucket;将划分后的所述至少一个bucket写入内存,并对所述至少一个bucket保持更新、合并和分裂,以使得历史bucket从内存转存至数据库中。
[0008] 进一步地,按照下述公式确定各个所述目标bucket对应的sketch数量:
[0009] y=0.747978﹒x0.708563
[0010] 其中,y表示查询过程中各个目标bucket中移动对象的数量,x表示查询过程中各个目标bucket对应的sketch数量。
[0011] 进一步地,按照下述公式确定所述查询区域对应的sketch数量:
[0012]
[0013] 其中,M表示所述查询区域对应的sketch数量,bi表示第i个目标bucket,qR表示所述查询区域,mi表示第i个目标bucket中sketch数量,RqRi表示所述查询区域与第i个目标bucket相交的面积,Ri表示第i个目标bucket的面积。
[0014] 进一步地,获取所述查询区域中各个路段中的移动对象具体包括:利用Hadoop开源平台构建支持路网移动对象概率范围查询的时空索引结构;根据用户的查询请求,分析时间、空间和概率查询条件;根据时间查询条件进行时间剪枝,以缩小候选集范围,判断输入的数据是确定数据还是不确定数据;若是确定数据则根据所述时空索引结构,将空间维度结合时间维度索引,依据时间维度索引叶结点项中的OID与RowKey_TimeStamp唯一确定移动对象;若是不确定数据则基于Hadoop的移动对象查询进行并行处理。
[0015] 进一步地,利用Hadoop开源平台构建支持路网移动对象概率范围查询的时空索引结构具体包括:采用并行多级k路划分技术将路网划分为考虑路段连接关系的索引基本单元;以路段最大限速下的最短时间作为时间权重形成各索引基本单元的最短时间矩阵,以构建路网索引结构;构建路网移动对象多维时空索引结构,并实现索引的并行创建。
[0016] 为实现上述目的,本发明另一方面还提供一种路网移动对象概率聚集查询系统,所述系统与定位设备相连,所述系统包括:数据处理单元,用于对定位设备获取的采样数据分别进行流处理和批处理;其中,进行流处理后的数据中包括预设参数的sketch值;时空索引构建单元,用于根据批处理后的采样数据构建支持不确定数据获取的时空索引,并将流处理后的sketch值记录于索引结点项中;非重复计数聚集索引构建单元,用于根据所述时空索引,构建基于自适应多维直方图的非重复计数聚集索引结构,所述非重复计数聚集索引结构中包括至少一个桶bucket;查询请求处理单元,用于获取用户的查询请求,并在所述非重复计数聚集索引结构中查找与所述查询请求中的查询区域相交的所有目标bucket;sketch数量确定单元,用于确定各个所述目标bucket对应的sketch数量,并根据各个所述目标bucket的面积以及相交区域的面积,确定所述查询区域对应的sketch数量;移动对象获取单元,用于基于所述查询区域对应的sketch数量,设置所述查询区域对应的sketch生成器,以获取所述查询区域中各个路段中的移动对象,并生成所述查询区域中各个路段对应的sketch值;聚集值确定单元,用于将所述查询区域中各个路段对应的sketch值进行或运算,得到所述查询区域的全局sketch值,并将所述全局sketch值转换为与所述查询请求相对应的移动车辆的近似聚集值。
[0017] 进一步地,所述数据处理单元具体包括:近似处理模块,用于以路段为单位设置sketch生成器,通过所述sketch生成器对获取的所述采样数据进行近似处理,以生成单位路段单位时刻的车辆聚集sketch值;数据存储模块,用于将获取的所述采样数据存入数据库。
[0018] 进一步地,所述非重复计数聚集索引构建单元具体包括:栅格单元划分模块,用于将路网划分为多个栅格单元,其中每个栅格单元对应一个路段,各个路段与表征该路段移动车辆sketch值的频率值相关联;桶划分模块,用于对各个频率值进行聚类运算,以将所述多个栅格单元划分为至少一个桶bucket,其中,各个bucket中包含的频率值处于一个聚类集中;二叉树索引建立模块,用于建立与划分后的所述至少一个bucket相对应的二叉树索引,所述二叉树索引中的每个叶结点对应一个bucket;数据更新模块,用于将划分后的所述至少一个bucket写入内存,并对所述至少一个bucket保持更新、合并和分裂,以使得历史bucket从内存转存至数据库中。
[0019] 由上可见,本发明基于混合式大数据计算模式处理定位设备采样的海量位置数据,构建支持不确定数据获取的索引结构和非重复计数聚集索引结构,提出了sketch合适化机制,通过概率范围查询获取特定路段特定时间范围移动对象的不确定数据,结合数据流处理技术实现了移动对象的概率聚集查询。本发明实现了对采样频率导致的轨迹不确定路网移动对象聚集查询精度与效率的提高。

附图说明

[0020] 图1是本申请中路网移动对象概率聚集查询方法的流程图;
[0021] 图2是本申请中考虑数据不确定性的数据处理模型示意图;
[0022] 图3是本申请中桶划分的示意图;
[0023] 图4是本申请中二叉树索引示意图;
[0024] 图5是本申请中路网移动对象概率聚集查询系统的功能模块图。

具体实施方式

[0025] 为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施方式中的附图,对本申请实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本申请一部分实施方式,而不是全部的实施方式。基于本申请中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施方式,都应当属于本申请保护的范围。
[0026] 请参阅图1,本申请提供一种路网移动对象概率聚集查询方法,所述方法包括以下步骤。
[0027] 步骤S1:对定位设备获取的采样数据分别进行流处理和批处理;其中,进行流处理后的数据中包括预设参数的sketch值。
[0028] 在本实施方式中,对采样数据进行流处理可以指:以路段为单位设置sketch生成器,通过所述sketch生成器对获取的所述采样数据进行近似处理,以生成单位路段单位时刻的车辆聚集sketch值。对采样数据进行批处理可以指:直接将获取的所述采样数据存入数据库。
[0029] 在本实施方式中,路网移动对象概率聚集查询如果完全保留数据流中所有确定数据和不确定数据,随着时间的延续必然会导致系统崩溃。如图2所示,在采样频率低前提下,本发明保留定位设备采集的基于时间的离散位置值,而不确定数据则利用路网移动对象概率范围查询,借助存储下来的相关采样数据获取,考虑到此时不确定数据占据数据流的主要部分,数据量巨大,因此对查询得到的不确定数据并不进行存储,直接与前面保留的采样数据一起通过近似处理技术得到概要数据,最终获得符合精度要求的近似聚集查询结果。
[0030] 步骤S2:根据批处理后的采样数据构建支持不确定数据获取的时空索引,并将流处理后的sketch值记录于索引结点项中。
[0031] 在本实施方式中,时空索引的空间维度为考虑路段邻接关系和时间属性的路网索引结构,叶结点子图中每条路段设计一个一维时间B+-tree索引,B+-tree索引统一用上层时间粒度TID索引下层时间粒度tID,在原有结点项基础上增加sketch的处理信息和历史bucket的标识,为后续非重复计数聚集索引方便快捷地获取每个栅格中的sketch值。
[0032] 步骤S3:根据所述时空索引,构建基于自适应多维直方图的非重复计数聚集索引结构,所述非重复计数聚集索引结构中包括至少一个桶bucket。
[0033] 在本实施方式中,步骤S3可以通过以下几个子步骤来完成。
[0034] 步骤S31:将路网划分为多个栅格单元,其中每个栅格单元对应一个路段,各个路段与表征该路段移动车辆sketch值的频率值相关联;
[0035] 具体地,可以实例化路网环境:将路网划分为ω﹒ω个规则的栅格单元,每个栅格c对应一个路段,频率Fc表示路段c中移动车辆的sketch值。
[0036] 本发明考虑将道路的两个方向统一,路网划分为ω﹒ω个规则的栅格单元,现实中相同道路的两个方向往往会存在完全不同的车流量情况,解决该问题的方法只需将空间划分为ω﹒2ω个规则的栅格单元,一个路段用相邻的两列分别表示该路段一个方向的频率Fc,同样用sketch表示,然后在bucket信息中增加一个方向值direction。对direction的设定如下:
[0037] (1)移动对象如果从路段左边进入,则direction=0;
[0038] (2)移动对象如果从路段右边进入,则direction=1;
[0039] (3)如果路段为垂直方向,则规定移动对象从底部进入direction=0,从顶部进入direction=1。
[0040] 步骤S32:对各个频率值进行聚类运算,以将所述多个栅格单元划分为至少一个桶bucket,其中,各个bucket中包含的频率值处于一个聚类集中;
[0041] 在本实施方式中,可以将Fc相互接近的相邻单元划分到同一个bucket中,并计算各个bucket的频率。
[0042] 如图3所示,本发明中bucket定义为规则的矩形,每个bucket中的栅格c不重叠,因2
此bucket也不重叠。划分后的bucket数量n相较之前的栅格数量ω 要小的多。请参阅表1和表2,任一bucket bk(1≤k≤n)可以表示为一个八元向量(Rk,nk,fk,gk,vk,mk,skk,lifespan[ls,le))。目标是使所有bucket的vk总和(weighted variance sum,WVS)最小,即最小化。bucket所覆盖的栅格数nk可以通过面积比由Rk﹒ω2得到,
因此所有桶的WVS都能够通过Rk、fk和gk计算得到。
[0043] 表1bucket八元向量表示
[0044]
[0045] 表2bucket的信息
[0046]bk Rk nk fk gk vk mk skk lifespan
b1 [x1,x2],[y4,y5] 4 15/4 57/4 3/16 5 s11 [2,now)
b2 [x3,x4],[y4,y5] 4 24/4 144/4 0 2 s21 [3,now)
b3 [x1,x2],[y2,y3] 4 30/4 226/4 4/16 7 s31 [4,now)
b4 [x3,x4],[y4,y5] 4 16/4 64/4 0 2 s41 [4,now)
b5 [x1,x4],[y1,y1] 4 23/4 133/4 3/16 5 s51 [3,now)
b6 [x5,x5],[y1,y5] 5 15/5 45/5 0 2 s61 [4,now)
[0047] 步骤S33:建立与划分后的所述至少一个bucket相对应的二叉树索引(Binary Partition Tree,BPT),所述二叉树索引中的每个叶结点对应一个bucket。
[0048] 本发明通过建立二叉树索引当前时刻划分好的bucket,如图4所示,每个叶结点对应一个bk,中间结点是包含左右孩子结点表示bucket的矩形区域。处理当前概率聚集查询的时候可以通过遍历二叉树来查找到与查询区域相交的bucket,缩小计算范围。当前时刻bucket的le均表示为now,表示该bucket由BPT索引。
[0049] 步骤S34:将划分后的所述至少一个bucket写入内存,并对所述至少一个bucket保持更新、合并和分裂,以使得历史bucket从内存转存至数据库中。
[0050] 具体地,可以将当前bucket直接存储在内存,随着bucket的更新、合并和分裂等维护操作,历史bucket从内存转存至数据库。
[0051] 本发明中采样位置数据的不断更新,各个栅格c的sketch不断变化,导致bucket的更新、合并和分裂,不断形成新的bucket。当前bucket直接存储在内存方便频繁的实时查询;当一个bucket在le时刻被更新,则认为其超过了lifespan[ls,le),那么该bucket就成为历史bucket,将由内存转存至磁盘数据库中,系统只保留八元向量中的四元(Rk,mk,skk,lifespan[ls,le)),空间维度按Rk中最左上角的栅格,即路段,时间维度按le,即bucket终结时间,在支持不确定数据获取的时空索引相应路段与相应时刻建立历史bucket索引。
[0052] 步骤S4:获取用户的查询请求,并在所述非重复计数聚集索引结构中查找与所述查询请求中的查询区域相交的所有目标bucket;
[0053] 步骤S5:确定各个所述目标bucket对应的sketch数量,并根据各个所述目标bucket的面积以及相交区域的面积,确定所述查询区域对应的sketch数量。
[0054] 具体地,可以依据sketch合适化机制来确定所述查询区域对应的sketch数量。
[0055] 本发明中sketch合适化的目的是使sketch数量和待查询移动对象数量之间能够达到实时的动态协调,提高路网移动对象概率聚集查询精度。具体的讲,就是当查询区域的路段上移动车辆数量较多时,能够自动采用较多数量的sketch进行概率聚集查询;而当查询区域的路段上移动车辆数量较少时,能够自动采用较少数量sketch进行概率聚集查询。概率聚集查询过程中涉及sketch合适化的部分主要是:(1)bucket划分阶段,每个bucket的合适sketch数量计算;(2)查询阶段,查询区域的合适sketch数量计算。
[0056] 每个bucket的合适sketch数量计算:通过最好拟合曲线来确立路网移动对象数量和采用sketch数量。最终的拟合曲线通过最小二乘法获得:
[0057] y=0.747978﹒x0.708563         式1
[0058] 其中x为聚集查询过程中采用的sketch数量,y为对应移动对象的数量。
[0059] 查询区域qR的合适sketch数量M计算:假设bi为与qR相交的各个bucket,mi为bi的sketch数量,RqRi为qR与bi相交面积,Ri为相交bi的面积,那么M的值为大于各个bucket内由面积比获得的sketch数量之和的最小整数,定义M如下:
[0060]
[0061] 在一个具体例子中,假设由式1已经计算好当前时刻的bucket中的mk,利用式2对qR区域的sketch合适化
[0062] 步骤S6:基于所述查询区域对应的sketch数量,设置所述查询区域对应的sketch生成器,以获取所述查询区域中各个路段中的移动对象,并生成所述查询区域中各个路段对应的sketch值。
[0063] 在本实施方式中,获取所述查询区域中各个路段中的移动对象具体包括:
[0064] 步骤S61:利用Hadoop开源平台构建支持路网移动对象概率范围查询的时空索引结构;
[0065] 步骤S62:根据用户的查询请求,分析时间、空间和概率查询条件;
[0066] 步骤S63:根据时间查询条件进行时间剪枝,以缩小候选集范围,判断输入的数据是确定数据还是不确定数据;
[0067] 步骤S64:若是确定数据则根据所述时空索引结构,将空间维度结合时间维度索引,依据时间维度索引叶结点项中的OID与RowKey_TimeStamp唯一确定移动对象。
[0068] 步骤S65:若是不确定数据则基于Hadoop的移动对象查询进行并行处理。
[0069] 其中,利用Hadoop开源平台构建支持路网移动对象概率范围查询的时空索引结构具体包括:
[0070] 步骤S611:采用并行多级k路划分技术将路网划分为考虑路段连接关系的索引基本单元;
[0071] 步骤S612:以路段最大限速下的最短时间作为时间权重形成各索引基本单元的最短时间矩阵,以构建路网索引结构;
[0072] 步骤S613:构建路网移动对象多维时空索引结构,并实现索引的并行创建。
[0073] 在本实施方式中,路网索引结构作为多维时空索引结构的空间索引部分用以解决路径查询,本发明考虑查询用时间约束进行路段选择,因此索引结点邻接矩阵值采用路段限速行驶下的最短时间,叶结点矩阵中用最短时间值记录子图包含的所有内边路段,行、列为对应子图的所有顶点;中间结点矩阵中用最短时间值记录子图涉及的所有外边路段,行、列为其孩子结点的所有边界顶点。
[0074] 本发明中多维时空索引结构将路网索引结构作为空间维度,将针对一维时间的B+-tree结构作为时间维度,查询进行中逐步记录下结点边界顶点间路径以Region表形式保存,达到间接索引部分不确定数据,提高查询效率目的。
[0075] 步骤S7:将所述查询区域中各个路段对应的sketch值进行或运算,得到所述查询区域的全局sketch值,并将所述全局sketch值转换为与所述查询请求相对应的移动车辆的近似聚集值。
[0076] 本发明采用Flajolet和Martin提出的将概率计数和随机平均相结合的FM_PCSA算法(TaoY,Kollios G,Considine J,Li F and Papadias D.Spatio-Temporal aggregation using Sketches[C].Proceedings of the International Conference on Data Engineering,2004:214-226.)将所述全局sketch值转换为与所述查询请求相对应的移动车辆的近似数量值。
[0077] FM_PCSA算法采用m张独立的sketch,每张sketch由r位组成,初始时m﹒r位均设为0。对移动对象数据集DS中的每一个OID,首先采用第一个随机函数h1为其选择一张sketch si(1≤i≤m),然后采用另一个随机函数h2将si的第h2(OID)位置为1,当DS中所有OID处理结束后,对m张sketch中第一个还是0的那位k1,k2,…,km求平均值,那么可求移动对象数据集DS中不同的移动对象数目n为:
[0078]
[0079] FM_PCSA算法中的第二个随机函数h2以对象标识OID作为输入,输出整数h2(OID),h2(OID)满足:对于v≥1,Prob[h2(OID)=v]=2-v。即输出的h2(OID)为1的概率为0.5,为2的概率为0.25,为3的概率为0.125,…,以此类推。
[0080] 本发明还提供一种路网移动对象概率聚集查询系统,请参阅图5,所述系统可以包括:
[0081] 数据处理单元100,用于对定位设备获取的采样数据分别进行流处理和批处理;其中,进行流处理后的数据中包括预设参数的sketch值;
[0082] 时空索引构建单元200,用于根据批处理后的采样数据构建支持不确定数据获取的时空索引,并将流处理后的sketch值记录于索引结点项中;
[0083] 非重复计数聚集索引构建单元300,用于根据所述时空索引,构建基于自适应多维直方图的非重复计数聚集索引结构,所述非重复计数聚集索引结构中包括至少一个桶bucket;
[0084] 查询请求处理单元400,用于获取用户的查询请求,并在所述非重复计数聚集索引结构中查找与所述查询请求中的查询区域相交的所有目标bucket;
[0085] sketch数量确定单元500,用于确定各个所述目标bucket对应的sketch数量,并根据各个所述目标bucket的面积以及相交区域的面积,确定所述查询区域对应的sketch数量;
[0086] 移动对象获取单元600,用于基于所述查询区域对应的sketch数量,设置所述查询区域对应的sketch生成器,以获取所述查询区域中各个路段中的移动对象,并生成所述查询区域中各个路段对应的sketch值;
[0087] 聚集值确定单元700,用于将所述查询区域中各个路段对应的sketch值进行或运算,得到所述查询区域的全局sketch值,并将所述全局sketch值转换为与所述查询请求相对应的移动车辆的近似聚集值。
[0088] 在本申请一个实施方式中,所述数据处理单元100具体包括:
[0089] 近似处理模块,用于以路段为单位设置sketch生成器,通过所述sketch生成器对获取的所述采样数据进行近似处理,以生成单位路段单位时刻的车辆聚集sketch值;
[0090] 数据存储模块,用于将获取的所述采样数据存入数据库。
[0091] 在本申请一个实施方式中,所述非重复计数聚集索引构建单元300具体包括:
[0092] 栅格单元划分模块,用于将路网划分为多个栅格单元,其中每个栅格单元对应一个路段,各个路段与表征该路段移动车辆sketch值的频率值相关联;
[0093] 桶划分模块,用于对各个频率值进行聚类运算,以将所述多个栅格单元划分为至少一个桶bucket,其中,各个bucket中包含的频率值处于一个聚类集中;
[0094] 二叉树索引建立模块,用于建立与划分后的所述至少一个bucket相对应的二叉树索引,所述二叉树索引中的每个叶结点对应一个bucket;
[0095] 数据更新模块,用于将划分后的所述至少一个bucket写入内存,并对所述至少一个bucket保持更新、合并和分裂,以使得历史bucket从内存转存至数据库中。
[0096] 由上可见,本发明基于混合式大数据计算模式处理定位设备采样的海量位置数据,构建支持不确定数据获取的索引结构和非重复计数聚集索引结构,提出了sketch合适化机制,通过概率范围查询获取特定路段特定时间范围移动对象的不确定数据,结合数据流处理技术实现了移动对象的概率聚集查询。本发明实现了对采样频率导致的轨迹不确定路网移动对象聚集查询精度与效率的提高。
[0097] 上面对本申请的各种实施方式的描述以描述的目的提供给本领域技术人员。其不旨在是穷举的、或者不旨在将本发明限制于单个公开的实施方式。如上所述,本申请的各种替代和变化对于上述技术所属领域技术人员而言将是显而易见的。因此,虽然已经具体讨论了一些另选的实施方式,但是其它实施方式将是显而易见的,或者本领域技术人员相对容易得出。本申请旨在包括在此已经讨论过的本发明的所有替代、修改、和变化,以及落在上述申请的精神和范围内的其它实施方式。
[0098] 本说明书中的各个实施方式均采用递进的方式描述,各个实施方式之间相同相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。
[0099] 虽然通过实施方式描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。