楊漾,張詩軍,陳豐,李遠寧,張世良
(1.中國南方電網有限責任公司信息部,廣州 510600;2.廣東電網有限責任公司信息中心,廣州 510000)
電力大數據平臺建設及實時線損異常檢測應用
楊漾1,2,張詩軍1,陳豐1,李遠寧1,張世良1
(1.中國南方電網有限責任公司信息部,廣州 510600;2.廣東電網有限責任公司信息中心,廣州 510000)
以某區域電網公司為例,結合電網行業的數據特征以及現有的大數據技術,完成電力大數據平臺的設計及建設。同時,以電力大數據平臺的流數據處理架構為基礎,整合計量自動化數據、GIS數據、營配數據等,開展實時線損異常檢測分析場景建設,驗證平臺的流數據分析能力,為后續電力行業開展其他大數據應用場景的建設奠定基礎。
電力大數據平臺;實時線損;異常檢測;神經網絡;聚類
電力大數據平臺是電力行業大數據應用的基礎和技術支撐,為大數據應用提供數據基礎以及存儲、計算、分析等能力。由于電力大數據的固有特征與其他行業大數據的特征不盡相同,當前一些較為成熟的大數據平臺所采用的處理方法并不能完全適用于電力行業,因此研究與開發電力大數據平臺,以此支撐電力大數據應用,顯得非常必要且迫切。
歐美各國對電力大數據的應用研究開展較早,主要圍繞配電、用電等領域基于智能電表用戶的采集分析、配電網的管理等方面[1]。在大數據平臺方面,IBM[2]、HP[3]、Oracle[4]等傳統IT巨頭積極開展大數據技術與平臺工具的研發,開發了面向或適用于智能電網的大數據平臺、模型與工具。學者Shyam R等人提出了基于Spark的智能電網大數據平臺[5]。2015年2月,AutoGrid宣布與微軟達成全球合作,基于AutoGrid的能源數據平臺為全球公用事業公司和創新能源服務供應商提供大數據和智能電網分析解決方案[6]。
反觀我國,大數據主要在互聯網、金融、電信、交通等領域應用較為廣泛[7-9]。隨著智能電網的深入建設,電力大數據的挖掘應用要求越來越高。中國電科院朱朝陽等、華中科技大學彭小圣等也相繼提出了電力大數據平臺核心技術[10-11],但主要停留于理論研究階段,目前電力大數據平臺在大型電力企業的應用仍較為缺乏。
線損是電力企業在電能傳輸過程中發生的技術上和管理上的損耗,是電網企業經營效益的重要體現之一。及時發現線損異常,對于挽回電力企業損失,提高經營效益具有重要作用。同時,實時線損計算分析過程涉及到大量的運行監控數據流,對于平臺的計算能力、擴展能力等都具有較高的要求。因此,本項目以某區域電網公司實時線損計算和異常檢測為例,驗證了所設計的電力大數據平臺的能力,為后續電力行業大數據平臺的深化應用奠定了基礎。
1.1 電力大數據平臺需求分析
隨著業務的高速發展和信息化的深入建設,電網數據呈現了大數據4V特性,其數據現狀及平臺需求特征如下:
(1)數據現狀:電網數據涉及GIS數據、實時電量數據、在線監測數據、各類業務管理數據等,其數據類型多、體量大、增量快,實時性較高。但目前大部分數據流動性不足,價值轉化率低,亟需建設具備處理上述類型數據的平臺,實現數據資產的有效應用。
(2)需求特征:結合電網行業的數據現狀,電力大數據平臺除了必須提供海量結構化數據與非結構化數據的采集、存儲、計算、分析與服務能力外,還必須考慮電網數據的實時性特征,形成包括流式計算、內存計算、消息存儲等能力。
1.2 電力大數據平臺設計
電力大數據平臺架構必須包括六個模塊:數據采集、數據存儲、數據計算、分析組件、數據服務和平臺管理。其中數據采集、存儲、計算及分析是整個電力大數據平臺的核心。結合電網企業的數據現狀以及電力大數據平臺的需求特征,考慮實時線損異常檢測應用對流式數據的采集、存儲、計算的需求,電力大數據平臺必須具備高可用性、低延遲、水平可擴展性的特點。本文引入了前沿的大數據采集、存儲、計算、分析技術等,完成了電力大數據的建設工作。其技術架構如下圖所示。
在數據采集方面,本平臺采用了Sqoop、Flume、Kafka進行數據采集。Sqoop用于將大規模的業務數據從傳統關系型數據庫轉移到HDFS。Flume技術組件采集了業務系統日志文件,對業務系統發生的數據變更進行及時捕獲,并以推送方式在數據中心完成同步更新。而Kafka技術實現了對海量準實時平臺和流式采集獲取的數據進行隊列化處理,為數據倉庫和數據應用的數據消費提供穩定、連續的數據輸入。
數據存儲包括對分布式文件、關系型數據以及內存數據存儲,采用Greenplum DB、HDFS、HBASE產品以及關系型數據庫Oracle,包括數據湖、數據倉庫以及數據集市。數據湖僅存儲最新快照數據,每個源系統對應一個分布式存儲Schema。數據倉庫存儲區,各處理單元采用私有的CPU、內存和硬盤并通過協議通信。其數據存儲是對表從物理存儲上被水平分割,并分配給多臺服務器(或多個實例),每臺服務器可以獨立工作,具備共同的Schema,只需增加服務器數就可以增加處理能力和容量,保證了可擴展能力。
數據計算包括傳統的SQL計算、大規模并行計算、內存計算以及流式計算。大規模并行計算采用MPP并行計算技術,內存計算采用Spark,實現基于Redis的內存計算,流式計算采用Spark Streaming采用Spark Streaming計算技術,實現基于消息隊列的數據計算。
數據分析包括多維分析引擎、數據挖掘引擎以及數據挖掘算法庫,用于支持各類數據分析結果的生成,以支持多種數據分析應用類型。
線損的異常檢測對電網合理規劃、及時發現違約用電等具有重大意義,因此,本文以實時線損異常檢測方法的研究與實現為例,驗證電力大數據平臺的能力。
實時線損的計算是以電表量測數據為基礎,更新頻率為15min。利用實時線損數據流實時變化情況及趨勢的判斷,對線損數據上的異常進行及時預警,輔助業務人員就要對此饋線作進一步檢查。使企業以最快速度發現線損異常,并及時采取相應的措施。
本文根據時間序列挖掘技術,研究設計采用基于人工神經網絡預測偏離度的方法[12]檢測實時線損異常點,同時采用基于滑動窗口的子序列聚類方法[13-16]檢測線損時間序列數據異常,從而得到更為精確的異常檢測結果。
2.1 基于人工神經網絡的預測偏離度的異常點檢測
在固定的數據集中,識別離群點可采用多種方法,如擬合優度檢驗等。但對于流式數據而言,數據通常只能進行單遍處理,應用于固定數據集的分析方法必須進行適應性調整。本文所實時異常點檢測的核心思想在于根據時間序列的預測模型,給出實時數據點的預測值,將真實值與其比對分析,在給定的閾值下,判斷是否出現異常。
在時間序列預測模型中,BP神經網絡由于其出色的自學習能力及一定的推廣概括能力而被采納使用。在這種情形下,從數學角度看,網絡成為輸入輸出的非線性函數,假設線損的時間序列值共有n個,記該時間序列為{xi|i=1,2,…,n},以離預測時間點最近的m個觀察值作為輸入變量,預測第n+1個值,其預測可用下式描述:

時間序列的預測方法即是用神經網絡來擬合函數f(·)并確定m,從而預測未來值。
對于線損序列數據,采用如下步驟檢測異常點:
(1)采用BP神經網絡擬合函數f(·),檢測出相應的異常點,以神經網絡擬合值作為異常點的替代值,得到修補后的新序列;
(2)重新采用BP神經網絡學習,預測未來的實時線損大小xn+1;
(3)將采集到的線損真實值x'n+1與神經網絡預測值進行比對,在給定的閾值α下,當時,判斷為異常點,并以預測值作為新的線損大小記錄在序列中;
(4)返回步驟2,不斷學習更新神經網絡,以提高新的數據點的預測精度。
考慮到實時線損數據在不斷更新,對所有新產生的序列重新采用BP神經網絡學習在技術上難以實現,因此,本研究采用增量式學習方法。其核心思想如下:對于第一個新的數據集的訓練學習和原來BP神經網絡學習過程一致,每次產生新的數據集后,進行檢測,判斷是否重新學習。如果需要,采用相同的參數構造新的BP神經網絡,更新各神經元節點的權值,將更新后的BP神經網絡應用到現有數據中。
由于該方法只關注單個數據點,不代表線損時間序列的過程所發生的根本變化,因此本研究在此基礎上,進一步利用線損序列,檢測出其中存在的異常子序列,提高線損異常檢測的準確率。
2.2 基于聚類的異常子序列檢測
與固定數據集不同,線損數據流的分布特征會隨著時間的推移而變動。由已有的線損歷史數據分析發現:單條饋線的線損數據是以天為周期的時間序列。那么在相鄰的幾天內同一時間段的線損數據的走勢應該是相似的。

圖2 單條饋線線損情況
基于上述特征,本文采用基于滑動窗口的聚類方法,對單條饋線的線損異常數據進行聚類,每次聚類只對滑動窗口對應的時間范圍內的數據流進行聚類,一方面降低聚類的復雜度,另一方面反映當前數據流的分布特征。
(1)線損子序列的分割
首先確定子序列的時間段長度,然后從最新接收的數據點開始往前分割單條饋線的線損時間序列得到各個子序列。
例如:若最新接收的數據點為3號13:15分,時段長度為4小時,那么分割的每個子序列有16個數據,如表1所示:

表1 線損子序列分割示例
完成序列劃分后得到足夠多的子序列,但由于時段長度不同可能導致子序列的數據點個數過多,因此需要提取各子序列的特征以便節省運算量并進行更深入的分析。由于子序列可能存在高度異常、均值異常、方差異常、趨勢異常,故需要提取這4個特征變量。記子序列為{xi|i=1,2,…,n}
定義1子序列高度:

式中,max(xi)是子序列的最大數據,min(xi)是子序列的最小數據。
定義2子序列均值:

定義3子序列標準差:

定義4子序列趨勢

式中,μ1為子序列前半段的均值,μ2為子序列后半段的均值。
(3)子序列聚類分析
提取每個子序列四維特征之后,將子序列按這4個特征變量進行K-Means聚類,聚類數目根據學者周世兵等提出的BWP指標[17],即最小類間距離和類內距離之差與最小類間距離和類內距離之和的比值確定。最后分析聚類形成的簇,若簇內對象數目小于事先給定的閾值ε,則認為該簇為異常子序列形成的簇。
綜上,使用基于人工神經網絡的預測偏離度對單個數據點進行異常檢測,而使用聚類分析對子序列即連續多個的數據點進行異常檢測。結合兩種檢測手段,當檢測結果為單個孤立異常點時,認為很大可能為記錄錯誤等一些人為因素造成;當檢測結果顯示異常點所在子序列存在異常時,應該更深入去分析其背后的異常原因。如此可以快速準確地發現出異常,并且有針對性地分析異常原因。
3.1 基于人工神經網絡的異常點檢測在大數據平臺的實現
線損異常點的檢測方法具有如下特點:一方面本文提出了通過人工神經網絡不斷學習的方法來預測異常行為,從而檢測檢測出以前未被發現的異常行為;另一方面實時線損數據每15min更新一次,其頻率較高,屬于流式數據。數據不間斷產生,新的數據可能需要重新訓練模型,由于流式數據實時性的特點,難以對全量數據進行訓練。
考慮到Kafaka優秀的吞吐量、可靠性和擴展性,以及Spark Streaming的靈活性,本研究采用電力大數據平臺中Spark Streaming流式計算框架實現人工神經網絡算法的并行化處理,利用Kafka集群將收集到的線損數據交給Spark Streaming,由人工神經網絡算法對數據進行實時異常檢測。
利用Spark的分布式數據架構——彈性分布式數據集(Resilient Distributed Dataset,RDD),能夠將BP神經網絡借助集群實現并行化,將原本在單機上執行的分類任務拆分到集群上。Spark為RDD提供了一個partitionBy函數,將原始的RDD數據分配至集群中的多個Worker節點,其步驟如下:
①啟動Spark中集群管理分配工作節點,設置Executor的內存及CPU內核大小。
②將程序集分發到集群的所有工作節點。
③初始化Streaming Context,設置流式數據的處理窗口大小。
④使用參數集L,訓練數據集TrainData以及測試數據集TestData對基于人工神經網絡的異常檢測算法進行初始化。
⑤初始化RDD graph、Sceduler、Block Tracker和Shuffle Tracker,啟動并行任務。
⑥啟動Kafka集群接收并將流式數據轉到Spark Streaming執行并行任務。
⑦Executor執行基于人工神經網絡的異常檢測算法;
⑧如對BP神經網絡進行重新學習,將新的神經元間的連接權值進行重新存儲。
3.2 基于聚類的異常子序列檢測在大數據平臺的實現
基于聚類的異常子序列檢測方法具有如下特點:該方法主要采用了K-Means聚類算法。K-Means算法的核心思想為通過多次計算新的聚類中心,這個過程需要對聚類中所有數據的矢量求平均值。而實時線損數據量較大,其計算量極為巨大。因此,本文擬采用并行化技術進行處理,以提高聚類的效率,同時降低算法對內存的要求。
MapReduce作為一個通用的分布式計算模型,具有可擴展能力強,效率高等特點,能夠可靠地并行處理大規模數據。其特點在于能夠將數據分割并分配給Map任務并行處理,不同節點處理完成后,將產生的中間結果輸入到Reduce任務,得到最終結果。因此,本研究采用電力大數據平臺中的MapReduce批量計算實現基于聚類的線損異常檢測。其并行化策略如圖3所示。
以電力大數據平臺,項目開展了實時線損應用場景設計,以實時線損曲線為基礎,基于異常檢測算法,實現線損的單點異常檢測和序列異常檢測。其異常檢測的結果,將利用電力大數據平臺的可視化技術,將線損在GIS平臺進行可視化展示,對于檢測出異常的線損進行告警提示,輔助業務人員及時發現線損異常,采取相應措施。
項目以某一地市局的10kV饋線為例,分別在Oracle平臺和電力大數據平臺上開展了上述應用建設。其中饋線數據量為4322條,專變數量共24584臺,公變數量為24947臺(單條kV饋線線損=饋線關口供入量-專變用戶的用電量-臺區用戶的供電量)。在不考慮數據缺失、數據補抄、數據重算、轉供電等情況下評估實時線損計算的過程耗時,兩個平臺結果如下:

圖3 MapReduce并行化策略

圖4 線損可視化展示

表2 平臺計算效率比較
綜上,大數據量下采用電力大數據平臺技術路線相比采用Oracle關系數據庫,在同樣的數據分析之所以效果下,數據計算分析性能有顯著的提升。
本文結合電力行業數據管理和應用實際需求,參照業界數據平臺領先實踐經驗,引入前沿的大數據采集、存儲、計算、分析等相關技術,設計了較為先進的電力大數據平臺架構。同時,選取了涉及海量多源實時數據的線損異常檢測場景,以平臺的分析挖掘能力為依托,提出了實時線損異常檢測算法,并設計了線損異常檢測應用場景,充分驗證了平臺的海量實時數據處理能力。本文的研究結果為開展電力行業企業級大數據平臺建設掃清了技術障礙。同時,本文的線損異常檢測場景為后續電力行業各類大數據應用場景的建設提供了重要的技術參考,對支撐電網企業深度挖掘數據價值,提高企業決策的科學化,促進業務模式創新,提高企業的市場競爭力,推動創建國際先進電網企業具有十分重要的現實意義。
[1]張東霞,苗新,劉麗平.智能電網大數據技術發展研究[J].中國電機工程學報,2015,35(1):2-12.
[2]The Cornerstone of IBM's Big Data and Analytics Portfolio[EB/OL].[2015-04-20].http://www-01.ibm.com/software/data/bigdata/images/ watson-fondations-final.png.
[3]Big Data Changes Everything[EB/OL].[2015-05-05].http://www8.hp.com/us/en/business-solutions/big-data-overview.html.
[4]Thomas V R,Tanaya B.Oracle Utilities Data Model Reference[R],2013.
[5]Shyam R,Ganesh H.B.B,Kumar S.S,Poornachandran P,Soman K.Apache Spark a Big Data Analytics Platform for Smart Grid.Procedia Technology[J].January 1,2015;21(SMART GRID TECHNOLOGIES):171-178.
[6]王全強,劉敏,成立.智能電網電力大數據技術研究[J].數據庫技術,2016(1):181-182.
[7]官建文,劉振興,劉揚.國內外主要互聯網公司大數據布局與應用比較研究[J].中國傳媒科技,2012(17):45-49.
[8]林榮耀.大數據及在當代互聯網應用中的研究[D].廈門:廈門大學,2014.
[9]鄭志來.大數據背景下互聯網金融對中小企業融資影響研究[J].西南金融,2014(11):63-66.
[10]朱朝陽,王繼業,鄧春宇.電力大數據平臺研究與設計[J].電力信息與通信技術,2015,06:1-7.
[11]彭小圣,鄧迪元,程時杰,文勁宇,李朝暉,牛林.面向智能電網應用的電力大數據關鍵技術[J].中國電機工程學報,2015,03:503-511.
[12]徐鵬飛,李煒,鄭華,吳建國.神經網絡在時間序列預測中的應用研究[J].電子技術研發,2010(8):5-7.
[13]張力生,楊美潔,雷大江.時間序列重要點分割的異常子序列檢測[J].計算機科學,2012(5):183-186.
[14]藍敏,李朔宇,李錫祺,曾耀英.基于聚類分群的線損特征分析方法[J].電力科學與技術學報,2013(4):54-58.
[15]Huang X,Ye Y,Xiong L,Lau R,Jiang N,Wang S.Time Series K-Means:A New K-Means Type Smooth Subspace Clustering for Time Series Data[J].Information Sciences.November 1,2016;367-368:1-13.
[16]Ferreira L,Zhao L.Time Series Clustering Via Community Detection in Networks[J].Information Sciences.January 1,2016;326:227-242.
[17]周世兵,徐振源,唐旭清.K-Means算法最佳聚類數確定方法[J].計算機應用,2010,30(8):1995-1998.
Construction of Power Big Data Platform and the Application of the Outlier Detection of Real Time Line Loss
YANG Yang1,2,ZHANG Shi-jun1,CHEN Feng1,LI Yuan-ning1,ZHANG Shi-liang1
(1.China Southern Power Grid,Guangzhou 510600;2.Guangdong Power Grid Information Center,Guangzhou 510000)
Takes a regional power grid corp as an example,combines with the data characteristics of power grid industry and the existing big data technology,completes the design and construction of big data platform.At the same time,based on the big data platform’s streaming data processing architecture,it integrates measurement automation data,GIS data and business data,etc.,to carry out the construction of the outlier detection and analysis of real time line loss,which proves the streaming data analytics capacity of the platform.Lays the foundation for the subsequent power industry to carry out the construction of other big data application scenarios.Lays the foundation to carry out the construction of other big data application in the future.
Power Big Data Platform;Real Time Line Loss;Outlier Detection;Neural Network;Cluster
1007-1423(2016)36-0008-07
10.3969/j.issn.1007-1423.2016.36.002
楊漾(1984-),女,湖南寧鄉人,工程師,工學博士,研究方向為計算機系統結構
張詩軍(1973-),男,安徽六安人,高級工程師,研究方向為計算機應用技術
陳豐(1973-),男,福建莆田人,工程師,本科,研究方向為計算機應用技術
李遠寧(1981-),男,廣東梅州人,高級工程師,研究方向為計算機應用技術
張世良(1985-),男,廣東梅州人,工程師,碩士研究生,研究方向為計算機系統結構
2016-12-10
2016-12-20
廣東省科技廳重大專項(No.20148010117007)