福建工程學院軟件學院 楊真華
?
基于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.