曹敏,尹福榮,張玉龍
(1.云南電網有限責任公司電力科學研究院,昆明 650217;2.昆明能訊科技有限責任公司,昆明 650051)
當前我國電力工業體制正面臨著重大的改革,建立發電側電力市場的工作正在向縱深推進。電力企業作為“電力”這種特殊商品的提供者,要實現自身的經濟效益必須要保證電力企業的安全、可靠和穩定運行,而實現這一目標,電力系統的實時數據則是生產管理者最關心的對象[1]。
電力實時數據包含了豐富的電力系統運行狀況信息,它不僅能夠反應系統當前的生產狀況和設備運行狀況,而且通過對生產實時數據的分析處理,可以預知事故的發生和設備的健康狀態,為設備的預測性維修和管理決策提供依據,從而達到提高設備可靠性,減少維修總費用,降低電力企業運營成本,提高經濟效益的目的[2]。
本文在分析了電力系統中實時數據的重要性和對比分析當前主流的內存數據庫引擎的基礎上,選取符合電力系統實時數據需求的最優內存數據庫技術,對實時數據服務平臺架構、實時數據的接收/處理方式、數據存儲/檢索方式、數據訂閱/查詢方式和不同實時數據的接入方式進行研究,得出一個可行的易于構建實施的面向上層應用系統的實時數據服務平臺設計方案,充分實現實時數據集成、數據資源共享和決策輔助支撐。
電力系統的實時數據是指能反映電力系統實時運行狀態的數據,通過對這些數據的監測和分析能夠了解設備的性能、運行狀況和健康狀況,從而保證整個電力系統的正常穩定運行。
實時數據包含了豐富的電力系統運行狀況信息,它不僅僅能夠反應系統當前的狀況和設備運行狀況,而且通過對實時數據的記錄可以得到反映系統和設備的歷史狀況的歷史數據,通過對歷史同期數據的分析比較可以預知事故的發生和設備的狀況,而日常監測數據可為輔助決策提供必要的參考依據。
因此,構建一個實時數據服務平臺,將電力系統的實時數據進行統一歸集,對實時數據進行監測和分析,能隨時掌握電力系統的運行狀況,將問題的事后解決變為事先預防,為實現狀態檢修和預防性維護提供基礎,以提高電力系統運行的安全性、可靠性和穩定性,保證電力企業的經濟效益。
在數據庫技術中,目前主要有兩種方法來使用大量的內存。一種是在傳統的數據庫中,增大緩沖池,也就是常說的共享內存技術,另一種就是內存數據庫技術。
但是共享內存技術的實時系統由于優化的目標仍然集中在最小化磁盤訪問上,很難滿足完整的數據庫管理的要求。
而內存數據庫技術從根本上拋棄了磁盤數據管理的許多傳統方式,在數據處理速度一般比傳統數據庫的數據處理速度快10 倍以上,理想情況甚至可以達到1 000 倍[3-5]。
現有內存數據庫包括SQLite、Altibase、Berkeley DB、Oracle TimesTen、eXtremeDB、H2 Database,但是從軟件的設計成本考慮,Altibase、Oracle TimesTen、eXtremeDB 需要商業授權。通過排除需商業授權的數據庫產品,還可用SQLite、Berkeley DB、H2。因此選擇這三種內存數據庫進行測試比較,測試結果如表1 所示。

表1 Berkeley DB、SQLite、H2測試對比表
由上面測試結果可以看出Berkeley DB 的性能要高于其他兩個,且支持原生API 方式訪問、存儲格式為key-value 形式完全符合電力實時數據集成需求。
Berkeley DB 由四個主要的子系統構成,包括數據存取子系統、內存池管理子系統、事務子系統及鎖子系統。其中數據存取子系統作為Berkeley DB 數據庫進程包內部的核心組件,而其他子系統都存在于Berkeley DB 數據庫進程包的外部。
2.2.1 數據存取子系統
數據存取(Access Methods)子系統為創建和訪問數據庫文件提供了多種支持,應用程序可以從中選擇最適合的文件組織結構。
2.2.2 內存池管理子系統
內存池(Memory pool)子系統對Berkeley DB所使用的共享緩沖區進行有效的管理,負責將修改后的頁寫回文件和為新調入的頁分配內存空間。
2.2.3 事務子系統
事務(Transaction)子系統為Berkeley DB 提供事務管理功能。它允許把一組對數據庫的修改看作一個原子單位,這組操作要么全做,要么全不做。事務子系統適用于需要事務保證數據的修改的應用。
2.2.4 鎖子系統
鎖(Locking)子系統為Berkeley DB 提供鎖機制,為系統提供多用戶讀取和單用戶修改同一對象的共享控制。該子系統也可被應用程序單獨采用。鎖子系統適用于一個靈活的、快速的、可設置的鎖管理器。
在以上對Berkeley DB 技術分析的基礎上,進一步研究實時數據服務平臺架構、實時數據的接收/處理方式、數據存儲/檢索方式、數據訂閱/查詢方式和不同實時數據的接入方式,形成基于Berkeley DB 的實時數據服務平臺的整體設計方案。
整個平臺的設計由三大部分構成:實時數據接收/處理、實時數據存儲/檢索和實時數據訂閱/查詢,為了保證實時數據集成的實時性、處理數據的高效性,設計結構如圖1 所示:

圖1 平臺總體結構圖
3.1.1 數據接收/處理
數據接收/處理是實時數據集成數據來源的唯一途徑,只有對其接收數據及分析數據的能力做到快捷、高效,才能保證整個實時數據集成的實時性,對此設計了圖2 所示的結構圖:

圖2 數據接收/處理結構圖
其中每次tcp 連接請求都會通過接收服務來進行處理及驗證,若該tcp 連接請求為合法的連接請求,會話管理機制就為其創建一個會話狀態,該會話狀態只負責接收對應的一個tcp 連接,為了保證數據快捷、高效的進行處理讓每一個會話狀態都處于一個獨立的線程中。基于此種設計,每一種實時信號量只可能來自同一個地方,而不可能來自不同的地方,這就使得每一個tcp 連接傳輸的數據都不同于其他連接的數據,可以不用考慮其他數據而直接通過獨立的線程來進行處理,保證對數據進行高效的處理。
3.1.2 數據存儲/檢索
數據的存儲/檢索是連接數據接收/處理和數據訂閱/查詢的中間橋梁,該模塊的性能也是影響實時數據實時性的一個重要因數,為了保障數據的實時性,本模塊使用Berkeley DB 作為實時數據引擎,采用將實時數據存儲于內存中的策略,只有在需要的時候才同步到硬盤上,這樣既保證了實時數據的存儲更新效率,也提高了數據查詢效率。為此,從電力系統需求出發,設計了如下的數據存儲/檢索機制來提高存儲/檢索效率:存儲/檢索模塊根據配置文件中定義的節點和信號類型,為其創建獨立的內存數據庫來進行管理各個節點和信號類型的實時數據,使得每一種信號類型的實時數據都獨立于其他,可以最大限度的避免Berkeley DB 實時數據引擎并發操作時引起的異常導致整個庫鎖死,充分利用多庫聯合操作技巧盡量減少Berkeley DB 實時數據引擎使用鎖子系統時所占用的時間。

圖3 數據存儲/檢索機制圖
設計采用的客戶機檢索實時數據模式如下圖所示:

圖4 客戶機檢索數據方式圖
實時數據平臺采取預先加載客戶自定義數據點配置庫的形式,客戶機需要檢索的數據點號事先由客戶機自定義編輯成數據點配置庫,然后在請求數據前將該數據點配置庫提交給實時數據平臺(實時數據平臺將其存放于內存中),以后客戶機每次請求數據都只需發送相應編號命令即可檢索到相應數據,這樣使得實時數據平臺檢索數據更加高效,同時也降低了網絡傳輸的帶寬。
3.1.3 數據訂閱/查詢
數據訂閱/查詢模塊為最終的終端客戶提供實時數據查詢及訂閱,該模塊同樣采用tcp 通訊,通訊設計沿用數據接收模塊的設計,但該模塊涉及到可自定義的用戶查詢配置,客戶可自定義訂閱的數據類型,該模塊結構見圖5:

圖5 數據訂閱/查詢結構圖
在圖5 中,數據查詢依賴于用戶提供的自定義查詢配置文件,用戶可以將要查詢的各種信號key放在一起,提供一個唯一的查詢編號,查詢時只需要提供唯一的查詢編號即可完成所需實時數據的查詢;數據訂閱是類似網站rss 訂閱的一種機制,但也有所不同,該訂閱方式為用戶可以訂閱需要關注的信號,只要訂閱關注信號后,一旦數據接收模塊接收到信號數據,主動把信號數據拷貝給訂閱管理器后,訂閱管理器就會主動將用戶所關注的實時信號回發給訂閱過該信號的所有客戶,即完成實時信號數據的訂閱(推送)[6-7]。
實時數據服務平臺與各系統之間的實時數據傳輸流程是通信標準的重要部分。實時通信基于面向連接的TCP 通信協議,使用C/S 模式建立實時數據管道及管理管道,下圖簡要說明了實時通信的建立過程。系統啟動或重建通信時,實時通信管道未建立,服務平臺與各系統的通信過程分解為若干子通信流程[8-9]。

圖6 實時通信建立過程圖
在上述實時通信的基礎上,實時數據服務平臺統一集成接入各個變電站實時數據,整個變電站實時數據通過特定數據傳輸協議統一到實時數據服務平臺,再由實時數據服務平臺對各個變電站實時數據進行統一管理及提供數據查詢接口給其他應用系統。

圖7 數據接入示意圖
本文通過對實時數據服務平臺架構、實時數據的接收/處理方式、數據存儲/檢索方式、數據訂閱/查詢方式和不同實時數據的接入方式的研究,得出一個可行的易于構建實施的面向上層應用系統的實時數據服務平臺設計方案,為今后的實時數據平臺的研究與應用提供重要的參考。
[1]周蓉.電力系統實時數據管理系統的研究與開發[D].華北電力大學(北京),2003.
[2]張嶄.基于組態軟件的電力系統實時數據庫設計與實現[D].中國科學院大學 (工程管理與信息技術學院),2014.
[3]武君勝,吳德州.面向電力系統的分布式實時數據庫關鍵技術及應用[J].中國科技論文,2008,3 (2):102-107.
[4]劉吉臻,房方,牛玉廣.電力企業中的實時數據庫技術[J].中國電力,2004,37 (2):73-78.
[5]周怡,王堅敏,羅斐,等.PI 實時數據庫在供電企業中的應用架構[J].浙江電力,2005,24 (1):40-43.
[6]李倩.基于RSS 的信息推送系統與訂閱系統的研究與實現[D].北京交通大學,2012.
[7]于魁飛.基于RSS 的信息發布與訂閱技術研究[D].北京郵電大學,2007.
[8]辛耀中.電力系統數據通信協議體系[J].電力系統自動化,1999,(1):40-44.
[9]溫佶強,杜浩良,吳新華,等.廠站數據接入PI 系統模式研究[J].電力系統保護與控制,2007,35 (15):35-38.