榮雪琴,劉勇,劉昊,卜樹坡
(蘇州工業職業技術學院 電子與通信工程系,江蘇 蘇州 215104)
隨著“大物移云”,即大數據、物聯網、移動互聯網、云計算的蓬勃發展,新技術使電力系統在數據量和應用模式上發生了巨大轉變[1],傳統的電力運維系統已無法滿足信息化電力系統的需求[2],存在電網企業難以實時監控運維作業過程,無法掌握運維進度[3]、運維管理存在檢修安裝人員數量不足和檢修工程量過大的問題[4]。這些問題不僅會給安全運行帶來極大的隱患,而且會造成不良的社會和經濟影響。因此,從“大物移云”發展趨勢出發,構建新的數據密集型電力運維系統是非常必要和迫切的。
電力系統運維管理包括對電力設備軟件系統、硬件設備的運維管理,對電力設施及設備臺賬、軟硬件版本、參數/定值信息進行設置,同時包含對客戶托管設備的運行狀態監測,實現多種能源接入終端基礎信息的標準化、一體化,為系統各類應用提供統一的基礎數據[5]。
文中系統主要包括四個子系統:系統界面子系統、應用支撐平臺、數據服務子系統、平臺服務子系統,分別實現在線運行的配電設備、用戶側用電設備以及其他類型能源設施、設備運行狀態監控、維護以及檢修管理等功能。
其中,系統界面子系統包括:Web瘦客戶端、現場作業移動App客戶端、電力圖形化組態工具、WebGIS系統、一次/二次告警事件處理等。應用支撐平臺包括:設備全壽命周期狀態監測、故障診斷與處理、運維管理、檢修管理、運檢流程管理、資產管理,數據服務子系統包括:電能量數據建模、業務數據、數據預處理、數據統計、數據評估。平臺服務子系統包括:關系數據管理、Key-value數據存儲、分布式存儲管理、消息管理、分布式文件管理、集群管理、權限管理、安全管理。
系統以分布式構架設計,實時庫數據來源為配電終端數據、充電樁數據、微電網數據等高速實時數據,并以Restful API方式提供電量時序數據庫和前端Web應用服務訪問接口,后端服務器將應用數據模型和業務模型映射到數據中心,采用分布式內存存儲、計算用戶用電信息,極大提升系統的處理容量、性能及可靠性。系統架構如圖1所示。

圖1 系統架構圖Fig.1 System architecture diagram
采用Node.JS作為后端服務器開發環境,Node.JS是一個基于Chrome V8引擎的JavaScript運行平臺,文獻[6]從事件驅動,異步非阻塞I/O等方面闡述了Node.JS快速構建網絡服務及相關應用。文獻[7]提出了前后端分離開發模式,可根據前后端要求提供相應的訪問方式。文獻[8]提出了非阻塞特性及異步事件驅動模型在高并發網絡服務應用,減少了運行資源,提高系統性能。
為解決智能電網建設和生產過程中大規模時序數據的快速存儲和訪問處理難題,以分布式為主要特征的時序數據庫系統受到高度關注[9]。文獻[10]將時序數據庫與當前主流關系數據庫技術特點進行比較,總結了時序數據庫擁有超大規模數據處理能力和高比例壓縮能力的技術創新性。文獻[11]進行了加載測試、查詢測試實例驗證,證明時序數據庫在超大規模數據集、高實時性方面能夠滿足智能電網大數據應用需求。文獻[12]從構建服務器集群的角度,提出策略驅動技術實現時序數據的靈活存儲與處理,進一步驗證了時序數據庫的高效性。表1為日凍結電量表,圖2為存儲正向有功總電能的時序數據庫JSON結構體。

圖2 電量時序存儲結構體Fig.2 Power sequencing storage structure
文章設計電力運維時序數據庫著重考慮電力系統龐大的數據總量,借助時序數據庫的Key-value數據存儲模式實現電能表定時凍結、瞬時凍結、日凍結、整點凍結數據的高速存儲與查詢,方便對年度、季度、月度的電量進行分布式查詢計算。

表1 電能表凍結電量列表Tab.1 Freezing electricity consumption of electric energy meter
電力運維信息涉及電力設備的(準)實時運行信息,及其關聯設備和所處站所的當前狀況,要求數據存儲具備高吞吐量、批量更新數據及極高的內存利用率。對于Key-value模式實現電能表數據存儲,運維系統存儲結構采用日志結構存儲(Log-Structured Storage)。圖3為電力運維系統存儲結構。

圖3 系統存儲結構Fig.3 System storage structure
Node.JS建立時序數據庫服務有兩種方式,分別為Rest API和Rest client。Rest client是第三方提供的客戶端程序,具有開發快速、資源眾多等優點,缺點是擴展性不好,因此本文案采用Rest API方式建立時序數據庫服務,消息交互采用輕量級的數據交換JSON格式封裝[13-16],表2為時序數據庫增加(C)、查詢(S)、修改(U)及刪除(D)操作與Rest API動詞對照關系,Node.JS通過這種映射關系建立時序數據庫服務。

表2 CRUD操作與Rest API動詞對照表Tab.2 CRUD operation and Rest API verbs
新增業務是運維系統所有數據的來源,是系統核心功能之一,如圖4所示,當用戶發起業務請求后,先對請求進行負載均衡處理,將請求轉發至不同的服務器上進行反向代理請求頭的處理,處理完的數據會發送給Node.JS實現時序數據新增業務,然后將數據返回Web瘦客戶端。

圖4 請求業務流程Fig.4 Request-business processes
當Web瘦客戶端向后端發送增加數據業務指令后,Node.js將新增的數據存儲在電量時序存儲結構體data_create中,按照表2的映射關系請求連接時序數據庫,在建立服務連接后,將data_create數據以Rest API方式新增至時序數據庫。
關鍵程序代碼:
exports.resource =function(req,res){
var data_create=[{"name":"指標名","timestamp":"時間戳","value":"存儲值","tags":"查詢條件"}}
var opt={
method:"POST",host:"IP",port:”port”,path:"/api/ver/resource",
varreq=http.request(opt,function(serverFeedback){
if(serverFeedback.statusCode==request_type){var body="";
serverFeedback.on('data',function(data){body+= data;})
.on('end',function(){console.log("success:",serverFeedback.statusCode);});}
else {console.log("wrong:",serverFeedback.statusCode);}});
req.end();
結果測試包括服務器和服務器集群模式,主要針對Key-value類型的智能電能表數據測試。圖5給出了采用服務器和服務器集群對智能電能表“日凍結”數據進行計算時,服務器集群與計算規模的關系曲線。從圖中可知,隨著集群數量的增加,計算規模呈上升趨勢,但當集群數量較大時,網絡瓶頸成為系統性能的主要制約因素。

圖5 服務器集群與計算規模關系曲線Fig.5 Relationship curve between server cluster and computational scale
結合電網企業對設備的管理需求,采用Node.js、JSON、Rest API框架,建立了基于時序數據庫的電力運維系統架構,可擴展性強,更易使用大數據技術進行數據挖掘和二次開發,能夠快速、準確地完成對電力設備運維作業的科學、高效優化。