王震,陳亮
(山東魯能軟件技術有限公司,濟南250002)
基于Kafka消息隊列的電網設備準實時數據接入方法研究
王震,陳亮
(山東魯能軟件技術有限公司,濟南250002)
為有效利用實時獲取的電網設備狀態信息,從數據的時空角度入手,提出一種針對基于Kafka消息隊列的電網設備準實時數據接入方法。該方法在實時數據庫與歷史數據庫之間引入消息隊列緩存數據,解決兩者數據傳輸速率不匹配問題;為電網設備測點與消息隊列建立一一映射關系,減少元數據存儲冗余;設計數據接入格式,可按需封裝傳輸數據。為電力準實時數據接入提供了一種新的思路。
電力準實時數據;Kafka消息隊列;數據接入方法
電力是國計民生的重要支柱,特別是智能電網建設的快速發展,對實時分析設備狀態數據提出了更高的要求[1]。電網設備數據包括傳感器、視音頻監控設備等終端采集設備采集到的電壓、電感、局部放電等設備狀態數據,反映了電力企業的生產狀況。數據接入是電網設備歷史準實時數據應用的重要技術之一。應嚴格遵循“統一規劃、統一標準”的原則,這樣可以避免繁雜的實現方式和高額的軟/硬件費用,從而降低成本,提升數據接入管理效率。實時數據接入是對電網企業生產運營過程中電力設備產生的各種實時數據的一種處理過程,如數據的采集、傳輸、分析和存儲。在其他業務對數據有需求時,提供有效的數據訪問方式[2-4]。現有的電網設備準實時數據接入主要采用直接將實時數據與歷史數據庫相連接的方式,存在實時數據庫與歷史數據庫傳輸速率不匹配以及設備元數據存儲數據冗余等問題。
根據《國家電網公司海量歷史準實時數據管理平臺典型設計》中對歷史準實時數據平臺的描述,國網企業資源計劃(State Grid-Enterprise Resource Planning,SG-ERP)數據中心由實時數據中心與空間數據管理平臺、結構化數據管理平臺和非結構化數據管理平臺共同構成,是各業務在構建歷史準實時數據計算分析時的基礎性支撐平臺。隨著支撐業務應用不斷發展,根據國家電網公司典型設計的要求,歷史準實時數據平臺在應用和數據管理上都必須具有良好的可擴展性和可維護性,同時在業務應用上規范化和統一化[5-6]。為應對電網設備數據準實時訪問的業務應用需求,提高電力大數據的準實時應用能力,實現電力設備狀態的準實時監控,重點研究電網設備數據的接入過程,并建立一套以Kafka消息隊列為基礎的數據接入系統,提出了一種基于Kafka的電網設備準實時數據接入方法,為企業經營管理者的決策分析提供支持。
Kafka是由Apache基金會支持的一個分布式高吞吐量的開源消息系統,最初是Linkedin公司用于日志處理的分布式消息隊列。Kafka提供了一個消息發布訂閱的解決方案,架構如圖1所示。它可以處理消費者類型網站中所有日志數據,比如用戶登錄、點擊、搜索、瀏覽等動作事件,這樣的日志信息是網絡社會了解人類社會生活的一個窗口。
對于要求實時處理的日志數據和離線分析系統,如spark,hadoop,這種解決方案是可行的。Kafka在線和離線的消息處理是通過Hadoop的并行加載機制來統一管理,而且也是通過集群機來解決實時消費的問題。
Kafka作為一種發布訂閱消息的高吞吐量分布式系統,具有如下特點。
1)持久化:空間復雜度O(1)的磁盤數據結構對于即使數以TB的消息存儲也能夠在性能上保持長時間的穩定。
2)吞吐量高:即使對于非常普通的硬件,Kafka消息傳輸效率105~106條/s。
3)分區消息:可以通過Kafka服務器和消費機集群來對消息進行分區。
4)并行:支持加載Hadoop并行數據。

圖1 Kafka分布式訂閱架構
該方法在實時數據庫與歷史數據庫之間引入消息隊列緩存數據,解決兩者數據傳輸速率不匹配問題;為電網設備測點與消息隊列建立一一映射關系,減少數據存儲冗余;設計數據接入格式,可按需封裝傳輸數據。
2.1 系統總體設計
整個接入部署架構如圖2所示,電廠通過傳感器采集設備Mi狀態信息,傳輸并寫入實時數據庫中,數據網關從實時數據庫PI中讀取數據并進行數據廣播,Kafka通過監聽端口接收到從數據網關發送來的數據并緩存到消息隊列queue i中,這樣就建立了設備測點與消息隊列間的一一映射關系。當我們需要分析特定時間段特定設備的狀態信息時,可以準實時地從Kafka中對應的消息隊列取出設備數據,包裝成統一數據格式,寫入數據到非關系型數據庫hbase中,進行永久保存。

圖2 數據接入部署架構
2.2 數據存儲格式
為了永久保存通過Kafka消息隊列獲取的設備狀態信息,需要形成結構化的數據存儲格式,這種格式可以有效進行數據存儲,并為后續的數據應用分析提供支持。
為使數據有更強的使用性,從數據的時空角度,提出了一種高效的數據存儲格式,如圖3所示。ID作為數據塊的唯一編碼,設置為16個字節存儲;Equipment表示電力設備監測點,設置1 024個字節存儲,每個設備監測點對應相應的一位(如設備M1對應第一位,設備M2對應第二位,以此類推),如果該設備沒有被監測,則相應的位設置為0,如果該設備正在被監測,則相應的位設置為1;Time表示監測點的起始時間和終止時間,設置16個字節存儲,前8個字節對應監測起始時間,后8個字節對應監測終止時間;Data表示特定時間特定測點的原始監測數據,設置1 024 000個字節存儲,當需要保存的某個數據塊字節塊超過設定長度時,可以另開一個數據塊進行保存(這種情況極少)。
此時,我們按照定義的數據存儲格式寫入數據到非關系型數據庫hbase中。當需要分析數據時,可以方便快速地從hbase數據庫中根據ID或者時間、設備號對數據進行讀取。

圖3 數據存儲格式
2.3 數據接入算法
Kafka消息隊列一次數據接入流程圖如圖4所示。

圖4 Kafka消息隊列一次數據接入流程
2.4 測試結果
為驗證該數據接入方法,使用某公司開發的LIGHT作為數據網關,從實時數據庫中提取數據并進行消息發布。我們選取175~195號設備作為監測點,每隔2 h對監測點過去2 h的數據進行監測并寫入hbase數據庫中。
系統數據庫hbase中的數據顯示,每隔2 h就會有一個數據寫入的數據庫中,寫入的數據與從實時數據庫中的數據完全一致,且數據格式與該數據存儲格式一致。因此,可以證明所提出的基于Kafka的電力準實時數據接入方法在功能上符合數據接入的要求。
電力實時數據接入技術是進行實時數據分析研究的前提條件,直接影響著數據分析的實時性、準確性、方便性。通過對當前數據接入技術的研究分析,在滿足各業務應用需求的基礎上,一方面通過Kafka消息隊列,提高數據分析的準實時性,另一方面通過定義數據存儲格式,提升數據使用的方便性。然而,在極端情況下,本系統仍會面臨兩個問題:第一,當Kafka消息隊列需要保存的數據量非常大時,會導致隊列溢出;第二,當需要存儲的隊列數量足夠多,Kafka產生的消息隊列數目無法滿足需求時,會導致系統崩潰。針對這兩個問題,在下一步的研究中,我們還需對系統進行更深入的改進,使系統具有更強的魯棒性。
[1]陳樹勇,宋書芳,李蘭欣,等.智能電網綜述[J].電網技術,2009,33(8):1-7.
[2]周升,陶敏.實時/歷史數據庫平臺通用訪問方法研究[J].浙江電力,2012(12):94-98.
[3]陶敏,郭寧.PI實時/歷史數據庫系統平臺架構優化[J].浙江電力,2011(8):1-8.
[4]安磊,楊曉華,管金勝,等.基于實時/歷史數據庫(PI)系統構建智能電網信息化基礎平臺[J].華東電力,2011,39(8):1 374-1 377.
[5]周升,李樹斌,鄭綱.實時/歷史數據平臺統一應用技術架構研究[J].北塔軟件,2014(1):55-58.
[6]周升,金文德,李煒,等.實時/歷史數據新平臺的數據接入方法研究[J].浙江電力,2014(2):94-98.
Quasi-real-time Data Access Method of Power Network Equipment Based on Kafka Message Queue
WANG Zhen,CHEN Liang
(Shandong Luneng Software Technology Co.,Ltd.,Jinan 250002,China)
In order to effectively use the real-time state information of power network equipment,a method is suggested for the access of power network equipment quasi-real-time data based on Kafka message queue from the space and time perspective of data.This method has three advantages.First of all,it inserts the message queue cache data between the real-time database and historical database,which help to solve the problem of mismatching between two database data transmission speeds.Secondly,power network equipment measuring point with a message queue one-to-one mapping relationship is constructed,reducing metadata storage redundancy.Thirdly,design data access format to transmit data on demand.
power quasi-real-time data;Kafka message queue;data access method
TP311.13
A
1007-9904(2015)06-0041-03
2015-02-09
王震(1978),男,工程師,主要從事電力行業大數據技術研究;
陳亮(1981),男,高級工程師,主要從事電力行業大數據技術研究。