基于HBase的民用航空发动机大数据管理系统

2016-10-26 08:47田亚鹏郑砚普付旭云
山东工业技术 2016年20期
关键词:海量报文检索

田亚鹏,郑砚普,付旭云

(1.哈尔滨工业大学(威海)船舶与海洋工程学院;

2.威海众成信息科技股份有限公司 技术部,山东 威海 264209)

基于HBase的民用航空发动机大数据管理系统

田亚鹏1,郑砚普2,付旭云1

(1.哈尔滨工业大学(威海)船舶与海洋工程学院;

2.威海众成信息科技股份有限公司 技术部,山东 威海 264209)

为克服传统关系型数据库存储管理海量航空发动机状态监控数据的不足,本研究提出了基于HBase的民用航空发动机大数据管理系统。首先分析了该系统的功能需求,给出了系统整体架构与模块设计,并对关键技术进行了阐述。最后设计试验对比HBase与Oracle的搜索效率。试验结果表明检索结果集较大时HBase的搜索效率明显高于Oracle。本研究中提出的航空发动机大数据管理系统为发动机海量数据的存储管理提供了一种解决方案。

民用航空发动机;大数据;NoSQL;HBase;搜索效率

0 引言

作为飞机的核心组成部分,航空发动机的健康管理是航空公司日常工作的重中之重。航空发动机是一个十分复杂的系统,其日常运营中会产生大量的状态监控数据。这些监控数据能够帮助工程师了解发动机当前状态,判断发动机有无发生故障,并根据当前状态制定相应的维修计划。因此实现对航空发动机数据的有效监控与管理成为各航空公司的迫切需求。

以往航空发动机的状态监控数据都存储在关系型数据库中。工程上应用较广泛的关系型数据库包括Oracle、SQLServer、DB2、Sybase、Access等[1]。在存储数据量较小时,采用传统的关系型数据库进行检索,其检索速度是可以满足日常需求的。然而随着发动机状态监控技术的进步以及航空公司机队飞机数量的快速增加,航空公司收集到的状态监控数据量逐渐变的非常庞大,并且还有不断增长的趋势。以国内某航空公司为例,2013年时其飞机保有量大约为300架,每天大约有1300多个航班。在这种情况下,仅仅是快速存取记录器(QAR)记录的数据量就达到每年2TB的规模[2]。这仅仅是QAR的数据量,其他数据来源如飞机通信寻址报告系统(ACRAS)、原始设备制造商(OEM)等都会产生大量的监控数据。随着航空公司机队规模的扩大以及技术的进步,其获得的发动机状态监控数据量将变得更加巨大。

虽然关系型数据库性能非常好,但它毕竟是通用型的数据库,并不能完全适应所有用途。传统的关系型数据库需要固定的模式来描述数据,因此难以适应工况数据模式多变的特点;传统的数据库很难进行横向扩展。对于容量扩充的需求只能通过停机维护和数据迁移来实现,时间和财力成本较高。此外,传统的关系型数据库难以满足高并发读写的需求,简单查询时返回结果不够快并且对硬件性能要求较高[3]。由于存在这些缺陷,仅依靠关系型数据库本身的索引或者分区分表等方法来存储规模日趋增长的发动机监控数据,其存储和使用效率会变的非常低下,严重时甚至会导致数据库服务器崩溃。

针对航空公司有效存储管理发动机海量监控数据的迫切需求,本研究提出一种面向民用航空发动机海量监控数据的存储管理方法,并设计了相应的大数据存储管理系统。使用关系型数据库和分布式文件系统构成两级存储模式。上层利用Oracle实现航空发动机管理机制和基础数据的组织;底层利用HBase分布式文件系统实现对海量数据的高性能存储管理。这种结构可以实现航空发动机基础数据与监控数据的动态耦合,一定程度上实现了航空公司有效存储管理海量监控数据的需求。

1 系统需求分析

飞机从起飞到降落,发动机各个参数由飞机状态监控系统(ACMS)的传感器实时测得并被编入发动机报,通过飞机通讯寻址与报告系统(ACARS)发往地面站。航空发动机的生产厂家(OEM)也会采用自己研制的发动机状态监控软件对ACARS数据进行处理,并将处理后的数据(OEM数据)发送给航空公司。目前这两类数据在航空公司的应用是比较广泛和成熟的,因此本研究专门针对民用航空发动机这两类数据设计一套海量数据存储和管理系统。该系统应具有如下功能:

a)定制解析协议解析发动机监控数据。如上所述,目前航空公司经常使用ACARS报文数据和OEM数据对发动机进行管理。但这两类数据原始形式并不能直接为工程师所用,必须采用专门的解析协议对其解析后方能使用。ACARS报文一般为txt格式文件,OEM数据一般为excel文档。

b)监控发动机参数中出现的不合理状况并给出报警信息。需要针对不同发位、不同班次的发动机进行监控并综合各方面的信息判断发动机当前状态。在报警功能中报警规则应能够根据工程师需求人工修改,并且报警历史应该被保存以供工程师日后查看。

c)为用户提供数据的图形化展示。该部分应该为用户提供包括数据图形展示、图形导出以及数据导出等功能。

d)保证工程师能及时检索到所需数据。系统中将对海量数据(亿级别以上)的检索速度应该控制在15秒以内。

2 系统设计

针对航空公司有效存储管理发动机海量监控数据的迫切需求,本研究设计了一个基于HBase的民用航空发动机大数据管理系统。该系统可以分为四层,从下而上依次为数据层、业务逻辑层、表现层和客户层。

数据层使用关系型数据库和分布式文件系统构成两级存储模式。业务逻辑层主要功能是解析航空发动机监控数据。表现层主要功能是报警管理和趋势分析。客户层是web浏览器,用户在客户端无需额外安装任何软件,只要有可运行的网络并且计算机安装了web浏览器即可访问该系统。该系统的整体架构如图1所示。下面对系统的业务逻辑层和表现层进行详细阐述。

2.1 业务逻辑层

业务逻辑层的主要功能是定制解析协议,将原始ACARS报文和OEM数据解析成标准化、规范化并且可直接操作的有效数据。该层可进一步分解为SMI标签管理、子标签管理、标准化参数管理、参数监控类型管理、ACARS模板管理和OEM模板管理六个模块。

2.1.1 SMI标签管理

SMI是区分报文的首层标志。报文的形式主要有参数监视报(DFD)、故障报(CFD)、运控报(M10)、厂家报文(OEM)。前三种报文分别来自机载系统的三个不同模块,其中DFD来自发动机参数监视系统ACMS,CFD来自故障监视系统CMC,M10来自运控系统ACARS,这三种类型的报文都通过ACARS统一向地面发送,地面站未对其进行区分。因此需要设置首层标志SMI来区分不同类型的报文。

2.1.2 子标签管理

子标签是区分报文的下一层标志。比如ACARS报文又可以进一步分成起飞状态报(TKO),巡航状态报(CRZ)等。采用子标签可以对报文进行更加具体的分类。

2.1.3 标准化参数管理

各个发动机厂家对各项参数的命名并没有统一规范。为方便管理数据,需要制定一套统一的发动机参数命名规范。根据该规范将各个厂家提供的数据标准化,这样做有利于日后对发动机数据的管理和利用。

2.1.4 参数监控类型管理

方便用户根据自身需求选择不同的参数监控类型,比如气路监控、振动监控等。

2.1.5 ACARS模板管理

该部分的主要功能是配置参数在报文中的位置,将每种报文中各个参数所在行列记录在xml模板中。因为xml可以明确表示各个参数的属性信息和所处位置,采用dom4j可以对xml文件进行解析和生成。xml模板的格式如图2所示。

2.1.6 OEM模板管理

该部分主要确定OEM文件中各行各列的意义及其对应关系。在解析OEM文件时需要获取标题所在行、数据开始行、发动机序列号(ESN)所在列、时间所在列、时间格式、各列参数与标准化参数的对应关系、参数是否需要导入数据库、飞行阶段设定规则等信息。这个模块可以根据用户需求自定义格式,增加操作灵活性。

2.2 表现层

表现层主要包括报警管理和趋势分析两个模块。报警管理的主要功能是设定报警规则和查询报警历史信息。趋势分析的主要功能是绘制数据基本图和复合图。

2.2.1 报警管理

一条报警规则的基本信息包括报警类型、报警条件和是否自动报警。报警类型包括超限报警和突变报警。报警条件设置支持简单的阈值设置(上下限)、逻辑运算(与、或、非、异或等)、简单的数学运算(加、减、乘、除等)和复杂的数学运算(绝对值、平方、立方、平方根、立方根、指数、对数、最大值、最小值等)。

报警条件中的参数来自标准化处理以后的参数,可支持多时间点和多发位运算。参数的发位由后缀“_1”(左发)、“_2”(右发)区分,如果只有一个发位,不加后缀。采样点的位置由后缀$n表示,其中n为一整数,$n表示当前值的前第n点。如果没有此后缀,则表示当前值。参数的来源由后缀@ACARS、@OEM区分。ACARS报文中发位可以根据参数后缀直接区分。OEM中发位需要根据发动机装机信息确定。

2.2.2 报警历史信息查询

该部分中工程师可以查看所有报警记录,并且能够查看报警时对应的具体数据。在报警位置可根据自身经验添加处理意见。

2.2.3 基本图绘制

用户可以根据需求将一段时间内的数据以图形的方式展现出来,从而让用户通过观察图形更好地判断发动机当前和未来的状态。该部分的主要功能有图形展示、图形文件导出以及数据文件导出。图形展示功能中提供如下五种展示方式:

单参数VS时间:X轴为时间,Y轴为一种参数值;

单参数VS采样点:X轴为采样点,Y轴为一种参数值;

单参数VS单参数:X轴和Y轴均为单参数值,用户可根据需求自己设置X轴和Y轴的参数;

多参数VS时间:X轴为时间,Y轴至少为一种参数值;

多参数VS采样点:X轴为采样点,Y轴至少为一种参数值;上述5种方式中均可以绘制至少一台发动机的数据图形。

其中多参数VS时间和多参数VS采样点图形可以选择如下两种绘图方式:参数集中显示(所有数据均在同一个界面中展示);参数独立显示(每个界面仅显示单个参数数据,N个界面对应N个参数)。

2.2.4 复合图绘制

在基本图的基础上,可选择在同一个界面上绘制多个基本图形成复合图。

3 关键技术

本系统采用NoSQL方式存储航空发动机运行过程中产生的海量数据。NoSQL是一个云计算背景下蓬勃发展的分布式、非关系型数据库系统,支持半结构化、结构化数据的高并发读写,存储键值、列族、文档、图等多种数据类型。NoSQL具有良好的可伸缩性和可扩展性,能够有效利用云计算所提供的海量数据存储管理、分布式并行计算能力[4]。

目前出现了一些NoSQL非关系数据存储系统,例如,Apache社区的HBase,Facebook的Cassandra,Amazon的Dynamo以及支持高效数据查询的内存数据存储系统Redis等等。这些数据存储都采用了key-value数据模型.在key-value数据存储系统中,HBase的使用最为广泛[5]。

本系统使用HBase分布式数据库存储数据。HBase(Hadoop Database)是一个结构化数据的分布式存储系统,是Hadoop项目的子项目,采用基于列而不是基于行的模式来存储数据[6]。

本系统在存储与管理发动机监控数据时需要区分不同的发动机,因此HDFS(Hadoop实现的一个分布式文件系统)中以发动机序列号(ESN)作为文件相应目录的唯一标识。Hadoop海量数据文件存储结构如图3所示。

系统中对发动机监控数据的查询主要依据时间和标准化监控属性ID,因此将标准化监控属性ID和时间的组合作为行健。系统对数据操作时还需要区分监控数据产生的飞行阶段和数据来源,因此除了保存监控属性值外,还需要保存飞行阶段和数据来源信息。HBase数据模型如表1所示。

表1 HBase数据模型

RowKey是标准化监控属性ID和时间的组合。标准监控属性ID为固定32位长度。时间精确到秒,并统一使用yyyymmddhhmmss的格式,因此长度固定为14位。两者组合起来,RowKey为固定长度的46位。

Column Family为一个列族,因为所有列都表示一个时间段内的发动机信息,本研究中只设一个列族,命名为MONITORDATA,意为监控数据。

VALUE为标准化监控属性的值,一般为double类型。

DATA SOURCE为数据来源,系统中数据一般来自发动机原始报文或厂家数据,使用数据来源ID表示,一般为固定32位长度。

FLIGHT PHASE为飞行阶段,系统中的飞行阶段有起飞、爬升、巡航等阶段,使用飞行阶段ID表示,一般为固定32位长度。

因为系统中状态监控数据的新增、修改操作都设置为在后台定时运行,并且该运行时间一般选择在非工作时间,不会影响用户对该系统的使用。因此以下主要针对海量数据的查询效率进行测试。为更好地判断新系统存储海量数据时的查询效率,采用对比试验方法对HBase和Oracle的查询性能进行测试。根据实际需求,增加特殊检索方式,例如根据时间段检索。前文已给出HBase的数据模型,对比用的Oracle数据模型如表2所示。

表2 Oracle数据模型

鉴于测试环境要求,Oracle中暂时存有一千万条左右的数据,HBase中数据数量级在亿以上。Oracle为一台单独的数据库服务器,HBase为三台配置完全一样的PC机组成的一个服务器集群。各PC机配置如表3所示。

表3 测试中各PC机的配置

选取2015年1月1日至1月10日的数据对两种存储系统进行测试,HBase和Oracle的检索效率对比如表4所示。

表4 HBase和Oracle检索效率对比

通过表4结果可知,在HBase存储系统硬件条件较弱且存储数据更多的情况下,HBase的检索时间始终保持在10秒以内,而Oracle的检索时间随着检索结果集的增加而迅速增加。工程实际中,监控数据检索的结果集经常十分巨大,此时Oracle的检索速度明显不能满足需求,而HBase的检索速度基本不受结果集大小的限制,能够满足系统检索速度需求。

4 结束语

发动机健康管理系统需要以海量的发动机状态监控数据为基础。鉴于传统的关系型数据库无法满足航空公司存储和管理海量数据过程中的某些需求,本研究提出采用NoSQL方式存储管理海量发动机监控数据。通过分析航空公司的实际需求,给出了针对民用航空发动机的大数据管理系统的架构与模块设计。选取当前使用较为广泛的HBase分布式数据库存储数据,根据发动机监控数据的特点设计数据模型。为测试新系统的查询性能,设计试验与Oracle数据库进行对比。实验结果表明,检索数据集较大时基于HBase的存储系统搜索效率要高于基于Oracle的存储系统,并且搜索时间始终控制在10秒以内。本研究提出的基于HBase的民用航空发动机大数据管理系统可以弥补传统关系型数据库部分性能上的不足,为航空发动机后续健康管理提供更加坚实的基础。

[1]杨俊生.大数据时代数据存储技术的发展[J].电子世界,2014,(05):11-12.

[2]周新颖,谭朝阳,刘倩.挖掘“大数据”时代QAR如何改变飞机运营[N].中国民航报,2013,10(21):004.

[3]钟雨,黄向东,刘丹等.大规模装备监测数据的NoSQL存储方案[J].计算机集成制造系统,2013,19(12):3008-3016.

[4]陈崇成,林剑锋,吴小竹等.基于NoSQL的海量空间数据云存储与服务方法[J].地球信息科学学报,2013,15(02):166-174.

[5]葛微,罗圣美,周文辉等.HiBase:一种基于分层式索引的高效HBase查询技术与系统[J].计算机学报,2016,39(01):140-153.

[6]曾大聃,周傲英译.Tom White.Hadoop权威指南(中文版)[M].北京:清华大学出版社,2010.

10.16640/j.cnki.37-1222/t.2016.20.126

民航局科技计划项目(面向航空运输集团公司的航空发动机健康管理云服务平台开发与应用);山东省自主创新及成果转化专项资助项目(2014CGZH1101)

田亚鹏(1991-),男,河北邯郸人,硕士研究生。

猜你喜欢
海量报文检索
基于J1939 协议多包报文的时序研究及应用
以太网QoS技术研究及实践
一种傅里叶域海量数据高速谱聚类方法
海量GNSS数据产品的一站式快速获取方法
CNKI检索模式结合关键词选取在检索中的应用探讨
瑞典专利数据库的检索技巧
浅析反驳类报文要点
海量快递垃圾正在“围城”——“绿色快递”势在必行
2019年第4-6期便捷检索目录
英国知识产权局商标数据库信息检索