温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
公交
运营
异常
事件
快速
定位
存储
平台
设计
迟剑
现代计算机Modern Computer第 28 卷 第 24 期2022年12月25日文章编号:1007-1423(2022)24-0110-06DOI:10.3969/j.issn.1007-1423.2022.24.019基于公交运营异常事件快速定位存储平台设计迟剑,刘艳飞(河北民族师范学院数学与计算机科学学院,承德067000)摘要:公交运营中异常事件频发影响出行用户舒适度,增加公交公司运营成本。快速处理运营异常事件是目前公交公司亟待解决的问题之一。异常事件发生的不可控性以及不确定性是研究中监测难点。在完整追踪某一线路所有运营车辆的营运过程,提出了对异常事件影响指标分级,设计二级位图索引,快速定位异常事件发生车辆和路段的问题解决方法。Hadoop分布式存储框架中,车辆信息和查询地点作为Key值,设计辅助多维位图索引,构建Hbase异常数据存储库,依据Impala快速定位查询点。对比应用MapReduce计算框架和直接Impala查询完全数据集,异常特征数据快速定位性能提升明显,也减少了Impala查询存在的一些缺陷问题。关键词:公交数据云存储平台;异常事件;Impala平台;位图索引;轨迹数据基金项目:河北民族师范学院 2018年度校级基金项目(PT2018010);河北省省级科技计划资助项目(20310301D)0引言近几年,中小城市城镇化扩张速度迅猛,对公交运输提出了新挑战。以承德市为例,在2010年前,承德公交集团年运输旅客在8000万人次左右,到疫情前的2019年,年运输人数达到1.58亿人次左右,海量的乘客运输轨迹和公交运营轨迹随着公交车辆网络升级,车载终端借助于GPS与北斗双系统复合模块来定位实现了实时传输,公交公司能及时方便地获取公交车辆的轨迹数据。大量的轨迹数据,促使公交系统管理由预定排班系统转向实时的计算分析,对运营的公交车辆实现有效的监测。面向公交运营监测中,实时探测运营异常是最迫切的应用需求。这里的异常主要指同一线路上车辆聚集问题、车辆拥堵问题、车速异常问题、非站点停车问题等,需要在存储的数据中针对异常数据快速定位分类,进而提升问题解决的效率。在实际的运营过程中,公交企业普遍采用成熟的数据库产品,比如甲骨文的Oracle Spatial,或者是成熟的云存储平台,采用规定的接口和模式访问相关的数据,既定的条件限制下,在海量数据中快速定位异常数据,是国内外展开研究的热点问题。针对云存储平台,一般主要对数据索引以及存储结构两个方面加以改进加快定位速度。吕江波等1提出基于车辆轨迹误差来源,研究统计分析方法,设计了基于Hadoop的预处理模型方案,解决数据量大的时候数据分析瓶颈。乔千雄等2提出根据历史数据分析,测定异常行为数据分类,根据分类状态借助于 MapReduce算力,完成异常数据监测。余列冰等3根据轨迹数据基本特征,重设Hbase中分布列的数据结构,采用k近邻算法,提出了融合时空划分和轨迹分段的组织方法,提升了稀疏区域数据处理效率。魏学才等4根据数据的访问频度分为冷热数据,提出多数据编码机制,基于HDFS-RAID设计了相应的框架,部署于Hadoop集群中。李剑斌等5在Spark并行计算框架中实现车辆轨迹数据实时分析区域车辆密度,挖掘道路拥堵状况,在治理拥堵问题上快速定位拥堵点。另外,为了获取更高的数据存储和查询 110迟剑等:基于公交运营异常事件快速定位存储平台设计第24期性能,挖掘数据特性,构建索引也是研究点之一。Meng等6早在2012年在海量数据分析中构建分区位图索引,和传统的索引相比,非常显著地提升了范围查询。Dittrich 等7早在数据上传到Hadoop前,就构建HALL索引,提升上传处理速度,比单独在Hadoop上的数据处理速度提升较为显著。文献 6 和文献 7 较早提出了两种海量数据中数据处理方向和索引算法,这也成为近年来研究的热点问题。相关研究的改进方向主要根据轨迹信息点特性,轨迹相关区域划定,轨迹相似度分析来快速定位相应带查询区域。例如,针对车辆轨迹数据的连续性,黄火荣等8依据连续历史数据确定分段,依据分段设计索引实现查询,取得了很好的查询性能。Shen 等9对原始数据预处理阶段构建位图索引结构,实现两段查询,分别对持续时间和间隔时间进行优化,这对解决公交问题的连续车辆间隔和拥堵时长定位有一定的启发。郑浩泉等10也验证了根据时空轨迹数据特点设计三种存储方法,数据上传前完成分类,从而提升特定数据挖掘速度。在实际快速定位存储应用中,由于公交企业存储结构和数据采集结构是固定的,其更新的可能性比较低,另外在中小城市中,站点之间的距离较短,而车辆拥堵的时间一般小于20分钟,要求更快定位异常点。毛嘉莉等11在轨迹异常数据综述中指出,车辆轨迹异常数据分析基本途径是融合轨迹异常的时间特性和因果联系,实现数据过滤,继而完成大空间内数据异常定位。因此,本文针对海量公交运营数据的位图索引过滤,而后在模拟的公交存储框架上完成异常数据定位,建立异常数据临时存储区作为数据分析源,旨在解决异常车辆的快速定位问题。1公交运用数据存储平台及异常数据存储结构目前公交集团数据集迁移云平台已成大势所趋。本文模拟公交集团试验线路采用的云存储平台构建基本的存储框架。在Hadoop生态系统中,以数据存储和分析为目的的分布式平台,包括数据采集、数据存储和数据分析三个部分。数据采集层依据GPS传输,采集车辆运行数据以及路口数据和 IC 卡数据;数据存储层使用HDFS作为数据存储,同时依据Impala完成数据的多维预处理;数据分析层借助 HBase查询接口,实现实时查询分析,具体如图1所示。图 1存储平台架构数据采集层采集到的数据包括静态数据和动态数据。静态数据通过批处理方式将静态站点数据传入存储层;实时动态数据经过简单的清洗后,读取进入HDFS分布式存储系统,在该存储系统上,采用 Impala 结合位图索引探查HDFS数据,普通数据存入历史数据库,异常定位数据存入异常数据实时分析数据库。本文构建的平台框架在HDFS上部署了Impala实现数据探查、构建区间位图索引并定位异常数据区域。其中Impala基于Hadoop的SQL查询性能,实时查询HDFS中的实时点数据。借助于 Imapalad守护进程,在每个 DataNode完成查询点请求。查询框架如图2所示。图 2基础查询框架用户发布的 SQL 查询请求任意空闲的 Impalad节点,返回查询id。而后Impalad执行查询 111现代计算机2022年分析,从元数据库获取元数据,从HDFS中获取数据地址,得到该查询相关的数据节点。Impalad中的协调器 coordinator将查询子任务分布到不同Impalad节点,根据相关子任务请求完成相应的执行结果。查询结束以后,需要单独的子任务完成结果汇总,转换为结果信息,用户根据相应的接口,读取查询结果。应用过程中,Impala 应对海量数据场景,导致查询出错的可能性较大,同时用于多维查询中出错率较高。本次实验中对于探查数据的csv文件,首先经过区间位图索引分类,对可能近似数据实现关键数据属性连接,进入异常检测数据集,再应用Impala完成搜索。本实验数据采用真实的承德公交数据车辆GPS数据和主要路口数据,其中车辆 GPS数据如表1信息,路口数据如表2信息。表 1车辆GPS数据路口数据字段采集路口标记采集时间小客车流量大客车流量货车流量平均车速数据示例001,002,003时间戳数据0 1 0 10 0 1 00 0 0 17 0 32 31表 2路口信息数据公交GPS数据线路时间车辆编号速度停靠站点GPS位置数据示例1路 7路 6路 29路时间戳数据Z1619,z21380,38.34 20.16 9.396下行 到站(117.941973,40.964996)数据采集过程中清洗掉由于客观因素比如天气,网络通信影响,存储平台借助Impala实时查询框架,在实时上传的数据中定位异常运营车辆的基本信息。本存储平台除了在存储阶段探查数据异常之外,主要目的是监测运行异常。运行异常大致分为两类,车辆异常和道路异常。这种异常是衡量运营乘客满意度和运营成本的主要指标。其中车辆异常主要包含有车速在不同路段之间的速度异常,以及相同线路车辆聚集异常等,道路异常主要为道路拥堵异常,造成车辆无法准点进站。本实验验证两种异常事件:(1)单点速度异常事件:公交车辆在不同形式路段的运营速度超过平均速度或者同一线路车辆在运营中同一线路、同一方向上车辆间距到达临界值从而引发的异常。(2)道路拥堵异常事件:公交车辆即将通过路口车辆密度到达临界点引发的异常。这里仅仅针对路口进行异常判断,主要由于目前仅能收集主要路段的路口行车数据。公交运营过程受到司机主观影响,因此异常数据是普遍存在的,在固定的时间周期内海量数据中顺序扫描异常数据,无疑耗费大量的时间,因此扫描前数据过滤是非常有必要的。高强等12在数据处理关键技术提出了位图索引过滤多维表的方案,在提升性能的设计方面具有很强的代表性。本文针对异常数据,建立区域编码以及定点查询连接机制,在实验分析部分展示了在此存储平台上查询结果。2基于改进位图索引,构建Impala查询平台基于海量数据批处理查询以及实时查询效率的衡量,采用 Impala 作为 HDFS 上层数据探查。Impala直接查询HDFS文件,查询操作通过Impalad 服务,在内存中完成查询。查询过程中,每个Impalad的缓存会存储最近加载的全部查询表,可以实现实时任务交互。Espeholt等13针对Impala性能测试分析,查询最主要的挑战就是内存的容量。Impala查询中,Impalad结点会缓存所有元数据,这样方便了对同一个表重复查询使用,但当超出内存容量时会直接报错。因此在查询前,需要针对海量采集到的数据,利用区域位图编码,快速实现相关数据区域定位和多表连接。多维结构中应用位图索引完成多表连接是可行的,贺智明等14、张延松等15都分别应用了位图索引解决了海量数据区域查询设计方案。据此,本次实验将定时收集到的海量公交轨迹数据以及路口数据集成分类存储,112迟剑等:基于公交运营异常事件快速定位存储平台设计第24期生成轨迹运行属性值。按照各个站点处于不同的路段,设置公交运行速度时限,按照路段和速度时限完成位图编码,对采集的数据清洗,筛选出超出路段速度阈值的数据,同时根据相应路段定位路口数据,连接筛选数据和路口数据建立新表。Impala 中通过设定 SQL 语句,定位异常数据值。建立区域位图索引的聚集方案为:(1)根据历史数据,将不同路段车辆准点到站平均车速以及规定的最小速度作为不同街区各站点之间的阈值,为一个属性区间C=(v1,v2),(v2,v3),.(vn-1,vn),该属性描述了车辆在不同街区形式的正常速度区间分布,如果相应速度在该区间之外,则为速度异常特征值。(2)建立路段位置和速度变化区域的位图索引,根据不同路口所在的街道,检查车辆的速度是否超过阈值。所以每一个索引数据分成两个部分,其中后三位为所在街道位置,其余位数为实时扫描速度,不同的街道速度监测阈值不同。因此给定n个基数b1,b2,bn,一个数据V可以分解为v1,v2,因此数据V的索引为V=v1()bi+v2()bi具体设计如表3所示。表 3基于范围位图索引示例RID1234data800115001230010001equality东园林e01111新华路e10000南营子街e20000火神庙e30000Range0,10)r0100110,25)r1011025,35)r2000035r30000(3)采集并过滤数据。利用上述位图索引过滤数据集,上传异常区域数据集。其中位图索引筛选过程:首先确定路段位置,假定车辆速度在相应标准范围之外,则标记为1,该数据上传,否则标记为0,放入等待区,接受批量上传。(4)在设定的范围内搜索异常点,按照key值存入Hbase数据库,可以直接定位相应数据。考虑表的Rowkey的长短,采用路口标识和车辆编号迭加车辆速度作为行键,存储车辆GPS数据。以上