福建工程学院软件学院 杨真华
基于Tokyo Tyrant的智能电网数据处理与应用研究
福建工程学院软件学院 杨真华
该文着重研究智能电网电力用户用电数据采集处理领域中性能大幅提高的问题,主要利用Java技术和数据库技术研究电力用户用电数据智能控制采集系统,采用基于DBM和Tokyo Tyrant技术构建高并发的分布式持久存储系统,实现对海量电力用户用电数据的高效处理,进而实现整个电力系统的优化运行与管理,实现智能电网的初步发展目标。
智能电网 数据采集 数据处理 Tokyo Tyrant
新一代智能电网的建设和改造虽然已经开展了一段时间,但电网智能化的发展还是相对落后的,海量用电数据采集处理很大程度上制约了电力系统信息化和智能化的发展。因此,海量数据的采集处理技术在智能电网方面的研究意义重大。
本文主要介绍智能电网用电信息采集系统的数据处理子系统应用的相关理论与关键技术,如SOA框架、J2EE开发平台、Tokyo Tyrant数据库高速缓存技术等;然后提出了智能电网数据处理子系统的整体设计方案;利用成熟的软件开发技术,进行智能电网数据处理子系统的初步开发。
为了构建高可用性、安全性、可靠性、可伸缩性和扩展性的用电信息采集系统,系统采用J2EE企业平台架构搭建,采用多层的分布式应用模型及灵活的事务控制,使系统具有更好的移植性,以适应用电信息采集系统应用环境复杂、业务规则多变、信息发布的需要,以及系统将来的扩展的需要;采用基于Tokyo Trant缓存结构的数据库设计,实现对Oracle数据库表的海量数据的高速写入、读取、查询与分析,进而优化智能电网电力数据采集系统的运行与管理。
面向服务的体系结构是一个组件模型,它将应用程序的不同功能单元通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言[1]。
J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值[2]。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,同时还提供了对 EJB、Java Servlets API、JSP以及XML技术的全面支持[3]。
缓存主要用来解决IO速度不同的接口间数据传输瓶颈的问题。将经常读取的数据存储在缓存系统中,由于其存储于服务器的内存中,读取速度会十分快,同时也减轻了数据库的访问压力。
1.2.1 DBM
DBM即动态缓冲管理,在库存管理中又叫动态缓冲库存管理[4]。DBM数据库是一种具有动态缓存管理特征的数据,它能把数据缓存在内存中实现高速访问。尤其在配送系统和补给系统变动频繁的情况之下,它在对大数据量的数据访问方面有着非常不错的表现。
1.2.2Tokyo Tyrant缓存
天空变得更亮了,白色云朵多了起来,一大团一大团地簇拥在一起。雪白的云团上有许多黑洞似的暗斑,远远望去,像极了一个个不规则的蜂巢。
Tokyo Cabinet 是一款DBM数据库,该数据库读写非常快。写入100万数据只需要0.4秒,读取100万数据只需要0.33秒。Tokyo Tyrant 提供dbm数据库Tokyo Cabinet的网络接口。它使用简单的基于TCP/IP的简单二进制协议进行通信,实现了跨平台、跨语言使用Tokyo Tyrant。采用热备份,更新日志记录,复制来实现高可用性和高可靠性[5]。
1.2.3 Oracle数据库
Oracle数据库是一种大型数据库系统,能够处理大批量的数据,Oracle数据库管理系统是一个以关系型和面向对象为中心管理数据的数据库管理软件系统,因其在数据安全性与数据完整性控制方面的优越性能,以及跨操作系统、跨硬件平台的数据互操作能力[6],在管理信息系统、企业数据处理、因特网及电子商务等领域有着非常广泛的应用。
对本系统的架构设计主要从物理架构、数据架构和软件技术架构实现等方面展开讨论分析。
智能电网用电数据采集系统主要包括基本应用、高级应用、运行管理、统计查询、系统管理,为营销业务应用中的其他业务提供用电信息数据源和用电控制手段。同时还可以提供营销业务应用之外的综合应用分析功能,如配电业务管理、电量统计、决策分析、增值服务等功能,并为其他专业系统提供基础数据和决策支持。
该系统数据架构的规划能满足海量用电信息的实时数据存储,为了保障日常业务系统的运行效率,通过数据复制技术建立统计分析数据库,在该库上进行统计查询和历史信息处理业务,不影响业务数据库的处理性能。可以在分析历史库上通过ETL方式将数据发布到数据中心,营销业务应用系统从数据中心获取采集数据,实现对数据仓库的数据支持。
2.3.1表现层。提供统一的业务应用操作界面和信息展示窗口,是系统直接面向操作用户的部分。
2.3.2业务层。实现具体业务逻辑,是系统主站的核心层,根据系统的应用特点,业务层可分为采集子层、业务子层、对外接口等。
2.3.3服务层。提供全局通用的业务服务、安全服务等组件服务支持,并实现本系统专用的业务逻辑服务,为业务层提供通用的技术支撑。
2.3.4数据层。实现海量信息的存储、访问、整理,为系统提供数据的管理支持。数据层通过大型关系型数据库实现。
作为本系统的一个核心处理子系统——数据处理,下面对该子系统的实现进行阐述。通过对传统的用电数据采集方式和智能电网用电数据智能采集处理的实现方式进行分析说明。对于早期的数据处理方法,采集主站首先下发数据到各个采集终端,然后由各采集终端把数据上报到前置机,再由前置机直接把数据提交给Oracle数据库表,这种对数据的操作方式的不足就是给库表增加了很大的负担,影响了数据库的性能;而新的电力采集系统作了改进,在前置机和Oracle数据库表之前加入了TT缓存服务器,TT技术是采用Key/ Value结构实现,Key值唯一,根据Key值建立索引,能够实时快速地写入到Oracle数据库表。采用此技术后,大大减轻了库表的压力,提高了数据库的执行性能,也使得整个电力系统的运行效率大大提高,优化了系统的管理。在模拟测试过程中,采集主站下发的数据源采用模拟终端的方式进行,采集前置机也是使用模拟方式实现,而对于TT缓存数据库服务器和Oracle数据库服务器,则用2台PC机模拟,通过增加模拟终端提高压力的压力测试法来获取一些测试值(比如随着终端数量的大幅递增,观察对比服务器的响应时间、CPU曲线、内存曲线等的变化),进而分析出服务器的最优负荷,从而验证采用新技术后系统的性能明显提高的事实。
本文提出了基于DBM和Tokyo Tyrant技术的智能电网用电数据采集系统的设计方案,描述该系统实现使用的关键技术和系统架构设计,讨论了系统中关键的功能模块之一即海量数据查询处理的方式,进行了相应的代码设计;通过在传统的数据采集处理过程中引入TT技术,极大地提高了大型数据库的读写速度,减轻了Oracle数据库表的压力,提高了数据库的性能,优化了整个系统的运行与管理。
[1] http://baike.baidu.com/view/21305.htm360seURL/Shell/Open/Command
[2] Sun Microsystems.Java 2 Platform,Enterprise Edition(JWEE) Specification v1.4 [EB/OL].2003
[3] [美]Jim Keogh.J2EE参考大全[M].北京: 电子工业出版社,2003.
[4] http://baike.baidu.com/view/413258.htm#sub413258
[5] http://baike.baidu.com/view/3548503.htm#sub3548503
[6] 姚世军.Oracle9i数据库原理与应用教程[M].北京: 国防工业出版社,2004.
[7] Richard J.Niemiec.Oracle Database 10g Performance Tuning Tips & Techniques. 北京: 清华大学出版社, 2009.
[8] 余贻鑫,栾文鹏.智能电网[J].电网与清洁能源, 2009,25(1):1-5.