榮雪琴,劉勇,劉昊,卜樹坡
(蘇州工業(yè)職業(yè)技術(shù)學(xué)院 電子與通信工程系,江蘇 蘇州 215104)
隨著“大物移云”,即大數(shù)據(jù)、物聯(lián)網(wǎng)、移動互聯(lián)網(wǎng)、云計算的蓬勃發(fā)展,新技術(shù)使電力系統(tǒng)在數(shù)據(jù)量和應(yīng)用模式上發(fā)生了巨大轉(zhuǎn)變[1],傳統(tǒng)的電力運維系統(tǒng)已無法滿足信息化電力系統(tǒng)的需求[2],存在電網(wǎng)企業(yè)難以實時監(jiān)控運維作業(yè)過程,無法掌握運維進(jìn)度[3]、運維管理存在檢修安裝人員數(shù)量不足和檢修工程量過大的問題[4]。這些問題不僅會給安全運行帶來極大的隱患,而且會造成不良的社會和經(jīng)濟影響。因此,從“大物移云”發(fā)展趨勢出發(fā),構(gòu)建新的數(shù)據(jù)密集型電力運維系統(tǒng)是非常必要和迫切的。
電力系統(tǒng)運維管理包括對電力設(shè)備軟件系統(tǒng)、硬件設(shè)備的運維管理,對電力設(shè)施及設(shè)備臺賬、軟硬件版本、參數(shù)/定值信息進(jìn)行設(shè)置,同時包含對客戶托管設(shè)備的運行狀態(tài)監(jiān)測,實現(xiàn)多種能源接入終端基礎(chǔ)信息的標(biāo)準(zhǔn)化、一體化,為系統(tǒng)各類應(yīng)用提供統(tǒng)一的基礎(chǔ)數(shù)據(jù)[5]。
文中系統(tǒng)主要包括四個子系統(tǒng):系統(tǒng)界面子系統(tǒng)、應(yīng)用支撐平臺、數(shù)據(jù)服務(wù)子系統(tǒng)、平臺服務(wù)子系統(tǒng),分別實現(xiàn)在線運行的配電設(shè)備、用戶側(cè)用電設(shè)備以及其他類型能源設(shè)施、設(shè)備運行狀態(tài)監(jiān)控、維護(hù)以及檢修管理等功能。
其中,系統(tǒng)界面子系統(tǒng)包括:Web瘦客戶端、現(xiàn)場作業(yè)移動App客戶端、電力圖形化組態(tài)工具、WebGIS系統(tǒng)、一次/二次告警事件處理等。應(yīng)用支撐平臺包括:設(shè)備全壽命周期狀態(tài)監(jiān)測、故障診斷與處理、運維管理、檢修管理、運檢流程管理、資產(chǎn)管理,數(shù)據(jù)服務(wù)子系統(tǒng)包括:電能量數(shù)據(jù)建模、業(yè)務(wù)數(shù)據(jù)、數(shù)據(jù)預(yù)處理、數(shù)據(jù)統(tǒng)計、數(shù)據(jù)評估。平臺服務(wù)子系統(tǒng)包括:關(guān)系數(shù)據(jù)管理、Key-value數(shù)據(jù)存儲、分布式存儲管理、消息管理、分布式文件管理、集群管理、權(quán)限管理、安全管理。
系統(tǒng)以分布式構(gòu)架設(shè)計,實時庫數(shù)據(jù)來源為配電終端數(shù)據(jù)、充電樁數(shù)據(jù)、微電網(wǎng)數(shù)據(jù)等高速實時數(shù)據(jù),并以Restful API方式提供電量時序數(shù)據(jù)庫和前端Web應(yīng)用服務(wù)訪問接口,后端服務(wù)器將應(yīng)用數(shù)據(jù)模型和業(yè)務(wù)模型映射到數(shù)據(jù)中心,采用分布式內(nèi)存存儲、計算用戶用電信息,極大提升系統(tǒng)的處理容量、性能及可靠性。系統(tǒng)架構(gòu)如圖1所示。
圖1 系統(tǒng)架構(gòu)圖Fig.1 System architecture diagram
采用Node.JS作為后端服務(wù)器開發(fā)環(huán)境,Node.JS是一個基于Chrome V8引擎的JavaScript運行平臺,文獻(xiàn)[6]從事件驅(qū)動,異步非阻塞I/O等方面闡述了Node.JS快速構(gòu)建網(wǎng)絡(luò)服務(wù)及相關(guān)應(yīng)用。文獻(xiàn)[7]提出了前后端分離開發(fā)模式,可根據(jù)前后端要求提供相應(yīng)的訪問方式。文獻(xiàn)[8]提出了非阻塞特性及異步事件驅(qū)動模型在高并發(fā)網(wǎng)絡(luò)服務(wù)應(yīng)用,減少了運行資源,提高系統(tǒng)性能。
為解決智能電網(wǎng)建設(shè)和生產(chǎn)過程中大規(guī)模時序數(shù)據(jù)的快速存儲和訪問處理難題,以分布式為主要特征的時序數(shù)據(jù)庫系統(tǒng)受到高度關(guān)注[9]。文獻(xiàn)[10]將時序數(shù)據(jù)庫與當(dāng)前主流關(guān)系數(shù)據(jù)庫技術(shù)特點進(jìn)行比較,總結(jié)了時序數(shù)據(jù)庫擁有超大規(guī)模數(shù)據(jù)處理能力和高比例壓縮能力的技術(shù)創(chuàng)新性。文獻(xiàn)[11]進(jìn)行了加載測試、查詢測試實例驗證,證明時序數(shù)據(jù)庫在超大規(guī)模數(shù)據(jù)集、高實時性方面能夠滿足智能電網(wǎng)大數(shù)據(jù)應(yīng)用需求。文獻(xiàn)[12]從構(gòu)建服務(wù)器集群的角度,提出策略驅(qū)動技術(shù)實現(xiàn)時序數(shù)據(jù)的靈活存儲與處理,進(jìn)一步驗證了時序數(shù)據(jù)庫的高效性。表1為日凍結(jié)電量表,圖2為存儲正向有功總電能的時序數(shù)據(jù)庫JSON結(jié)構(gòu)體。
圖2 電量時序存儲結(jié)構(gòu)體Fig.2 Power sequencing storage structure
文章設(shè)計電力運維時序數(shù)據(jù)庫著重考慮電力系統(tǒng)龐大的數(shù)據(jù)總量,借助時序數(shù)據(jù)庫的Key-value數(shù)據(jù)存儲模式實現(xiàn)電能表定時凍結(jié)、瞬時凍結(jié)、日凍結(jié)、整點凍結(jié)數(shù)據(jù)的高速存儲與查詢,方便對年度、季度、月度的電量進(jìn)行分布式查詢計算。
表1 電能表凍結(jié)電量列表Tab.1 Freezing electricity consumption of electric energy meter
電力運維信息涉及電力設(shè)備的(準(zhǔn))實時運行信息,及其關(guān)聯(lián)設(shè)備和所處站所的當(dāng)前狀況,要求數(shù)據(jù)存儲具備高吞吐量、批量更新數(shù)據(jù)及極高的內(nèi)存利用率。對于Key-value模式實現(xiàn)電能表數(shù)據(jù)存儲,運維系統(tǒng)存儲結(jié)構(gòu)采用日志結(jié)構(gòu)存儲(Log-Structured Storage)。圖3為電力運維系統(tǒng)存儲結(jié)構(gòu)。
圖3 系統(tǒng)存儲結(jié)構(gòu)Fig.3 System storage structure
Node.JS建立時序數(shù)據(jù)庫服務(wù)有兩種方式,分別為Rest API和Rest client。Rest client是第三方提供的客戶端程序,具有開發(fā)快速、資源眾多等優(yōu)點,缺點是擴展性不好,因此本文案采用Rest API方式建立時序數(shù)據(jù)庫服務(wù),消息交互采用輕量級的數(shù)據(jù)交換JSON格式封裝[13-16],表2為時序數(shù)據(jù)庫增加(C)、查詢(S)、修改(U)及刪除(D)操作與Rest API動詞對照關(guān)系,Node.JS通過這種映射關(guān)系建立時序數(shù)據(jù)庫服務(wù)。
表2 CRUD操作與Rest API動詞對照表Tab.2 CRUD operation and Rest API verbs
新增業(yè)務(wù)是運維系統(tǒng)所有數(shù)據(jù)的來源,是系統(tǒng)核心功能之一,如圖4所示,當(dāng)用戶發(fā)起業(yè)務(wù)請求后,先對請求進(jìn)行負(fù)載均衡處理,將請求轉(zhuǎn)發(fā)至不同的服務(wù)器上進(jìn)行反向代理請求頭的處理,處理完的數(shù)據(jù)會發(fā)送給Node.JS實現(xiàn)時序數(shù)據(jù)新增業(yè)務(wù),然后將數(shù)據(jù)返回Web瘦客戶端。
圖4 請求業(yè)務(wù)流程Fig.4 Request-business processes
當(dāng)Web瘦客戶端向后端發(fā)送增加數(shù)據(jù)業(yè)務(wù)指令后,Node.js將新增的數(shù)據(jù)存儲在電量時序存儲結(jié)構(gòu)體data_create中,按照表2的映射關(guān)系請求連接時序數(shù)據(jù)庫,在建立服務(wù)連接后,將data_create數(shù)據(jù)以Rest API方式新增至?xí)r序數(shù)據(jù)庫。
關(guān)鍵程序代碼:
exports.resource =function(req,res){
var data_create=[{"name":"指標(biāo)名","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();
結(jié)果測試包括服務(wù)器和服務(wù)器集群模式,主要針對Key-value類型的智能電能表數(shù)據(jù)測試。圖5給出了采用服務(wù)器和服務(wù)器集群對智能電能表“日凍結(jié)”數(shù)據(jù)進(jìn)行計算時,服務(wù)器集群與計算規(guī)模的關(guān)系曲線。從圖中可知,隨著集群數(shù)量的增加,計算規(guī)模呈上升趨勢,但當(dāng)集群數(shù)量較大時,網(wǎng)絡(luò)瓶頸成為系統(tǒng)性能的主要制約因素。
圖5 服務(wù)器集群與計算規(guī)模關(guān)系曲線Fig.5 Relationship curve between server cluster and computational scale
結(jié)合電網(wǎng)企業(yè)對設(shè)備的管理需求,采用Node.js、JSON、Rest API框架,建立了基于時序數(shù)據(jù)庫的電力運維系統(tǒng)架構(gòu),可擴展性強,更易使用大數(shù)據(jù)技術(shù)進(jìn)行數(shù)據(jù)挖掘和二次開發(fā),能夠快速、準(zhǔn)確地完成對電力設(shè)備運維作業(yè)的科學(xué)、高效優(yōu)化。