路网中移动对象查询方法技术

技术编号:16546861 阅读:30 留言:0更新日期:2017-11-11 11:41
本发明专利技术实施例提供一种路网中移动对象查询方法,属于高性能计算领域和数据库领域。该路网中移动对象查询方法,用于服务器端,且包括:获取移动对象更新数据和用户输入的查询数据;采用多核CPU,基于移动对象在路网中所在的节点对所获取的移动对象更新数据进行聚集索引以及基于查询数据在路网中所在的边来对所获取的查询数据进行聚集索引;以及将聚集索引后的数据放入GPU中进行基于最近邻KNN算法的计算,以获得查询结果。本发明专利技术实施例提出了一种基于新硬件环境下的高吞吐量路网中移动对象查询方法,其充分发挥了大内存、多核CPU、GPU的特点,从而提高了移动对象的查询处理效率,更能满足大数据下基于位置服务的用户查询需求。

Query method of moving objects in road network

The embodiment of the invention provides a moving object query method in the road network, belonging to the field of high performance computing and database. The query method of moving objects in road network, for the server, which comprises the following steps: acquiring data query of moving objects to update the data and user input; the use of multi-core CPU, the mobile node where the object is located in the road network of the mobile object obtained by updating data aggregation index and query data in the network edge to the clustered index the query based on the acquired data; and the clustered index after the data into GPU to calculate the nearest neighbor based on KNN algorithm, to obtain query results. The embodiment of the invention provides a query method of moving objects based on high throughput of network hardware environment, which give full play to the characteristics of large memory, multi-core CPU and GPU, so as to improve the efficiency of query processing of moving objects, can query location services based on user satisfaction data.

【技术实现步骤摘要】
路网中移动对象查询方法
本专利技术涉及高性能计算领域和数据库领域,具体地涉及一种路网中移动对象查询方法。
技术介绍
随着移动设备的广泛普及和位置服务的不断发展,针对移动对象的查询处理成为研究的热点。典型的查询,例如:查找距离用户最近的超市或加油站;距离用户最近的出租车等。在人们的日常生活中,所有的对象都是基于路网进行运动。对于路网中任意对象X和Y,对象间的路网距离d(x,y)比欧式距离||x–y||能更好的反映出对象间的实际距离。例如,在双向车道中,车辆q到位于另一侧加油站p的路网距离d(q,p)远远大于两者之间的欧式距离||q–p||。因此,两个对象间的路网距离d(q,p)比欧氏距离||q–p||更有意义。但是,本申请专利技术人在实现本专利技术的过程中发现,已有的路网中移动对象查询算法具有如下缺陷:随着用户数量的不断增加,应用场景的不断丰富,常规的KNN算法不能很好的应对新出现的应用。例如,对于典型的打车应用,车辆在运行过程中会产生一个车辆位置更新数据流。同时,大量用户发起的打车请求会形成一个查询数据流。系统首先要对车辆位置信息进行实时更新,以确保查询结果的有效性,同时又需要实时响应所有用户的查询请求,以确保服务质量。对于这类应用场景,当KNN算法采用每次处理一个查询(onebyone)的方式时,大量用户需要排队以等待查询响应,用户的排队等待时间将严重影响服务质量。因此,已有的路网中移动对象查询算法不能很好地应对新出现的需求,需要找到新的移动对象查询方案,以满足大数据下位置服务的查询需求。
技术实现思路
本专利技术实施例的目的是提供一种路网中移动对象查询方法,该移动对象查询方法用于实现满足大数据下位置服务的查询需求的移动对象查询方案。为了实现上述目的,本专利技术实施例提供一种路网中移动对象查询方法,用于服务器端,且所述路网中移动对象查询方法包括:获取移动对象更新数据和用户输入的查询数据;采用多核CPU,基于移动对象在路网中所在的节点对所获取的移动对象更新数据进行聚集索引以及基于查询数据在路网中所在的边来对所获取的查询数据进行聚集索引;以及将聚集索引后的数据放入GPU中进行基于最近邻KNN算法的计算,以获得查询结果。可选地,所述获取移动对象更新数据和用户输入的查询数据包括:周期性采集移动对象更新数据,该移动对象更新数据包括移动对象识别号及移动对象坐标;实时接收用户输入的查询数据;以及采用缓存器缓存所述移动对象更新数据及所述查询数据,并按照需要使用的线程数划分所述缓存器中的数据,其中每个线程处理一块移动对象更新数据或查询数据。可选地,采用快照的方式将所述移动对象更新数据和所述查询数据存储到所述缓存器中。可选地,基于移动对象在路网中所在的节点对所获取的移动对象更新数据进行聚集索引包括:计算移动对象与其所在路径中的两个端点处的节点的距离;将与端点处的节点距离不超过其路径长度一半的移动对象的移动对象更新数据聚集在该节点;以及将聚集完成的移动对象更新数据放入一个对象表结构中。可选地,基于查询数据在路网中所在的边来对所获取的查询数据进行聚集索引包括:将所有查询数据按照所在路径进行聚集,并将同一条路径上的查询数据放入一个查询表结构的相邻存储位置。可选地,将聚集索引后的数据放入GPU中进行基于KNN算法的计算包括:基于聚集索引后的数据,计算路径中的任意一个节点所在路径的两个端点的KNN结果集;基于聚集索引后的数据,计算路径中的移动对象集合;以及从所述KNN结果集和所述移动对象集合的合集中查询出所选定的节点的KNN结果集。可选地,采用多核CPU进行的聚集索引是格网索引,且所述格网索引包括:将各移动对象更新数据索引至格网中与该移动对象更新数据的二维欧式空间坐标相对应的单元格中;以及将各查询数据索引至格网中与该查询数据相匹配的移动对象更新数据所在的单元格中。可选地,所述格网索引还包括:当格网中的单元格中所聚集的数据的量超出设定阈值时,在GPU端将该单元格划分为至少两个子单元格,并将各数据相应存储至对应的子单元格。可选地,所述路网中移动对象查询方法还包括:将所述查询结果分发给用户,并删除进行计算的过程中所产生的中间结果。另一方面,本专利技术提供一种计算可读存储介质,该计算机可读存储介质上存储有计算机指令,该计算机指令用于使得所述计算机执行本申请上述的方法。通过上述技术方案,本专利技术实施例所具有的有益效果是:本专利技术实施例提出了一种基于新硬件环境下的高吞吐量路网中移动对象查询方法,其充分发挥了大内存、多核CPU、GPU的特点,从而提高了移动对象的查询处理效率,更能满足大数据下基于位置服务的用户查询需求。本专利技术实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。附图说明附图是用来提供对本专利技术实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本专利技术实施例,但并不构成对本专利技术实施例的限制。在附图中:图1是根据本专利技术实施例的路网中移动对象查询方法的流程示意图;图2是根据本专利技术实施例的获取移动对象更新数据和查询数据的流程示意图;图3是根据本专利技术实施例的对移动对象更新数据进行聚集索引的流程示意图;图4是对移动对象进行聚集索引的示例的示意图;图5是通过GPU对聚集索引后的数据进行计算的流程示意图;图6是根据本专利技术实施例的GPGPU模型的架构示意图;以及图7是根据本专利技术实施例的基于大内存和GPGPU模型进行移动对象KNN查询的示意图。具体实施方式以下结合附图对本专利技术实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本专利技术实施例,并不用于限制本专利技术实施例。本申请专利技术人在实现本专利技术目的的过程中发现对于大部分应用而言,单个查询的响应时间只要达到秒级就可以满足需求,不需要刻意追求单个查询的响应时间,例如对于典型的打车应用,大部分用户只要能在几秒钟内得到响应就能满足要求,对于更快的查询响应时间,用户的服务体验没有明显变化。因此,为了确保服务质量,需要在单位时间内尽可能多的响应用户的查询,即系统的吞吐量成为了满足大数据下位置服务查询需求的关键因素。基于这一思路,本专利技术实施例提出了一种路网中移动对象查询方法。在具体介绍这一方法之前,先对本专利技术实施例中所涉及的路网进行说明。本专利技术实施例中,路网用一个无相加权图G=(V,E)来表示,其中V为节点的集合,代表路网中的连接处,E为无相边的集合,代表路网中两个节点之间的线段,同时对于任意路网G(E,V),每条边可以表示为e(v1,v2),其中v1,v2为两个联通的节点,v1为起始节点,v2为最终节点,每条边的权重为非负值。需说明的是,上述参数用于体现路网的概念,而在实际中,可根据需要,采用不同的字符来表示参数的含义,例如也可以用n1、n2表示节点。图1示出了本专利技术实施例的路网中移动对象查询方法的流程示意图,该移动对象查询方法应用在服务器端,可以包括以下步骤:步骤S100,获取移动对象更新数据和用户输入的查询数据。其中,移动对象更新数据包括移动对象识别号(ID)及移动对象坐标等信息,例如体现典型打车应用中涉及的车辆的实时位置的变化的信息;查询数据例如是典型打车应用中涉及的用户对附近两公里内的出租车的查询。优选地,如图2所示,该步骤S100可以包括以下步骤:步骤S1本文档来自技高网...
路网中移动对象查询方法

【技术保护点】
一种路网中移动对象查询方法,用于服务器端,其特征在于,所述路网中移动对象查询方法包括:获取移动对象更新数据和用户输入的查询数据;采用多核CPU,基于移动对象在路网中所在的节点对所获取的移动对象更新数据进行聚集索引以及基于查询数据在路网中所在的边来对所获取的查询数据进行聚集索引;以及将聚集索引后的数据放入GPU中进行基于最近邻KNN算法的计算,以获得查询结果。

【技术特征摘要】
1.一种路网中移动对象查询方法,用于服务器端,其特征在于,所述路网中移动对象查询方法包括:获取移动对象更新数据和用户输入的查询数据;采用多核CPU,基于移动对象在路网中所在的节点对所获取的移动对象更新数据进行聚集索引以及基于查询数据在路网中所在的边来对所获取的查询数据进行聚集索引;以及将聚集索引后的数据放入GPU中进行基于最近邻KNN算法的计算,以获得查询结果。2.根据权利要求1所述的路网中移动对象查询方法,其特征在于,所述获取移动对象更新数据和用户输入的查询数据包括:周期性采集移动对象更新数据,该移动对象更新数据包括移动对象识别号及移动对象坐标;实时接收用户输入的查询数据;以及采用缓存器缓存所述移动对象更新数据及所述查询数据,并按照需要使用的线程数划分所述缓存器中的数据,其中每个线程处理一块移动对象更新数据或查询数据。3.根据权利要求2所述的路网中的移动对象查询方法,其特征在于,采用快照的方式将所述移动对象更新数据和所述查询数据存储到所述缓存器中。4.根据权利要求1所述的路网中移动对象查询方法,其特征在于,基于移动对象在路网中所在的节点对所获取的移动对象更新数据进行聚集索引包括:计算移动对象与其所在路径中的两个端点处的节点的距离;将与端点处的节点距离不超过其路径长度一半的移动对象的移动对象更新数据聚集在该节点;以及将聚集完成的移动对象更新数据放入一个对象表结构中。5.根据权利要求1所...

【专利技术属性】
技术研发人员:薛忠斌何宁晋世仲刘明洋李艾宸王长周汤杰
申请(专利权)人:中国神华能源股份有限公司北京国华电力有限责任公司神华国华北京电力研究院有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1