基于大数据技术的量测数据处理系统设计

2016-12-10 01:16谢玉波
无线互联科技 2016年21期
关键词:测数据批量数据量

犹 锋,曹 健,谢玉波

(国网电力科学研究院 江苏瑞中数据股份有限公司,江苏 南京 210000)

基于大数据技术的量测数据处理系统设计

犹 锋,曹 健,谢玉波

(国网电力科学研究院 江苏瑞中数据股份有限公司,江苏 南京 210000)

针对传统关系型数据库用于电力信息系统量测数据处理效率低的问题,文章设计并实现了基于大数据技术的量测数据处理系统。基于分布式消息队列技术,该系统实现了大规模量测数据的缓冲接入;基于流计算技术,提高了量测数据在入库前的实时处理效率;设计了量测数据列式存储模型,实现了大规模量测数据的高效存取。

量测数据;大数据技术;列式存储模型

随着智能电网信息化不断发展,调度自动化和采集监测类系统积累了海量的电网量测数据[1],量测数据作为电网领域四大数据类型之一,是设备状态监测、辅助决策分析、大数据挖掘的重要基础,目前其采用传统关系型数据库进行存储。随着大数据技术的不断成熟,先进的存储与计算架构与传统架构在性能和扩展性上不断拉开差距,采用传统架构的关系型数据库逐渐暴露出技术不足与局限性,不能够很好地支撑大数据环境下对量测数据的高效计算与深度挖掘。

本文提出一种基于大数据技术的量测数据处理系统设计,解决海量量测数据的数据接入、存储、访问难的问题。

1 电网量测数据特点分析

电网量测数据是一种具有明显时序性的半结构化数据,可描述为三元组<DeviceID, TimeStamp, Value>,其中DeviceID,TimeStamp,Value分别表示设备ID、时间戳、值,主要由电力设备或仪表产生,随着时间的推移,设备或仪表周期性输出量测数据,由采集系统收集并上传到数据库中。量测数据采集周期较为密集,由于量测点众多,一般单个省电力公司每年产生量测数据量在10 TB以上,由于数据量巨大所以对数据处理系统性能要求非常高,主要体现在对海量数据的接入、存储与查询3方面。

电网业务模型具有明显的层次结构如图1所示,基于电网模型的量测数据业务应用以批量和断面两种访问方式为主,批量查询即查询某个设备在一段时间内产生的数据值,断面查询即查询某个时间点某个范围内所有设备产生的数据值。其中非周期性量测数据以批量查询为主,固定周期量测数据以断面查询为主。考虑到目前量测数据中固定周期数据(例如低电压开关、低电压线路、用户表计的采集数据)占绝大多数,因而在存储模型设计时应充分满足固定周期数据断面查询需求,兼顾批量查询需求。

图1 电网模型示意图

2 系统设计

2.1 系统总体架构

本系统主要由数据接入、实时处理、数据存储、数据访问接口4大功能模块组成,采用大数据技术中对应的开源组件集成实现。其中数据接入由分布式消息队列Kafka组件实现;实时处理由分布式并行流计算框架Storm组件实现;数据存储由分布式列式存储Hbase和缓存数据库Redis以及关系型数据库MYSQL实现;数据访问由结合量测数据特点的统一访问接口UAPI组件实现,整体架构如图2所示。

系统运行时,数据源系统通过适配器接口将数据传输到Kafka消息队列中,适配器在此过程中对通信协议进行转换以及对原始数据进行规整;Kafka具有缓冲作用,对数据进行高速缓冲,防止数据波峰冲垮后续组件,并将数据按照规则存储于相应的队列中,Storm从Kafka中按照队列进行数据订阅,并将不同队列的数据应用于预设的计算程序中进行处理,计算处理后的数据按照业务需求存储于Hbase和Redis中,如果只产生统计性结果则存储于MYSQL中。业务应用通过统一访问接口UAPI访问处理后的数据,进行展示或应用,UAPI屏蔽了底层的存储模型以及不同存储方式间的调度复杂性,对上层应用起到透明访问作用。

图2 系统总体架构图

2.2 数据接入

由于生产系统众多,数据接口实现方式千差万别,量测数据接入系统前需要定制适配器与数据源系统对接,一是用于协议转换,二是用于对生数据进行初步加工,使其格式统一。适配器一端连接数据源系统,一段连接量测数据处理系统的Kafka组件,根据接入数据类型的不同在Kafka上配置不同的消息队列,一个数据源系统接入的量测数据类型可能有多种,即一个数据源系统可能对应Kafka中的多个队列。由于Kafka是分布式消息队列,具有异步通信特点,其吞吐量非常大,可以同时接入多套数据源系统,并且能够对峰值巨大的数据起到缓冲作用,避免对整个系统构成冲击。

2.3 实时计算

在量测数据入库前,采用Storm组件对数据流进行流计算。由于Kafka中不同消息队列对应不同的量测数据类型,处理方式千差万别,所以需要根据业务需求开发相应的Storm处理逻辑。Strom作为一个分布式实时计算系统[2],提供了很好的并行流计算框架,可以对数据进行分布式加工处理,支持大规模数据的实时计算。

此过程主要完成两类工作,一是对进入系统的数据进行深度加工,例如数据补全、数据质量检查等,加工后的数据一般存储于Hbase和Redis中;二是对流过的数据进行统计分析,一般分析后的数据作废,只保留分析结果存储于MYSQL中。对于第一种情况,其中的Redis主要用于热数据缓存,因为第一种情况一般是对量测数据的入库处理,入库后的数据需要被频繁访问,而越新的数据访问热度往往越高。为了提高热数据的访问效率,数据存储到Hbase时同时存储一份到Redis,Redis作为内存数据库具有更高的访问效率。需要说明的是Redis只保存最近一段时间的数据,数据超过一定时间将被定期清除。

2.4 存储模型

数据的存储方式至关重要,对数据的存储、修改、查询等操作的效率有着直接的影响。总体而言,数据的存储方式可以被分为两种:随机存储方式和固定存储方式。这两种方法各有利弊,如何选择取决于实际的具体需求。在大数据的情况下,数据量非常庞大,多达数TB乃至数PB,读取数据时需要在磁盘或内存里四处查找,这样不仅增加了数据读取代价,而且也加重了系统负担。

如果能够把经常需要读取的数据集中存储在一起(物理上放在位置比较靠近的地方),这样,磁盘在实际存取时就能通过少量的IO次数把数据读取出来,即将随机IO转化为顺序IO,此时则不论处理范围有多大,均能够获得非常好的读取效率。改进数据存储策略已经成为提升大数据系统数据处理性能的热点研究方向[3],本文着重讨论海量量测数据在Hbase列式存储中的存储模型,在深入研究Hbase存储机制(此为公开信息,本文不作详细讲解)的前提下,针对量测数据应用时的断面访问和批量访问特点设计了高效的存储模型,如图3所示。

(1)表名规则:数据按月分表,每月一张表。表名规则为“2位省码_3位业务类型码_6位年月”,如:LN_101_201608表示辽宁用采系统2016年8月份的数据。

(2)分区规则:每一张HBase表内分多个Region,Region的数量根据机器数量和现场的单表数据量共同决定,由工程施工时设定,设置的原则是尽量使Region数量为机器数量的整数倍,单Region所管理的数据量在2GB-4GB。

(3)行键规则:系统设计为行键规则可配置,将电网模型的相关层次信息预处理到数据的RowKey中去,配合时间等固定属性形成灵活可配的复合行键,如通过城区、变电站、时间、类型组合形成Rowkey,形如“城区变电站0525123035类型”。通过对行键的设计使得同一变电站下的所有数据处于一行记录,根据测试分析可知,每行包含的数量为10~20万性能最优。

图3 量测数据在Hbase中的存储模型

(4)列名规则:列名为每一个数据采集设备的唯一ID。

通过以上设计,某一时刻同一变电站覆盖的所有设备数据逻辑上将在同一行上,并且物理上存储在磁盘同一位置。由于Hbase天生擅长列式存储,大规模的列不会对访问性能造成影响,并且行存储上是稀疏的,同一行上没有值的单元不会占用存储空间。通过这样的设计,当发生断面查询时,将能够很快查出某时刻指定变电站覆盖区域的所有设备断面示值。在批量场景下,本设计对表进行了按时间分表分区,数据散落在多台服务器上,当发生批量查询时多台机器并行处理,查询效率较高。理论与测试证明,以上量测数据存储模型设计能够很好地满足在大规模数据量情况下批量查询与断面查询的高效需求。

2.5 数据访问

本系统根据数据的时效性特点将数据存储在Redis缓存和Hbase列式存储中,并且对量测数据的存储模型进行了设计,如果要求上层应用直接操作多种存储容器,操作较为复杂,为了屏蔽数据访问的复杂度,本系统设计基于大数据平台原生态接口,构造统一访问接口UAPI,屏蔽底层数据的存储细节,使得业务应用根据电网模型访问数据,配套机制实现结果缓存、访问分流、高可用等功能。

3 实验验证

本文基于JAVA语言以及开源大数据产品实现了以上系统,并采用7台PC服务器组建集群对系统进行了实验验证与测试,服务器配置如表1所示。

表1 服务器配置

实验1断面访问效率测试,验证在10TB数据量的情况下,系统断面查询效率。

如图4所示,X轴为断面查询的数据量,Y轴为查询耗时。结果显示查询数据量在1~4万条时,平均每秒查询效率达2万条左右,随着查询数据量增大,断面存储优势逐步体现,查询效率不但未降低反而有升高。

图4 系统断面查询效率示意

实验2 批量访问效率测试,验证在10TB数据量的情况下,系统批量查询效率。

如图5所示,X轴为批量查询的数据量,Y轴为查询耗时。结果显示查询数据量与耗时基本成正比,平均每秒查询效率在2 100条左右,随着查询数据量增大,查询效率基本不变。

4 结语

本文针对电网量测数据特征,并结合大数据技术,设计实现了海量量测数据处理系统,解决了电网应用中由于量测数据的数据量过大,导致接入、存储、访问困难的问题。该技术普适于大数据场景下的量测数据处理。本设计未对业务模型变动导致历史数据需要重建Rowkey问题进行考虑,一旦业务模型出现变动,历史数据将无法与变动后的业务模型对应,导致部分历史数据成为死数据。

图5 批量访问效率示意

[1]姚建国,杨胜春.电网调度自动化系统发展趋势展望[J]. 电力系统自动化,2007(13):7-11.

[2]王铭坤,袁少光,朱永利,等. 基于Storm的海量数据实时聚类[J]. 计算机应用,2014(11):3078-3081.

[3]杨俊杰,廖卓凡. 大数据存储架构和算法研究综述[J]. 计算机应用,2016(9):2465-2471.

Design of metrology data processing system based on big data technology

You Feng, Cao Jian, Xie Yubo
(Jiangsu Ruizhong Data Company Limited by State Ltd of Grid Electric Power Research Institute, Nanjing 210000, China)

Aiming at the problem of traditional relational database being used for metrology data of electric power information system to process low efficiency, this paper designed and realized the metrology data processing system based on big data technology. Based on the distributed message queue technology, the buffer access of the large-scale metrology data is realized in this system. Based on the stream computing technology, the real-time processing efficiency of the metrology data is improved. The data storage model of metrology data is designed, which realizes the high efficient access of the data of large-scale metrology data.

metrology data; big data technology; column storage model

犹锋(1975— ),男,四川南充,硕士,工程师;研究方向:电力系统自动化。

猜你喜欢
测数据批量数据量
基于大数据量的初至层析成像算法优化
计算Lyapunov指数的模糊C均值聚类小数据量法
宽带信号采集与大数据量传输系统设计与研究
基于SCADA和WAMS的线路参数辨识研究
基于PMU/SCADA混合量测数据兼容性的船舶系统状态估计研究
浅议高校网银批量代发
提高变电站基础量测数据时间同步性的方法
一种新的外测数据随机误差分离方法
基于AUTOIT3和VBA的POWERPOINT操作题自动批量批改
考虑价差和再制造率的制造/再制造混合系统生产批量研究