陆 璐
(广西交通科学研究院有限公司,广西 南宁 530007)
大数据时代的来临,引发了各行业各领域的创新变革,拥有海量数据资产并对其进行挖掘分析和应用已然成为各行业的潮流。大数据也催生了交通大数据这一概念,智能交通系统生成的数据与传统的交通数据不同:在数据来源上,交通大数据不仅包括了联网收费系统的通行记录、外场的智能设备记录的视频图像、传感器设备的动态检测数据,还包括了气象检测环境数据;在数据分类上,交通大数据不仅有结构化数据,更包括了海量的、实时的半结构化和非结构化数据。这些数据体量大、种类多,产生的速度也非常快,是一种丰富独特的数据资源。大数据的生命周期包括了数据采集、数据集成、数据存储、数据处理和数据可视化等。要挖掘出这些数据的隐含价值,提升交通服务质量,需要从数据采集入手。面对海量交通数据,传统的数据处理方法已不能满足需求,因此,我们应研究主流的大数据采集技术,并结合广西高速公路信息化系统的实际需求,构建交通大数据平台的数据采集方案。
交通大数据的数据采集是指将各个系统或设备生成的结构化数据或非结构化数据传输到大数据平台加以存储。从业务角度划分,数据可以分为业务数据和监控数据:
(1)业务数据:联网收费系统相关的数据,包括车辆通行出入口时间、通行费用、车辆类型、货车称重、站点信息等结构化数据。一般存储在Oracle、MySQL等关系型数据库中。
(2)监控数据:视频监控网络相关的数据,包括卡口摄像头所拍摄的视频、车检器的采集信号、交通调查站的过往车辆统计等非结构化数据。一般存储以文件的形式存储在前端设备。
传统的数据采集技术来源比较单一,通常是使用中间件传输将数据通过网络传输到数据中心并存储到关系型数据库中,并使用大规模并行处理(Massive Parallel Processing)技术来提升处理效率。但大规模并行处理技术追求高度一致性和可靠性,可用性和扩展性相对较低,不足以应对交通大数据体量快速增长的需求。
新一代的数据采集方法通常以高可用、高性能和易扩展为主要设计目标,多数采用分布式计算架构。为了保证数据的可靠性,数据存储也会使用分布式存储系统。目前主流的数据采集平台包括Apache Flume、Fluentd、Apache Kafka等。
Apacheflume[1]:Flume是高性能、高可用的分布式日志收集系统,是Cloudera公司的开源项目,于2011年重构后成为Apache的顶级项目。Flume的优点除了高可靠、可扩展性强之外,也提供了通用的接口。在文件格式匹配的情况下,仅需配置即可搭建起数据采集应用,而不需要开发封装接口。在交通监控系统中,监测设备如车检器会产生大量的监测数据,这类数据类似于日志,分布在各个前端设备中,可以使用Flume进行采集加以分析。
Fluentd[2]:Fluentd是一个开源的数据采集框架,使用JSON文件来统一日志数据。其架构特性是可插拔的,支持各种不同种类和格式的数据源和数据输出,同时提供了高可靠和很好的扩展性。
Apache Kafka[3]:Kafka主要用于处理实时流式数据,是2010年12月LinkedIn公司的开源项目。它在大数据平台中起到数据分发中间件的作用。在大数据分析的使用场景中,在数据采集上来以后,需要传输到后端进行下一步处理。由于采集前端与处理后端通常是一对多的关系,所以需要数据分发中间件来负责消息转发,以保证消息的可靠性,平衡前后端的速度差[4]。
广西高速公路信息化系统的相关业务拥有不同的数据源及应用场景,因此其具体的数据采集需求要结合实际的数据源及应用场景做进一步的分析。
联网收费是高速公路管理的核心业务之一,因此收费数据是重点分析的对象。收费数据的原始记录产生于收费车道前置的收费设备,并通过网络传输到数据清分中心,存储在关系型数据库中。联网收费的基本需求是在不影响业务处理性能的情况下,保留历史数据以备数据挖掘与分析。在这个业务处理场景中,收费数据存储在关系型数据库中,可伸缩性较差,又需要满足查询与其他数据操作的实时性,需要定期清除部分历史数据。但是在大数据场景下,这些看似无用的历史数据又可能是具有极高的隐含价值。因而需要将关系型数据库中的数据同步到大数据平台的分布式存储系统HDFS中,让HDFS备份完整数据的冗余存储。
高速公路上的视频监控通常是为了应对路面上的交通事件,为应急处理提供事实依据。视频监控数据的基本需求是提取特征数据,重点保留交通事件的视频记录。针对视频文件的大数据处理,需要在采集提取阶段加载图片后,根据某种识别算法,识别并提取图片的特征信息,并将其转换为应急救援和紧急预案需要的数据模型。这个场景中数据采集的难点是,数据提取的耗时相对较长,也需要较多的内存资源,容易成为整个数据处理流程的瓶颈[5]。
车检器是布设在路上检测车流量的设备,其数据是周期性采集统计的车辆统计值。实时车流量信息是高速公路信息化管理中关注的重点,这关系到收费站资源调配、应急事件处理等工作源。车检器数据的基本需求是数据要实时采集。由于车检器数量较多,而且在未来还可能会增加,因此需要在采集方法上能够提供高可用性和易扩展性。
交通大数据的采集涉及数据的产生、处理和存储三个阶段,基于高速公路信息化系统的数据需求及其应用场景,智能交通大数据平台的数据采集既要兼容传统的结构化数据,又要支持新型的非结构化数据。
为了合理利用资源,交通大数据平台从联网收费清分中心获取收费清分数据。而对于视频监控的视频数据和车检器数据的采集与处理,则通过集成目前开源的日志采集技术、数据流处理技术、消息队列技术和分布式存储技术,实现交通大数据的收集、传输与存储。平台架构如图1所示。
图1 智能交通大数据平台架构设计示意图
为了不影响联网收费业务的处理性能,联网收费数据采用Kafka订阅-发布的方式进行传输,直接存储到大数据平台的分布式文件系统HDFS中,完成历史数据的冗余备份。
视频数据由于体量极大,需要先进行特征提取再进行分类存储,以便数据的后续处理与使用。视频流存储到视频服务器后,通过Kafka将数据传输到处理服务器,在处理服务器进行特征提取和视频压缩,将结果使用Kafka传到大数据平台。
车检器数据使用Flume将数据以日志的形式传回到大数据平台进行存储展示,由于车检器数量很多,Flume部署以集群的方式,保证数据采集传输的可靠性与稳定性。
交通大数据平台的存储设计以分布式存储HDFS为主,同时支持数据仓库。收费数据这类传统数据库移植过来的数据,用HBase建立相应的数据结构,最大程度与源数据保持一致。视频数据要对特征值建立索引,并存储压缩后的视频文件,以减少存储压力。
分布式存储平台中的一部分数据可通过ETL将处理过的信息存储在数据仓库中,以便上层应用的快速搜索查询。例如,收费数据的原始记录在进行统计后形成报表,报表记录可按照按业务需求分类存储在数据仓库中,上层应用即能快速提取所需数据,提高系统效率。
本文对大数据的采集技术进行了研究,分析了交通大数据平台中高速公路信息化系统的数据特点和需求,对智能交通大数据平台的数据采集系统架构进行了构想。智能交通大数据的应用是交通数据转化为数据资产,提升竞争力的必然趋势,对于提高智能交通信息化水平、提升交通服务质量、提高决策效率具有重要意义。数据采集作为大数据应用的基础,其意义不言而喻。