本方法属于智慧交通、车联网领域,涉及车辆GPS数据的处理、分析和存储,具体是一种基于位置聚合的GPS信息存储方法。
背景技术:
车辆GPS位置信息数据量较大,每辆车每5秒上报一次GPS位置信息,这对系统存储空间以及系统查询、处理、分析的性能都造成了巨大的压力。以杭州市公交车辆GPS为例,每天数据量达到5000万条,一个月系统需要存储15亿条GPS信息。
目前,许多大数据分析系统在数据库的层面进行了一定优化,采用NOSQL作为持久化存储引擎以解决海量信息检索的需求,但这仅仅从数据库引擎角度进行了优化(关系型数据库转为非关系型数据库),并未解决系统存储空间的压力的问题。
技术实现要素:
为了解决现有技术中存在的上述技术问题,本发明提供了一种基于位置聚合的GPS信息存储方法,包括如下步骤:
一.系统接收车辆GPS信息后,首先判断当前缓存组件中是否已缓存有该车辆的聚合信息;若不存在,则生成新的聚合,并将新聚合加入缓存组件中;
二.若缓存组件中存在该车辆的聚合信息,则继续判断是否需要生成新的聚合;若不需要生成新聚合,则根据当前GPS信息计算聚合项,并更新缓存组件中的该车辆的聚合信息。
三.若需要生成新聚合,则根据当前车辆GPS信息生成新的聚合,同时将旧聚合的数据添加到持久化存储中。
进一步的,步骤二中,是否需要生成新聚合的判断条件包括:
条件1:当前GPS信息的时间与缓存组件中GPS数据的更新时间的间隔是否在系统设定的合理区间内,超出该合理区间的,则重新生成聚合信息;
条件2:当前GPS信息与缓存数据的位置信息是否超过系统设定的合理聚合区间内,超出聚合的虚拟围栏范围,则重新生成新聚合。
进一步的,需要生成的聚合项,包括聚合项数量、行驶里程、行驶时间、平均速度、停靠站时间、非营运里程、非营运时间。
进一步的,该方法通过缓存组件对聚合的中间结果数据进行临时存储。
进一步的,该方法将聚合结果信息保存到持久化存储中。
进一步的,该方法对缓存组件和持久化存储中的数据进行查询统计,包括:监控车辆的实时位置,对车辆的历史轨迹进行回放,对车辆的速度(进行计算、统计,对车辆的行驶里程进行统计分析,对车辆的运营情况进行统计分析。对车辆异常情况进行统计分析。
进一步的,该方法是基于位置聚合的优化,存在以下影响优化结果的因素:
车速:车辆行驶速度与优化效率成反比。车速越慢,优化效果越明显;
车辆停靠时间:车辆停靠时间与优化效率成正比,停靠等候时间越长,优化效果越明显。
本发明的基于位置聚合的GPS信息存储方法,将原本存在于持久化存储中的多条GPS信息,聚合成单条位置信息,从信息源组织形式、数据逻辑结构层面对数据进行优化,从而达到提升存储空间利用率、提升系统吞吐量和效率的目的。
该方法可适用多种场景。目前,该方法运用于多地市(杭州、嘉兴、宁波等)的公交出行及公交运行监测系统。同时,对其他车辆或设备的GPS信息采集、处理的场景也具有较强的适用性。(方法不适用于需要精确记录每条GPS信息中所有属性的场景。)
运用该方法的场景包括但不限于:
采集车辆GPS信息,监控车辆的实时位置。
采集车辆GPS信息,对车辆的历史轨迹进行回放。
采集车辆GPS信息,对车辆的速度(包括运营速度、技术速度、运送速度等)进行计算、统计。
采集车辆GPS信息,对车辆的行驶里程进行统计分析。
采集车辆GPS信息,对车辆的运营情况及异常情况进行统计分析。
附图说明
图1是本发明的基于位置聚合的GPS信息存储方法流程示意图。
具体实施方式
下面结合附图对本发明作进一步说明。
如图1所示,本发明的基于位置聚合的GPS信息存储方法,包括如下步骤:
一.系统接收车辆GPS信息后,首先判断当前缓存组件中是否已缓存有该车辆的聚合信息;若不存在,则生成新的聚合,并将新聚合加入缓存组件中;
二.若缓存组件中存在该车辆的聚合信息,则继续判断是否需要生成新的聚合;若不需要生成新聚合,则根据当前GPS信息计算聚合项,并更新缓存组件中的该车辆的聚合信息。
三.若需要生成新聚合,则根据当前车辆GPS信息生成新的聚合,同时将旧聚合的数据添加到持久化存储(数据库系统)中。
步骤二中,是否需要生成新聚合的判断条件包括:
条件1:当前GPS信息的时间与缓存组件中GPS数据的更新时间的间隔是否在系统设定的合理区间内,默认为5分钟,可根据实际业务需要进行配置。即时间间隔超过5分钟的GPS信息,则重新生成聚合信息,以保证数据的准确性。
条件2:当前GPS信息与缓存数据的位置信息是否超过系统设定的合理聚合区间内,默认聚合区间围栏范围50米,可根据实际业务需要进行配置。即以聚合起始位置为圆心设置虚拟围栏,若新的GPS信息,超出聚合的虚拟围栏范围,则重新生成新聚合。
需要生成的聚合项,包括但不限于:
聚合项数量:当前聚合内聚合的数据条数。每加入一条GPS信息数量+1。
行驶里程:当前聚合内行驶的总里程。通过多条信息间隔距离累加的方式进行聚合。
行驶时间:当前聚合内行驶的总时间。通过多条信息间隔行驶时间累加的方式进行聚合。
平均速度:当前聚合内的平均车速。通过行驶里程和行驶时间进行计算平均速度。其中平均速度包括:运营速度、运送速度、技术速度。
停靠站时间:当前聚合内停靠站的时间。通过,车辆位置信息判断停靠状态,并累加停靠的时间。
非营运里程:当前聚合内非营运的里程,包括加油、回场、偏离行驶轨迹等情况。通过车辆行驶状态,判断运营状态,并累加相应里程。
非营运时间:当前聚合内非营运的时间。通过车辆行驶状态,判断运营状态,并累加相应时间。
其他:可根据实际业务添加对应组件生成相应其他聚合项。
该方法通过缓存组件对聚合的中间结果数据进行临时存储。方法对缓存组件没有具体软硬件的要求,支持多种形式缓存,包括但不限于:自定义缓存系统、Riak分布式缓存系统、Redis分布式缓存系统等。
该方法将聚合结果信息保存到持久化存储中。对持久化存储没有具体软硬件的要求,支持多种主流持久化存储架构(关系型数据库系统、非关系型NoSQL系统),包括但不限于:SQL SERVER数据库、Oralce数据库、MongoDb数据库等。
该方法对缓存组件和持久化存储中的数据进行查询统计,实现相应功能。包括但不限于:监控车辆的实时位置,对车辆的历史轨迹进行回放,对车辆的速度(包括运营速度、技术速度、运送速度等)进行计算、统计,对车辆的行驶里程进行统计分析,对车辆的运营情况(班次、准点率等)进行统计分析。对车辆异常情况(超速、偏离轨迹等)进行统计分析。
该方法是基于位置聚合的优化,存在以下影响优化结果的因素:
车速。车辆行驶速度与优化效率成反比。车速越慢,优化效果越明显。车速影响的因素包括但不限于:道路拥堵情况、天气情况、车辆性能等。
车辆停靠时间长短。车辆停靠时间与优化效率成正比。停靠等候时间越长,优化效果越明显。当前车辆停靠时间,包括但不限于停靠站、加油、场站休息、起点终点等候等。
测试实施例
测试环境:
服务器系统:Windows Server 2008 R2
分布式缓存系统:自定义键值对字典集合。
持久化存储:SQL Server 2012
测试流程
1)取得2016-01-01杭州公交车辆全天GPS信息数据作为测试输入,共5000万条GPS信息。
2)搭建相应的缓存组件及可持久化存储。测试环境缓存组件通过自定义字典集合实现。持久化存储使用SQL Server 2012数据库系统。
3)运行未进行聚合优化的原始程序,并将GPS信息结果记录。
4)运行聚合优化的程序。分别运行4次,每次将条件1、条件2参数配置为:5/0,5/10,5/50,5/100,并将结果记录。
5)统计可持久化存储中,表中的数据进行对比,形成测试结果。
测试结果
以下为以杭州公交车辆一天GPS信息作为测试输入的测试结果
其中条件1参数,即时间间隔。条件2参数,即聚合围栏范围。
本方法根据工程实践中遇到的海量GPS存储空间问题,提出了基于位置聚合的GPS存储优化方法。通过设定聚合虚拟围栏范围,对车辆GPS信息进行聚合运算和存储,实现海量GPS数据的聚合压缩,提升系统的性能和空间利用率。