張雄寶 阮詩迪 唐羿軒 何伊妮 曹偉 葉桂南
摘要:本文介紹一種基于電網(wǎng)調(diào)度域設(shè)備監(jiān)測實(shí)時(shí)數(shù)據(jù)采集的實(shí)現(xiàn)方法。通過分布式任務(wù)調(diào)度技術(shù)、實(shí)時(shí)流數(shù)據(jù)處理技術(shù)和海量時(shí)間序列數(shù)據(jù)庫技術(shù),解決電網(wǎng)調(diào)度域設(shè)備監(jiān)測實(shí)時(shí)數(shù)據(jù)采集不及時(shí)且與業(yè)務(wù)管理數(shù)據(jù)無法互通的問題,實(shí)現(xiàn)電網(wǎng)調(diào)度域設(shè)備監(jiān)測數(shù)據(jù)的實(shí)時(shí)采集、處理和存儲(chǔ)。
關(guān)鍵詞:電網(wǎng)運(yùn)行監(jiān)控系統(tǒng);實(shí)時(shí)數(shù)據(jù)采集;clickhouse時(shí)序數(shù)據(jù)庫;kafka集群;分布式任務(wù)調(diào)度技術(shù)
中圖分類號(hào):TM76 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2019)08-0036-03
0 引言
電力行業(yè)是國民經(jīng)濟(jì)的基礎(chǔ)能源產(chǎn)業(yè),隨著社會(huì)經(jīng)濟(jì)發(fā)展,各行業(yè)對(duì)電力的依賴性明顯增強(qiáng),對(duì)供電可靠性及電能質(zhì)量的要求日益提高。近年來,隨著我國電力建設(shè)逐漸由發(fā)電建設(shè)向智能電網(wǎng)建設(shè)轉(zhuǎn)移。智能電網(wǎng)的建設(shè),其中重要的技術(shù)部分,是解決如何實(shí)現(xiàn)設(shè)備實(shí)時(shí)運(yùn)行數(shù)據(jù)與業(yè)務(wù)管理數(shù)據(jù)的融合和綜合利用,即IT與OT的融合技術(shù)。在電網(wǎng)領(lǐng)域,隨著大數(shù)據(jù)技術(shù)的興起,IT與OT的融合技術(shù)研究也屬于方興未艾的階段。電力調(diào)度領(lǐng)域廣泛使用的OCS(電網(wǎng)運(yùn)行監(jiān)控系統(tǒng))即是該技術(shù)的典型表現(xiàn)。通過OCS,可在展示頁面上監(jiān)測各設(shè)備的實(shí)時(shí)運(yùn)行狀態(tài)、線路的電流值、電壓值。但在如何將實(shí)時(shí)運(yùn)行數(shù)據(jù)與業(yè)務(wù)管理類數(shù)據(jù)進(jìn)行關(guān)聯(lián)、融合和利用,仍存在技術(shù)上的空白。
為了解決上述問題,本文提供了一種基于電網(wǎng)調(diào)度域設(shè)備監(jiān)測實(shí)時(shí)數(shù)據(jù)采集的實(shí)現(xiàn)方法,從技術(shù)上解決目前電網(wǎng)調(diào)度域設(shè)備監(jiān)測實(shí)時(shí)數(shù)據(jù)采集不及時(shí)且與業(yè)務(wù)管理數(shù)據(jù)無法互通的問題,本文通過分布式任務(wù)調(diào)度技術(shù)、實(shí)時(shí)流數(shù)據(jù)處理技術(shù)和海量時(shí)間序列數(shù)據(jù)庫技術(shù)即IT與OT的融合技術(shù),實(shí)現(xiàn)電網(wǎng)調(diào)度域設(shè)備監(jiān)測數(shù)據(jù)的實(shí)時(shí)采集、處理和存儲(chǔ),實(shí)現(xiàn)對(duì)設(shè)備運(yùn)行情況實(shí)時(shí)監(jiān)控和管理。
1 實(shí)時(shí)數(shù)據(jù)采集方法
電網(wǎng)調(diào)度域的設(shè)備監(jiān)測數(shù)據(jù)屬于時(shí)序數(shù)據(jù),具有產(chǎn)生頻率快、數(shù)據(jù)量大、數(shù)據(jù)帶有時(shí)間標(biāo)簽等特點(diǎn)[1]。針對(duì)目前電網(wǎng)調(diào)度域設(shè)備監(jiān)測數(shù)據(jù)采集不及時(shí)的問題,本文提供了一種基于分布式任務(wù)調(diào)度技術(shù)、實(shí)時(shí)流計(jì)算技術(shù)、海量時(shí)間序列數(shù)據(jù)庫技術(shù)的實(shí)時(shí)數(shù)據(jù)采集方法,可以實(shí)現(xiàn)電網(wǎng)調(diào)度域設(shè)備監(jiān)測數(shù)據(jù)的實(shí)時(shí)采集、處理和存儲(chǔ)。
實(shí)時(shí)流計(jì)算可以很好地對(duì)大規(guī)模流動(dòng)數(shù)據(jù)在不斷變化的運(yùn)動(dòng)過程中實(shí)時(shí)地進(jìn)行分析,捕捉到可能有用的信息。海量時(shí)間序列數(shù)據(jù)庫是一種專為時(shí)間序列數(shù)據(jù)優(yōu)化而設(shè)計(jì)的數(shù)據(jù)庫。時(shí)序數(shù)據(jù)具有產(chǎn)生頻率快、數(shù)據(jù)量大、數(shù)據(jù)帶有時(shí)間標(biāo)簽等特點(diǎn),基于時(shí)間序列數(shù)據(jù)的特點(diǎn),傳統(tǒng)的關(guān)系型數(shù)據(jù)庫無法滿足對(duì)時(shí)間序列數(shù)據(jù)的有效存儲(chǔ)和處理。clickhouse時(shí)序數(shù)據(jù)庫通過使用特殊的存儲(chǔ)方式,可以高效存儲(chǔ)和快速處理海量時(shí)序大數(shù)據(jù),是解決海量數(shù)據(jù)處理的一項(xiàng)重要技術(shù)[2-3]。
1.1 分布式任務(wù)調(diào)度技術(shù)
分布式任務(wù)調(diào)度技術(shù)是基于LTS框架將大批量的處理任務(wù)分配到不同的計(jì)算節(jié)點(diǎn)上運(yùn)行[4]。LTS框架包括三種節(jié)點(diǎn),具體為JobClient節(jié)點(diǎn)、JobTracker節(jié)點(diǎn)、TaskTracker節(jié)點(diǎn)。各個(gè)節(jié)點(diǎn)都是無狀態(tài)的,可以部署多個(gè),來實(shí)現(xiàn)負(fù)載均衡,實(shí)現(xiàn)更大的負(fù)載量, 并且框架具有很好的容錯(cuò)能力。JobClient節(jié)點(diǎn)用于提交任務(wù)和接收任務(wù)執(zhí)行反饋結(jié)果;JobTracker節(jié)點(diǎn)用于接收并分配任務(wù)和任務(wù)調(diào)度;TaskTracker節(jié)點(diǎn)用于執(zhí)行任務(wù)以及執(zhí)行完任務(wù)后將執(zhí)行結(jié)果反饋給JobTracker節(jié)點(diǎn)。
任務(wù)分配過程如圖1所示,JobClient提交一個(gè)任務(wù)給Job Tracker,JobTracker收到JobClient提交來的任務(wù),先生成一個(gè)唯一的JobID,JobTracker發(fā)現(xiàn)有(任務(wù)執(zhí)行的)可用的TaskTracker節(jié)點(diǎn)(組)之后,將優(yōu)先級(jí)最大,最先提交的任務(wù)分發(fā)給Task Tracker。這里JobTracker會(huì)優(yōu)先分配給比較空閑的TaskTracker節(jié)點(diǎn),達(dá)到負(fù)載均衡。TaskTracker收到JobTracker分發(fā)來的任務(wù)之后,執(zhí)行。
任務(wù)執(zhí)行過程如圖2所示,JobClient提交任務(wù)到JobTracker,JobTracker將任務(wù)保存到可執(zhí)行任務(wù)隊(duì)列,然后將任務(wù)發(fā)送給空閑的TaskTracker執(zhí)行,并把任務(wù)移到執(zhí)行中任務(wù)隊(duì)列,任務(wù)執(zhí)行完成后反饋結(jié)果到JobTracker,如果設(shè)置了反饋客戶端標(biāo)識(shí),將結(jié)果反饋到JobClient。
1.2 實(shí)時(shí)流數(shù)據(jù)處理技術(shù)
實(shí)時(shí)流計(jì)算可以很好地對(duì)大規(guī)模流動(dòng)數(shù)據(jù)在不斷變化的運(yùn)動(dòng)過程中實(shí)時(shí)地進(jìn)行分析,捕捉到可能有用的信息。實(shí)時(shí)流處理基于kafka框架進(jìn)行實(shí)現(xiàn),kafka是一個(gè)分布式的發(fā)布訂閱消息系統(tǒng),它的特性就是可以實(shí)時(shí)的處理大量數(shù)據(jù)以滿足各種需求場景[5-6]。Apache Kafka與傳統(tǒng)消息系統(tǒng)相比,有以下優(yōu)勢:
(1)它被設(shè)計(jì)為一個(gè)分布式系統(tǒng),易于向外擴(kuò)展;
(2)它同時(shí)為發(fā)布和訂閱提供高吞吐量;
(3)它支持多訂閱者,當(dāng)失敗時(shí)能自動(dòng)平衡消費(fèi)者;
(4)它將消息持久化到磁盤,因此可用于批量消費(fèi),例如ETL,以及實(shí)時(shí)應(yīng)用程序。
使用kafka實(shí)時(shí)流計(jì)算技術(shù)對(duì)實(shí)時(shí)數(shù)據(jù)進(jìn)行計(jì)算具體是通過kafka的生產(chǎn)者消費(fèi)者模式實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)處理,如圖3所示,生產(chǎn)者生產(chǎn)數(shù)據(jù),交給broker進(jìn)行存儲(chǔ),消費(fèi)者需要數(shù)據(jù)時(shí)就從broker中取出數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行處理。
下載解析后的E文件數(shù)據(jù)不間斷的推送至kafka實(shí)時(shí)消息總線,并保存在kafka的topic中,然后調(diào)用kafka的filter接口對(duì)E文件數(shù)據(jù)的狀態(tài)字段進(jìn)行監(jiān)控,以實(shí)現(xiàn)開關(guān)狀態(tài)監(jiān)控、電壓、電流突變告警以及重點(diǎn)設(shè)備的運(yùn)行狀態(tài)監(jiān)控。
開關(guān)狀態(tài)、電壓、電流及重點(diǎn)設(shè)備狀態(tài)的實(shí)時(shí)數(shù)據(jù)經(jīng)過下載解析,不間斷的將數(shù)據(jù)推送到kafka消息系統(tǒng)。開關(guān)狀態(tài)監(jiān)控處理過程如下,開關(guān)狀態(tài)數(shù)據(jù)在kafka中對(duì)應(yīng)是用一個(gè)topic來存儲(chǔ),然后調(diào)用kafka的filter接口對(duì)開關(guān)的狀態(tài)字段進(jìn)行監(jiān)控,如果狀態(tài)是0則表示開關(guān)跳閘。電壓、電流突變告警及重點(diǎn)設(shè)備的運(yùn)行狀態(tài)監(jiān)控的處理過程如下,首先根據(jù)要求設(shè)定電壓、電流及重點(diǎn)設(shè)備狀態(tài)數(shù)據(jù)的閥值,然后通過kafka的filter接口對(duì)數(shù)據(jù)進(jìn)行監(jiān)控,超過閥值的數(shù)據(jù)就是異常數(shù)據(jù),需要將數(shù)據(jù)進(jìn)行輸出和告警。監(jiān)控到的結(jié)果數(shù)據(jù)可以輸出到應(yīng)用界面進(jìn)行展示,整個(gè)實(shí)時(shí)數(shù)據(jù)處理過程可以達(dá)到秒級(jí)。
1.3 海量時(shí)間序列數(shù)據(jù)庫技術(shù)
電網(wǎng)調(diào)度域的設(shè)備監(jiān)測實(shí)時(shí)數(shù)據(jù)是屬于帶時(shí)間標(biāo)簽的時(shí)序數(shù)據(jù),數(shù)據(jù)產(chǎn)生頻率快、依賴于采集時(shí)間、測量點(diǎn)多信息量大,每天產(chǎn)生幾十GB的數(shù)據(jù),傳統(tǒng)的關(guān)系型數(shù)據(jù)庫無法滿足對(duì)時(shí)間序列數(shù)據(jù)的有效存儲(chǔ)和處理。Clickhouse是面向聯(lián)機(jī)分析處理(OLAP,On-Line Analytical Processing)的列式存儲(chǔ)數(shù)據(jù)庫,適合快速處理海量的時(shí)序數(shù)據(jù),并能夠?qū)崿F(xiàn)快速查詢和分析。ClickHouse數(shù)據(jù)庫具備以下特點(diǎn):
(1)真正的列式DBMS;
(2)數(shù)據(jù)壓縮;
(3)數(shù)據(jù)的磁盤存儲(chǔ);
(4)多核心并行處理;
(5)多服務(wù)器分布式處理;
(6)支持SQL;
(7)向量引擎;
(8)實(shí)時(shí)的數(shù)據(jù)更新;
(9)索引;
(10)適合在線查詢;
(11)支持近似計(jì)算。
通過Clickhouse時(shí)間序列數(shù)據(jù)庫,可以實(shí)現(xiàn)歷史數(shù)據(jù)的快速查詢和分析,例如明細(xì)數(shù)據(jù)的日、月累計(jì)數(shù)據(jù)統(tǒng)計(jì),歷史數(shù)據(jù)的任意時(shí)間段的記錄數(shù)、最大值、均值、最小值、最大值發(fā)送時(shí)間、最小值發(fā)生時(shí)間等常規(guī)統(tǒng)計(jì)查詢。
2 具體實(shí)施方式
E語言是電力系統(tǒng)的數(shù)據(jù)標(biāo)記語言[7],其所形成的實(shí)例數(shù)據(jù)是一種標(biāo)記化的純文本數(shù)據(jù),E語言通過少量標(biāo)記符號(hào)和描述語法,可以簡潔高效地描述電力系統(tǒng)各種簡單和復(fù)雜數(shù)據(jù)模型。調(diào)度域監(jiān)測設(shè)備實(shí)時(shí)數(shù)據(jù)的源文件格式采用E語言文件格式,E文件數(shù)據(jù)包括開關(guān)狀態(tài)數(shù)據(jù)、電壓電流數(shù)據(jù)、設(shè)備狀態(tài)數(shù)據(jù)。
本文采用分布式任務(wù)調(diào)度技術(shù)從電網(wǎng)運(yùn)行監(jiān)控系統(tǒng)下載E文件數(shù)據(jù)并進(jìn)行解析,然后將解析后的數(shù)據(jù)推送到kafka實(shí)時(shí)消息總線并將數(shù)據(jù)保存在clickhouse時(shí)間序列數(shù)據(jù)庫中進(jìn)行存儲(chǔ)和在線統(tǒng)計(jì)。如圖4所示,基于電網(wǎng)調(diào)度域設(shè)備監(jiān)測實(shí)時(shí)數(shù)據(jù)采集的實(shí)現(xiàn)方法,包括以下步驟:
E語言的數(shù)據(jù)文件無法直接存儲(chǔ)于kafka的消息總線和clickh-ouse數(shù)據(jù)數(shù)據(jù)庫,需要先經(jīng)過程序的解析。優(yōu)選地,所述采用分布式任務(wù)調(diào)度技術(shù)從電網(wǎng)運(yùn)行監(jiān)控系統(tǒng)下載E文件數(shù)據(jù)并進(jìn)行解析的具體步驟包括:
(1)根據(jù)數(shù)據(jù)文件的周期,例如5分鐘、15分鐘、1個(gè)小時(shí)等,定時(shí)生成待處理的文件列表;
(2)根據(jù)待處理的文件列表,每個(gè)文件單獨(dú)發(fā)布一個(gè)執(zhí)行任務(wù);
(3)執(zhí)行任務(wù)對(duì)E文件數(shù)據(jù)進(jìn)行下載和解析,執(zhí)行任務(wù)在多個(gè)任務(wù)服務(wù)器節(jié)點(diǎn)上并發(fā)執(zhí)行。
使用kafka實(shí)時(shí)流計(jì)算技術(shù)對(duì)實(shí)時(shí)數(shù)據(jù)進(jìn)行計(jì)算,通過計(jì)算得到開關(guān)異常跳閘數(shù)據(jù)、電壓電流突變數(shù)據(jù)以及重點(diǎn)設(shè)備的狀態(tài)數(shù)據(jù),從而實(shí)現(xiàn)開關(guān)狀態(tài)監(jiān)控、電壓、電流突變告警以及重點(diǎn)設(shè)備的運(yùn)行狀態(tài)監(jiān)控。
使用時(shí)間序列數(shù)據(jù)庫clickhouse對(duì)海量時(shí)間序列歷史數(shù)據(jù)進(jìn)行存儲(chǔ)和在線統(tǒng)計(jì)。
3 結(jié)語
本文提供了一種基于電網(wǎng)調(diào)度域設(shè)備監(jiān)測實(shí)時(shí)數(shù)據(jù)采集的實(shí)現(xiàn)方法,通過分布式任務(wù)調(diào)度技術(shù)、實(shí)時(shí)流數(shù)據(jù)處理技術(shù)和海量時(shí)間序列數(shù)據(jù)庫技術(shù),實(shí)現(xiàn)電網(wǎng)調(diào)度域設(shè)備監(jiān)測數(shù)據(jù)的實(shí)時(shí)采集、處理和存儲(chǔ),進(jìn)一步提高了對(duì)設(shè)備和電網(wǎng)運(yùn)行情況的監(jiān)控力度,提高設(shè)備運(yùn)行管理智能化水平。實(shí)時(shí)流計(jì)算可以很好地對(duì)大規(guī)模流動(dòng)數(shù)據(jù)在不斷變化的運(yùn)動(dòng)過程中實(shí)時(shí)地進(jìn)行分析,捕捉到可能有用的信息。海量時(shí)間序列數(shù)據(jù)庫是一種專為時(shí)間序列數(shù)據(jù)優(yōu)化而設(shè)計(jì)的數(shù)據(jù)庫。時(shí)序數(shù)據(jù)具有產(chǎn)生頻率快、數(shù)據(jù)量大、數(shù)據(jù)帶有時(shí)間標(biāo)簽等特點(diǎn),基于時(shí)間序列數(shù)據(jù)的特點(diǎn),傳統(tǒng)的關(guān)系型數(shù)據(jù)庫無法滿足對(duì)時(shí)間序列數(shù)據(jù)的有效存儲(chǔ)和處理。clickhouse時(shí)序數(shù)據(jù)庫通過使用特殊的存儲(chǔ)方式,可以高效存儲(chǔ)和快速處理海量時(shí)序大數(shù)據(jù),是解決海量數(shù)據(jù)處理的一項(xiàng)重要技術(shù)。
參考文獻(xiàn)
[1] 曹軍威,萬宇鑫,涂國煜,張樹卿,夏艾瑄,劉小非,陳震,陸超,等.智能電網(wǎng)信息系統(tǒng)體系結(jié)構(gòu)研究[J].計(jì)算機(jī)學(xué)報(bào),2013(01):143-167.
[2] 顧恩碩,劉海粟,白雪,等.關(guān)系數(shù)據(jù)庫與非關(guān)系數(shù)據(jù)庫[J].藝術(shù)科技,2016(12):84.
[3] 陳勇.銀行日志倉儲(chǔ)中心系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].湖南大學(xué),2017.
[4] 承林,王海寧,高春成,等.分布式任務(wù)調(diào)度在電力市場交易系統(tǒng)中的應(yīng)用設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用與軟件,2018(11):163-167.
[5] 金雙喜,李永,吳驊,武文廣,李俊臣,張新艷,等.基于Kafka消息隊(duì)列的新一代分布式電量采集方法研究[J].智慧電力,2018(02):77-82.
[6] 王鄭合,王鋒,鄧輝,柳翠寅,張曉麗,等.一種優(yōu)化的Kafka消費(fèi)者/客戶端負(fù)載均衡算法[J]計(jì)算機(jī)應(yīng)用與軟件,2017(08):2306-2309.
[7] 孫世明,孟勇亮,楊雪,等.基于E語言數(shù)據(jù)交互的自動(dòng)化系統(tǒng)監(jiān)視平臺(tái)設(shè)計(jì)[J].電力應(yīng)用,2015(S2):4-8.
Realization of Real-time Data Acquisition for Equipment Monitoring in Power Network Dispatching Domain
ZHANG Xiong-bao, RUAN Shi-di, TANG Yi-xuan, HE Yi-ni, CAO Wei, YE Gui-nan
(Guangxi Electric Power Dispatch Control Center, Nanning Guangxi? 530000)
Abstract:This paper introduces a real-time data acquisition method based on equipment monitoring in power grid dispatching area. By means of distributed task scheduling technology, real-time flow data processing technology and massive time series database technology, the problem that the real-time data acquisition of equipment monitoring in power grid dispatching domain is not timely and can not communicate with business management data is solved, and the real-time data acquisition, processing and storage of equipment monitoring in power grid dispatching domain are realized.
Key words:Power grid operation monitoring system; real-time data acquisition; Clickhouse time series database; Kafka cluster; distributed task scheduling technology