APP下载

动车组车载实时监控海量信息数据库的设计与实现

2011-05-08昌献梅贾志凯

铁路计算机应用 2011年4期
关键词:海量动车组分区

昌献梅,贾志凯,李 明

(1.北京铁辰工程监理中心,北京 1 00844;2.中国铁道科学研究院 电 子计算技术研究所,北京 1 00081)

我国生产的新一代动车组采用先进的车载总线及GSM-R/GPRS技术,实现了在途运行动车组车辆运行状态及故障报警等信息的实时落地,充分利用车载实时监控数据,地面监控中心可实时获得在途动车组故障报警信息及设备工作状态,复现司机室和机械师监控界面,为调度指挥和故障应急处置提供信息支持。动车组车载实时监控系统信息数据量大、实时性高,数据库设计质量是整个系统能否长期高效、稳定运行的关键。

1 数据库需求分析

1.1 业务需求

动车组车载实时监控系统对后台数据库的主要任务需求为:

(1)可实时查询最新的动车组运行状态和设备工作状态。

(2)当故障发生时实时更新报警信息。

(3)可查询指定时间段内的各类运行参数信息。

(4)可根据管理需求按不同维度汇总、分析指定时间段内的故障信息。

1.2 主要数据内容

动车组车载实时监控数据按照业务种类划分为运行状态数据、故障数据和设备自诊断数据3大类,主要数据内容包括:

(1)运行状态数据:车组号、车次、编组状态、速度、GPS值、牵引状态、制动状态以及网压、管压、轴温、车门、空调、卫生间等运行参数信息。

(2)故障数据:车组号、车次、故障代码、故障位置、报警时间以及相关重要环境信息等。

(3)设备自诊断数据:车载时间、车组号、车次、自检情况、GPRS网络连接情况等。

高速动车组运行速度快,设备复杂,其故障报警信息本身数据量较小,但其附带的环境参数数据量较大,实时性要求最高;运行状态信息发送频率高、内容多、数据量大,实时性要求较高;设备自诊断数据量较小,实时性要求较低。

2 数据库设计

通过对主要业务需求及数据内容分析,根据现行海量数据库的良好设计思路[1~2],主要阐述主要的息海量数据库涉及到若干表,动车组车载实时监控海量信息数据库的设计主要考虑以下几方面:

(1)数据库设计需同时满足实时监控及统计分析双重任务,具有联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)系统的双重特点,其特点如表1。

表1 数据库需具有的特点

(2)数据库设计应满足未来发展的需要,对于海量信息数据库而言,一旦上线运行,其设计修改及调整将非常困难。

(3)数据库维护工作量较小,数据备份工作对系统工作和性能影响较小,一旦发生问题,恢复时间限定在4 h以内。

2.1 设计原则

在数据库设计阶段,除常规的设计原则外,重点考虑了以下原则:

2.1.1 数据库性能和整体系统响应性能相匹配

在设计之初,认真分析系统整体功能需求及响应要求,考虑了现场实际管理能力,使得系统技术能力和管理能力相匹配,不以片面追求高性能为目的,合理设定系统响应时间、并发性、存储能力等关键指标。

2.1.2 适当进行反向规范化

数据库设计中根据实际业务需要,对以查询为主的部分故意保留非规范化约束,或者规范化以后又反规范化,改进了数据库的查询性能,加快数据库系统的响应速度。

2.1.3 合理设计和管理表及索引

表及索引是大量物理文件的逻辑载体,对于海量信息而言,数据表及索引的合理设计对于数据库的性能及后续管理工作影响重大。在设计中采取如下措施:

(1)利用表分区技术,不同分区的数据制定保存在处于不同磁盘上的数据文件里,将数据传输对磁盘I/O竞争均匀地分散开。

(2)充分估计到数据结构将来可能出现的变化,合理设置pctfree参数和pctused参数,尽量减少数据库中出现行链接和行迁移,减小I/O消耗。

(3)将动态增长的对象分别放在各自的表空间中以减少磁盘碎片的产生。

(4)合理设计业务功能,减少索引使用,合理使用聚簇技术,对于分区表使用本地分区索引,方便对表及索引的维护。

2.2 数据表设计

动车组车载实时信息海量数据库涉及到若干表,现主要阐述主要数据表设计。

2.2.1 动车组最新运行状态表

该表主要用于存储每列动车组最新运行参数信息。将车组号设为主键。在今后若干年内,该表记录数在千级以下,能够实现动车组最新运行状态的快速查询。

2.2.2 动车组运行参数信息表

该表主要用于存储各动车组两个月的运行参数信息。每天的数据建立一个分区,将入库时间值作为范围分区对象,每天定时新建和删除一分区,确保永久保留61个分区,不同的分区使用不同的数据文件存储,并将待删除分区的数据先备份存档。

2.2.3 动车组故障信息表

该表主要用于存储各动车组近两个月的故障信息,每天的数据建立一个分区,将故障报警时间作为范围分区对象,每天定时新建和删除分区,确保永久保留61个分区,不同的分区使用不同的数据文件存储,建立以车组号和时间值为代表的组合索引。

2.2.4 动车组故障分类统计表

该表为中间统计表,主要用于存储每日各种故障类型的相关统计值,每日由定时任务定时执行相应的存储过程统计相关数据。

2.2.5 基础字典表

该类表主要用于存储数据库中的相关基础数据。

3 系统实现及效果评价

根据上文所述设计方案,构建了基于双机热备的数据库实例,并应用于动车组车载实时信息监控系统。到目前为止,系统已稳定运行1年,日均数据量为1.5 GB。数据库对于监控程序的实时查询请求响应及时,扩展能力充足,维护工作较小,上线1年以来,性能没有发生明显衰减,为动车组动态跟踪监控及故障应急处置提供了有力的信息化支撑。

4 结束语

本文在深入分析动车组车载实时监控信息数据种类及业务特点的基础上,研究实时监控与统计分析功能对数据库设计的影响,制定了数据库设计原则及优化规则,提出了动车组车载实时监控海量信息数据库的设计方案,并按此方案进行了系统实施,取得了较好的应用效果。

[1]仰燕兰,叶 桦,费树岷. 车辆定位监控系统数据库的设计与优化[J]. 东南大学学报,2010(9):43-47.

[2]邵 英,郑 健. 新型海量信息数据库的设计与实现[J]. 计算机工程与设计,2006(6):2441-2443.

猜你喜欢

海量动车组分区
一种傅里叶域海量数据高速谱聚类方法
贵州省地质灾害易发分区图
上海实施“分区封控”
“95后”动车组女司机的首个春运
海量快递垃圾正在“围城”——“绿色快递”势在必行
动车组BTM带内干扰的排查与整治
浪莎 分区而治
CRH3型动车组轮对压装曲线研究
一个图形所蕴含的“海量”巧题
高速铁路动车组站内对标停车难的研究