APP下载

水电设备状态监测大数据处理技术研究

2019-05-31曾广移李德华陈泽阳彭大鹏

水电站机电技术 2019年5期
关键词:关系数据库监测数据数据处理

曾广移,巩 宇,李德华,陈泽阳,彭大鹏

(1.调峰调频发电有限公司,广东 广州510000;2.北京华科同安监控技术有限公司,北京100043)

1 引言

随着科技的发展和管理水平的提高,水电设备状态监测的广度和深度不断加强,数据量不断扩大。传统的设备状态监测系统通常单独建设,针对单个领域,解决某类问题,互相独立,彼此间没有关联。随着数字化、智能化水电站建设的推进,要求在电站或者集团级成立状态监测数据中心,接入并融合各个状态监测子系统数据,实现对设备状态的全方位、多维度的监测、分析和评价,为生产管理决策提供全面、准确的技术支撑。

状态监测系统持续、高频地产生各种数据,数据种类多,数据量巨大。如何处理好这些数据,发挥其应有作用是一个巨大的挑战。传统的状态监测系统通常独立存储数据,由于受存储条件限制,一般只保存经过加工后的特征数据,原始数据没有保存,遗漏了隐藏在原始数据中的部分信息,且超过一定时间的历史数据就会被丢弃,不能实现设备全生命周期的状态监测。虽然近年来大数据技术发展迅速,在金融、医疗、消费等领域均得到了成功应用,但是由于水电设备状态监测数据的特殊性,如果照搬其他领域的大数据处理方法很难取得理想的效果。为此,需要全面分析水电设备状态监测数据的特征,根据数字化、智能化水电站建设对状态监测系统的要求,结合当下成熟的大数据技术,设计适合的水电设备状态监测大数据处理方案。

2 水电设备状态监测数据的特点

大数据一般具有“3 V”特征,即规模大Volume、类型多Variety和价值密度低Value。水电设备状态监测系统测点多,数据产生频度高,类型众多,具有典型的大数据特征,是名副其实的大数据,同时又超越了普适的大数据概念,具有其他行业所无法比拟的体量及内涵。

(1)规模大:水电设备状态监测系统测点众多(单个电站的测点以数万计),数据产生频率高(通常为秒级甚至毫秒级),且为全天候不间断采集,数据量巨大。

(2)类型多:水电站设备状态监测数据来源广,数据类型复杂,既有结构化数据,也有半结构化数据和非结构化数据。

(3)价值密度低:这个特点在水电设备状态监测系统中体现得尤为明显,大量的数据为设备正常运行的状态数据,对分析和评价设备状态意义不大,少部分反映设备状态变化的特征数据则隐藏在大数据中。

水电设备状态监测数据的这些特征,给数据的接入、传输、处理、存储和应用均带来了挑战,需要制定合适的策略来管理这些数据,才能最大限度地发挥其作用。

3 数据接入及远程传输技术

在大数据背景下,需要构建状态监测数据中心,接入各个状态监测子系统数据。这些数据产生频率高、数据量大、类型多,需要系统具有极高的吞吐量、实时处理能力及可靠性,才能确保对每一条信息都进行处理,并无一遗漏地保存下来。传统的处理方式是把数据直接写入数据库进行存储,由于前端数据产生的速度有可能高于后端数据处理的速度,这种方式会造成部分数据遗漏,从而降低数据分析结论的真实性和可靠性。

基于消息队列(如Kafka,ActiveQM等)的数据接入方案可以解决上述问题。该方案将数据首先写入消息队列,再由数据管理程序存储到数据库中。消息队列具有缓存机制,已经写入数据库的消息会被清除,尚未写入的数据缓存在消息队列中。采用这种机制,在进行海量设备状态监测数据实时处理时,可以解决前端监测数据产生速度快,而实时处理速度跟不上,导致数据丢失的问题。同时,引入消息队列之后,后端处理速度就不会影响前端监测数据的接入,解除数据接入和数据处理环节的耦合,系统各组件异步运行,增加系统可靠性。

在进行数据远距离传输时,可以利用消息队列机制控制数据的传输。在某些情况下,状态监测系统会突然产生大量数据(如故障发生时的快速录波数据),由于传输带宽有限,如果这些数据不加处理就直接进行传输,有可能因为瞬间数据传输量过大而导致网络瘫痪。采用消息队列机制,数据管理程序可以根据带宽的情况,控制每次数据传输量,未被传输的数据被暂存在消息队列中,在带宽空闲时再传输。这样的处理方式,当数据以井喷的方式产生时,仍然可以确保数据能够稳定、完整地进行传输。

图1 基于消息队列的数据接入技术

4 数据存储策略

在大数据背景下,设备状态监测数据的存储策略不仅要能让数据完整地“存起来”,更要能让数据“用起来,用得好”。在数据存储技术如此发达的今天,将数据完整保存起来已经不是难事,但是“存起来”不等于能“用起来,用得好”。大量存储下来的数据不能用,或者不好用,这些数据就是毫无价值的垃圾数据,反而会成为生产管理工作的负担。因此,数据存储策略的制定,既要确保数据能够全面、完整地保存,同时也要考虑各种应用对数据的需求,能对数据访问做出快速的反应。

传统的状态监测系统通常采用企业级关系数据库来存储数据,数据存储量小,存储间隔长(通常是分钟级以上),一般只存储重要的特征数据,且经过一段时间后,历史数据通常会被丢弃。这种存储方式会造成大量的信息遗漏,不能实现设备全生命周期的分析及评价。因此,需要根据状态监测数据的特点,结合各种数据库的优缺点,以及当前方兴未艾的大数据技术,构建一套更为合适的数据存储体系。

4.1 各种数据库优缺点分析

(1)关系型数据库:关系型数据库通过构建关系模型来组织并存储数据,由二维表格及其相互关系组成,主要用于存储稳定、永久的数据。关系型数据库构建了数据(测点)之间的关系,数据存取的同时也存取了它们之间的关系,便于人们理解和应用;同时,关系数据库提供了标准的SQL查询,便于对数据进行访问。其缺点是在海量存储的情况下,数据存取速度慢。另外,关系数据库单个数据表的存储维度有限,不适用于有大量测点的应用场景。

(2)实时数据库:实时数据库是采用实时数据模型建立起来的数据库,用于处理不断更新、快速变化的数据,主要应用于工业监控领域,如电力、石化、钢铁等工业领域的监控。实时数据库的优点是存取快速,每秒的存取速度可达100万个数据点;同时,实时数据库具有在线压缩机制,能够将数据进行压缩存储,最大限度降低磁盘占用空间;此外,实时数据库是高维数据库,可以支持10万个以上测点的存储。这些优点,使得实时数据库非常适用来存储设备状态监测数据。但是实时数据库采用的是“<时间+数值>”的列存储机制,无法存储横向测点之间的逻辑关系,因此无法像关系数据库那样通过逻辑关系来对数据进行条件查询。这个缺点极大地限制了实时数据库的应用。

(3)内存数据库:内存数据库利用内存的读写速度比磁盘快的特点,将数据放在内存中直接进行操作。内存数据库可模仿关系数据库建立表结构和索引,以便对数据进行管理。相比从磁盘上访问,内存数据库能够极大地提高数据的存取速度。但是由于内存空间有限,内存数据库的数据存储量受到限制;另外,在机器关机后,内存中的数据将不复存在。内存数据库的特点,使得其适用于对数据进行缓存,用于实时显示、快速计算、预警报警等低延时的应用场景。

(4)文档数据库:文档数据库以文档作为处理信息的基本单位,一个文档相当于关系数据库中的一条记录。文档数据库适用于存储半结构化数据和非结构化数据,如报告、图像、音频、视频等。

4.2 状态监测大数据存储策略

在大数据背景下,使用单一数据库来对设备状态监测数据进行管理及存储很难取得理想效果。单一数据库,比如关系数据库或实时数据库,均可满足将数据“存起来”这个要求,但是要满足各种应用场景,对各个应用软件的数据需求做出快速反应,实现“用得好”这个目标却并非易事。为此,可以联合多种数据库,构建数据库群来存储数据,互相取长补短,实现状态监测数据既“存起来”,又“用得好”这两个目标。

如图2所示,在多种数据库联合存储的方案中,系统根据数据特征、作用以及各种应用的数据需求,对数据进行分类存储。实时数据库用于存储状态监测历史数据,充分发挥实时数据库存储速度快、高效压缩的优势,将全部数据(包括特征数据和原始数据)进行存储,保证数据存储的完整性;关系数据库用于存储分析统计结果、评价及诊断结论等,能够在保存数据的同时保存它们之间的逻辑关系,便于后续的查询及应用;内存数据库用于缓存一定时间的数据,把部分常用的数据载入内存库中,可以充分发挥内存数据库存取快速的特点,为应用提供快速的数据访问功能;文件数据库则专门用于存储报表、图片、视频、音频等半结构化和非结构数据。

5 数据预处理技术

水电设备状态监测数据量巨大,但价值密度低,如何将有价值的信息从数据的汪洋大海中挖掘出来是一个难题。一个普遍的认识误区是:当把全部的数据都存储起来后,便可以实现任何想要功能。但是,如果数据没有经过处理就进行存储,或者存储后没有再进行加工,直接对巨量数据进行查询和检索,系统的反应会极其缓慢,再好的应用架构设计也不能解决这个问题。因此,采用合适的计算框架,对状态监测大数据进行预处理,提取有价值的信息,将大数据由“大”变“小”,是状态监测数据“用得好”的关键所在。

图2 数据存储策略

状态监测大数据的预处理可以从以下3个方面进行(图 3):

图3 数据预处理架构

(1)流式计算:利用分布式流式计算框架(如Storm等),对状态监测系统传送过来的实时数据进行处理、计算,得出计算结果。流式计算要求事先设计好数据的处理流程节点,当有新数据产生时按照既定流程对数据进行处理。流式计算适用于对当前数据进行简单运算和分析,如阈值报警判断,实时状态评估、模式识别等。

(2)内存计算:利用分布式内存计算框架(如Spark等),对数据进行处理、计算,得出结果。由于是基于内存进行计算,数据及中间结果都放在内存中,减少了磁盘的I/O操作,因此,内存计算比起基于磁盘的计算具有明显的速度优势。内存计算适用于需要快速计算和复杂迭代的应用场景(如神经网络运算)等。在运算前,需要将计算用到的历史数据从实时数据库中载入,再在内存中进行运算。平时也可将部分常用的数据存储到内存中,以提高系统的反应速度。

(3)磁盘计算:磁盘计算的数据及其中间结果均存入磁盘(如Map/Reduce等),由于是基于磁盘I/O操作的运算,其运算效率较低。硬盘计算适用于数据量大,运算时间较长,对运算效率要求不高的应用场景。

状态监测系统需要综合运用流式计算、内存计算及硬盘计算等多种手段对数据进行预处理,从大数据中提取出有价值的信息,才能对各种数据需求做出快速反应,达到最佳效果。此外,由于计算结果数据量通常较小,适合于存储到关系数据库中,便于检索及查询。

6 基于Hadoop的状态监测大数据处理框架

6.1 Hadoop的优点

Hadoop是一个由Apache基金会所开发的分布式系统基础架构,是当前比较成熟大数据处理技术,已经在医疗、金融、消费等领域得到广泛应用。它实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS被设计用来部署在低廉的硬件上,并提供高吞吐量数据访问,适合那些有着超大数据集的应用场景。用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储。Hadoop架构的优点包括:

(1)高可靠性:Hadoop按位存储和处理数据,且采用冗余副本策略,可存储数据的多个副本,在部分节点故障的情况下能保持数据的完整性。

(2)高扩展性:Hadoop在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。

(3)高效性:Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。

(4)高容错性:Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。

鉴于Hadoop的特点及其优势,它非常适合于用来作为状态监测大数据处理的基础架构。

6.2 Hadoop子项目

Hadoop框架最核心的设计包括HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。其子项目包括:

(1)HDFS:分布式文件管理系统,是 Hadoop的核心子项目,它可以将数据存储到多个节点上,同时存储数据的多个副本,具有高容错、高可靠性、高可扩展性、高吞吐率等特征。

(2)MapReduce:分布式数据处理模型,用于大规模数据集(大于1 TB)的多节点并行运算。

(3)Hbase:分布式数据库,可以对数据进行分布式管理及存储,具有存取快速、高可靠性、高扩展性等特点。

(4)Hive:基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。

图4 Hadoop子项目

6.3 基于Hadoop的状态监测大数据处理架构

本文以Hadoop作为基本架构,融合流式处理、内存计算、多数据库联合存储等技术,设计一套适合状态监测大数据处理的技术方案,如图5所示。

图5 基于Hadoop的大数据处理架构

方案以分布式文件系统HDFS作为数据存储的基础,利用其分布式存储、读取快速、可扩展性好、高度可靠的优点,为数据存储提供基础服务。报表、声音、图像等半结构化数据、非结构化数据直接存储在HDFS中。在HDFS的基础上,部署HBase数据库,存储设备状态数据,包括全部特征数据和原始数据等。HBase是一种分布式,面向列、可伸缩的数据库,可为数据的存储提供快速存取服务。通过构建“<时间,数值>”的存储模式,实现类似于实时数据库的功能,但比实时数据库具有更好的可扩展性和更高的可靠性。方案部署分布式内存数据库(Redis)和内存计算框架(Spark),从HBase中读取数据,加载进内存中,利用Spark进行分布式计算,对数据进行预处理,为高级应用提供有价值的数据。方案部署关系数据(Orcale)来存储流式处理及内存计算结果,便于应用程序的查询和访问。

方案设置数据服务层为应用程序提供数据服务,实现应用层和数据存储层的分离,高级应用无需关心数据存储的细节,有利于提高应用的独立性和可扩展性。

6.4 基于Hadoop的状态监大测数据处理架构的优点

(1)高吞吐量:系统采用分布式消息队列、分布式流式计算以及分布式存储(HDFS、HBase)等技术,多节点并行对数据进行处理,使得系统具有极高的吞吐量,能够满足状态监测大数据实时、并发的处理要求。

(2)高可靠性:系统采用消息队列机制,实现前端数据接入及后端数据处理的分离;设置数据服务层,实现应用和数据存储的分离。这些措施解除了各个模块之间的耦合,有利于提高系统的可靠性。此外,Hadoop采用冗余副本策略,可以存储数据的多个副本,在某些节点出现故障的情况下仍然能够保证数据的完整性,保证系统的正常运行,具有极高的可靠性。

(3)高效性:系统联合多节点并行对数据进行处理,并采用了内存计算技术,极大地提高了数据处理速度。

(4)高扩展性:Hadoop可以根据需要扩展其计算和存储节点,且扩展不影响之前的数据存储,具有很好的可扩展性。

7 结语

水电设备状态监测系统测点众多,数据产生频率高,数据量巨大,给数据的处理、存储、分析带来了挑战。本文对状态监测系统数据特点进行了分析,对数据接入、存储及预处理技术进行了研究,提出了一套基于Hadoop的水电设备状态监测大数据的处理方案。方案综合利用消息队列、流式计算、内存计算技术对数据进行处理,并根据数据特点以及各种数据库的优缺点,综合运行实时数据库、关系数据库、文件数据库对数据进行管理、存储,最终通过数据服务层对外提供数据服务,实现水电设备状态监测大数据“存起来”、“用得好”的目标。

猜你喜欢

关系数据库监测数据数据处理
关系数据库在高炉数据采集系统中的应用
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
基于低频功率数据处理的负荷分解方法
ILWT-EEMD数据处理的ELM滚动轴承故障诊断
关系数据库技术在计算机网络设计中的应用
GSM-R接口监测数据精确地理化方法及应用
探讨关系数据库设计中范式理论的教学方法
环评中引用大气现状监测数据的研究
基于希尔伯特- 黄变换的去噪法在外测数据处理中的应用
GPS异常监测数据的关联负选择分步识别算法