APP下载

基于时序数据库的高速公路数据集成平台

2022-11-17郝建明袁逸涛

关键词:时序数据库高速公路

郝建明, 袁逸涛

(中远海运科技股份有限公司,上海 200135)

0 引 言

时间序列数据(以下简称“时序数据”)是按数据属性中的时间戳大小排列的一系列记录值的数据。近年来,随着物联网和5G技术的不断发展,时序数据在交通、工业和金融等领域得到了广泛应用。特别是在高速公路领域,由交通运输部主导实施的“取消高速公路省界收费站项目”和“高速公路视频云联网项目”等重大工程,极大地提升了高速公路上电子不停车收费系统(Electronic Toll Collection,ETC)门架、智能摄像机等感知设备的建设规模。这些感知设备会持续产生海量的时序数据,利用好这些时序数据,可为智慧高速运营管理提供更可靠的数据分析服务。

据调查,对于ETC门架而言,单一设备采集的单日数据量峰值能达到上万条;同时,对于高速公路整体数据容量而言,单个省份每年的高速公路时序数据存储容量需求能达到PB级别。以MySQL和Oracle为代表的传统关系型数据库受存储结构的限制,在数据库设计层面无法完成对海量时序数据的快速连续存储,而关系型数据库的多路搜索树(B-Tree)结构在处理时序数据的检索查询问题时,速度较慢,导致数据的实时分析和展示效果都很差。

时间序列数据库(以下简称“时序数据库”)基于时序数据的结构特点,在数据写入性能、数据查询性能和数据存储压缩率等3项指标上做了针对性优化,相比关系型数据库在性能上有了很大提升。本文对主流的时序数据库进行研究,并基于TDengine时序数据库设计实现一套高速公路数据集成平台,解决高速公路海量时序数据高效压缩存储和快速实时分析方面的难题,并在宁夏高速公路落地应用。

1 时序数据库概述

时序数据的最大特点是存在唯一的时间戳,在存储过程中需以时间戳的大小排序,并以时间戳作为同一设备数据的唯一标识进行区分。由于物联网设备在某个时刻产生的数据基本上不会再发生变化,因此几乎不需要对时序数据进行更新。对于关系型数据而言,经常需对已存在的数据进行更新操作[1]。

此外,时序数据的数据量会随着时间的推移持续呈线性增长。例如,高速公路养护车辆安装的定位终端每隔几秒就会产生新的数据,在车辆行驶过程中产生的时序数据数量会不断增加。关系型数据通常不随着时间的推移持续增加,在一段时间内是相对稳定的。

时序数据库针对上述数据的特性,通过对时序数据的存储和查询场景进行优化,满足对海量时序数据的高效存储和快速处理的需求。与关系型数据库相比,时序数据库主要通过优化存储机制大幅降低存储空间的开销,优化查询速率。在时序数据分析方面,采用灵活的时间聚合功能、数据保留策略和多维度时间范围查询等机制提高数据分析速率。

时序数据库的特点[2]一般体现在以下几个方面。

1) 高吞吐量数据高速写入能力。由于时序数据库的应用场景通常持续产生海量数据,对写入速度的要求很高,写入并发量很大,这就要求时序数据库能实现高吞吐量的数据高速写入功能。

2) 高压缩率。时序数据库需存储大量数据,数据存储需求通常是TB级别,甚至达到PB级别,因此需根据时序数据的特征对数据进行压缩存储,提高数据存储空间的利用率。

3) 高效时间窗口查询能力。时序业务的查询需求分为2类:一是实时数据查询,反映当前监控对象的状态;二是主要查询某个时间段的历史数据。历史数据的数据量很大,此时需对时间窗口大量数据查询进行优化。

4) 高效聚合能力。由于时序数据使用时间戳作为唯一标识,因此在对时序数据进行分析时会将数据的汇聚值作为重要的分析指标,反映应用场景下某个时间段内的数据整体情况,这意味着时序数据库需提供高效的聚合函数。

5) 批量删除能力。时序数据通常以时间为数据有效性指标,因此需对过期的数据进行批量删除操作。

6) 通常无需具备事务的能力。时序数据库主要的应用场景是数据分析和挖掘,很少用于实现业务流程的数据流转,因此无需具备事务功能。

由于时序数据库在设计之初就与关系型数据库有明显区别,因此其基本属性也与关系型数据库不同。时序数据库的基本属性概念见表1[3]。

表1 时序数据库的基本属性概念

2 高速公路时序数据分析

本文设计的高速公路数据集成平台主要用于对各省的高速公路运营体系产生的所有数据进行统一采集、汇聚、存储、治理、分析、共享和展示,为高速公路运营公司搭建数据中台,增强其路网运行态势感知能力,提高其高速公路运营管理水平,提升其高速收费效率和服务能力,保障高速公路的安全性和畅通性。

作为新基建的重要组成部分,智慧高速上安装有大量物联网感知设备,这些设备采集的数据绝大部分都是时序数据,因此如何对时序数据进行存储、治理、分析、展示和挖掘,已成为高速公路数据集成平台需解决的核心问题之一。

通过对各省的高速公路运营公司进行调研发现,在具体的应用场景下,对高速公路时序数据的本质要求是不变性、唯一性和可分析性。因此,高速公路时序数据的应用需求主要有以下3点。

1) 数据高并发写入。目前,在各类高速公路物联网设备采集的时序数据中,每日入库的数据量已突破亿级大关,高效地将如此大批量的时序数据入库已成为高速公路数据集成平台的一个核心需求。

2) 数据高效分析。各省高速公路运营公司的一个重要职责是对高速公路路况进行实时监测。路况分析的实时性要求较高,需根据采集到的时序数据快速、可靠地分析出路网的运行态势,此类数据分析的速度需达到秒级水平。随着业务应用场景的不断拓展,数据的复杂性和分析频次都会呈指数级增长,如何快速、高效和准确地进行时序数据分析也是高速公路数据集成平台面临的一大难题。

3) 数据的可靠性和安全性。高速公路运营体系内的部分数据(例如车辆精细化收费金额)属于敏感性数据,因此保障数据存储的可靠性和安全性也是高速公路数据集成平台的核心需求之一。

本文对高速公路运营体系内的时序数据的各类数据源进行调研,分析其时序数据的特点,结果见表2。

表2 高速公路时序数据分析结果

3 数据集成平台设计

3.1 时序数据库选型

针对高速公路数据集成平台的时序数据的特点,对目前主流的InfluxDB、OpenTSDB和TDengine等3款时序数据库产品进行选型研究。

根据前期调研情况,准备由ETC门架采集的4 000万条车牌识别数据进行选型测试。每条数据采集记录都包含1个时间戳、2个标签符和4个采集数据值,由统一的客户端对服务端进行数据推送,推送频率为10 000条/s。每条数据的每个变量所需存储空间约为20字节。研究指标包含占用存储空间、百万数据遍历查询耗时和千万数据聚合查询耗时,其中聚合查询涵盖COUNT、AVG、SUM、MAX和MIN等常见语法。

此次选型研究采用3台16核64G内存的服务器搭建存储集群,服务器的操作系统均为CentOS Linux release 7.9.2009。占用磁盘空间分析结果见表3。

表3 占用磁盘空间分析结果

表4为百万数据遍历查询分析结果,其中G-x中的x用0~39的数字标识分组,每组100万条记录(总共4 000万条数据,共40组),限于篇幅,本文仅展示前8组(G-02~G-08)的测试结果。表5为千万数据聚合查询。

表4 百万数据遍历查询分析结果

表5 千万数据聚合查询

经研究,在相同条件下:对于占用存储空间指标,TDengine和InfluxDB的表现较好,3种数据库的各指标的差异较小;对于百万数据遍历查询分析指标,TDengine的表现最好,且明显优于OpenTSDB和InfluxDB;对于千万数据聚合查询耗时指标,TDengine的表现明显优于InfluxDB和OpenTSDB。

从查询效率的维度看,InfluxDB的查询效率与TDengine相差不大,但随着原始数据的设计复杂度的提高,遇到了InfluxDB的查询效率方面的瓶颈问题。因为InfluxDB没有明确的基于单一数据源的建表方式,若用1张表保存所有类似数据源的数据,数据量会很大,查询性能会下降。比较明显的是,在百万数据量级以内,若采用这种建表方式,查询数据所需时间约为1 s,而当数据到达千万量级时,数据查询效率下降十分明显,无法满足高速公路数据集成平台的应用场景需求[4]。

通过选型研究发现,TDengine在查询性能维度上的表现较好,满足高速公路数据集成平台的业务查询需求,且TDengine的集群功能开源,方便横向扩展,具备系统弹性,为国产数据库产品,符合高速公路行业信息技术的国产化发展趋势。因此,本文最终确定将TDengine作为高速公路数据集成平台的时序数据库。

3.2 数据集成平台总体设计

高速公路数据集成平台以高速公路运营管理问题和需求为导向,整合高速公路运营体系内的所有数据,对高速公路数据进行采集、加工、存储、治理、分析和共享,除了满足高速公路运营公司的使用需求以外,还可满足不同行业、不同部门的高速公路交通数据应用和挖掘分析需求[5]。

本文设计的高速公路数据集成平台的总体结构见图1。

图1 高速公路数据集成平台的总体架构

1) 采集层:主要汇聚外场设备数据和第三方系统提供的业务数据,其中时序数据主要来源于各类外场设备。外场设备通过不同的通信协议(MQ、MQTT、AMQP、HTTP、TCP、HJT212、ModBus和NB等),经过数据传输接入平台中。

2) 硬件层:通过物理服务器集群搭建私有云平台,建立虚拟资源池,实现对服务器资源的统一规划调度,主要分为计算资源池、存储资源池和网络资源池。网络环境主要由5G物联网,以及传统的收费专网、监控专网和互联网组成,专有网络按国家等保二级设计,兼顾网络的安全性和开放性。

3) 数据层:以MySQL和TDengine为核心,MySQL用来存储常规的关系型业务数据,TDengine用来存储时序数据。所有数据经过Kafka消息队列处理之后进入Redis缓存池,最终存储到数据库中。所有设备产生的时序数据都由Kafka消息对接进行消费,随后进行噪点清洗,将有用的数据及时更新到MySQL和TDengine 中。第三方系统数据主要通过中间库的库表交换方式与HTTP接口交互。

4) 应用支撑层:基础支撑平台是支撑平台应用的引擎底座,通过对存储的数据进行分析处理,为上层应用提供支撑,主要包括数据接口认证、BI(Business Intelligence)分析工具、GIS(Geographic Information System)地图、ZooKeeper监测工具、智慧高速算法引擎和视频智能分析算法等基础支撑服务。

5) 应用层:在对数据进行处理分析之后,为平台用户提供实时路况分析、拥堵治理、交通流量监测和匝道智能控流等多个应用场景。

3.3 时序数据库应用

由于高速公路运营体系内的各种设备的协议和上报的数据都是不同的,因此本文将公共属性(如位置、方向、所属高速、所属片区、所属厂家和设备类型等)作为超级表标签,将共有参数(如车速、车牌号、车型和车种等)作为普通列,将时间戳+设备编号作为超级表主键,将其他非共有参数作为子表字段[6]。

以ETC门架的子表为例,其结构见表6。

表6 ETC门架子表结构

高速公路数据集成平台的数据持久化流程见图2,外场设备和第三方数据通过不同的采集方式进入数据解析服务中。HTTP服务和MQTT服务适合定时数据获取,数据定时抽取的形式通过开发定时任务定义,数据同步策略有全量同步和增量同步2种。

图2 高速公路数据集成平台的数据持久化流程

数据解析服务通过建立数据过滤规则引擎,根据已有的规则参数进行数据过滤,从完整性、有效性、准确性、及时性和规范性等方面对数据过滤规则进行处理,确保数据的时效性和数据质量满足要求,实现数据全寿命周期管理,保证数据记录可追溯。

在过滤数据之后,进一步对过滤的数据进行结构化解析,由Kafka消息队列处理之后进入Redis缓存。每个发送给Kafka的消息都有一个主题,对数据进行分类处理。由Redis订阅Kafka的主题,对数据进行区分,关系型数据存入MySQL中,时序数据存入TDengine中。

4 数据集成平台应用效果

本文设计的高速公路数据集成平台已在宁夏高速公路运营公司落地应用,使用3台16核64G内存、4T硬盘的服务器搭建了3个节点3个副本的TDengine集群,为宁夏高速公路运营公司提供了路网运行态势感知、路网流量分析监测、路网流量预测研判和高速公路出入口智能管控等多种应用场景。

在投入使用2个月之后,高速公路数据集成平台已集成时序数据约5亿条,峰值数据写入速度达到了1.5万行/s。原始数据容量约为708 GB,经过压缩之后为67 GB,数据压缩率达到了约9%,叠加使用TDengine数据过期删除机制,大幅节约了存储成本。同时,在当前高并发写入规模下(0.5万~1.5万行/s),CPU(Central Processing Unit)资源占用率不到1%,内存占用只有2G,节约了大量服务器计算资源,为数据集成平台的数据分析节约了更多算力资源(见图3)。

图3 CPU占用率随时间的变化曲线

与传统的MySQL分区+索引处理各类时序数据的模式相比,时序数据入库的性能提升了4倍,各类查询性能提升了3~10倍。

基于TDengine实现的多个应用场景运行效果良好,以宁夏高速公路路网流量分析监测应用为例(见图4),高速公路数据集成平台对车辆定位数据、高德地图实时路况数据和ETC门架数据进行匹配分析,对空间和时间进行多角度、多粒度分析,深度挖掘数据,结合历史数据进行流量态势计算,进一步实现了短时流量预测,为高速公路运营公司掌握车流分布、实时监测重点管控区域的车流量提供了直观可视化展示功能,为人力、物资安排和高速公路出入口管控措施的实施提供了决策支持。

图4 宁夏高速公路流量分析监测应用

5 结 语

本文通过研究时序数据库指标的特性,结合高速公路时序数据的特点,基于TDengine时序数据库设计实现了一套高速公路数据集成平台,解决了关系型数据库无法满足高速公路信息化领域的海量时序数据存储和高效查询需求的难题。该平台已在宁夏高速公路落地应用,结果表明其能在智慧高速的路网运行态势感知、实时路况分析、拥堵治理、交通流量监测和匝道智能控流等多个应用场景下发挥作用,有效支撑高速公路运营管理决策分析,为高速公路大数据的分析和应用提供了一种新的研究思路。

猜你喜欢

时序数据库高速公路
顾及多种弛豫模型的GNSS坐标时序分析软件GTSA
清明
基于GEE平台与Sentinel-NDVI时序数据江汉平原种植模式提取
一辆开上了高速公路的汽车
你不能把整个春天都搬到冬天来
为什么高速公路上不用路灯照明
数据库
数据库
数据库
数据库