《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 電源技術(shù) > 設(shè)計應(yīng)用 > 基于Hadoop和關(guān)系型數(shù)據(jù)庫的電力用采大數(shù)據(jù)混合服務(wù)架構(gòu)
基于Hadoop和關(guān)系型數(shù)據(jù)庫的電力用采大數(shù)據(jù)混合服務(wù)架構(gòu)
2015《電子技術(shù)應(yīng)用》智能電網(wǎng)增刊
王 軍1,韓林峰1,侯 賓2
(1.河南許繼儀表有限公司, 河南 許昌 461000;2. 北京郵電大學(xué) 電子工程學(xué)院, 北京 100876)
摘要: 電力系統(tǒng)的用采數(shù)據(jù)具有結(jié)構(gòu)復(fù)雜、數(shù)據(jù)量龐大和增量迅速等典型大數(shù)據(jù)特點,關(guān)系型數(shù)據(jù)庫將無法應(yīng)對其未來發(fā)展?;贖adoop和關(guān)系型數(shù)據(jù)庫混合構(gòu)架,提出新型用采數(shù)據(jù)服務(wù)架構(gòu)。對平臺的高可用性、系統(tǒng)監(jiān)控、IaaS部署等進行分析,提升了系統(tǒng) 的可靠性,降低了運維難度。提出了可擴展的數(shù)據(jù)預(yù)處理過程和數(shù)據(jù)質(zhì)量管理模型,保障了數(shù)據(jù)服務(wù)質(zhì)量,提高了系統(tǒng)的易用性。測試結(jié)果表明,服務(wù)架構(gòu)能夠提供高性能、高質(zhì)量的數(shù)據(jù)服務(wù)。
Abstract:
Key words :

  王  軍1,韓林峰1,侯  賓2

 ?。?.河南許繼儀表有限公司, 河南 許昌 461000;2. 北京郵電大學(xué) 電子工程學(xué)院, 北京  100876)

  摘  要: 電力系統(tǒng)的用采數(shù)據(jù)具有結(jié)構(gòu)復(fù)雜、數(shù)據(jù)量龐大和增量迅速等典型大數(shù)據(jù)特點,關(guān)系型數(shù)據(jù)庫將無法應(yīng)對其未來發(fā)展?;?a class="innerlink" href="http://theprogrammingfactory.com/tags/Hadoop" title="Hadoop" target="_blank">Hadoop和關(guān)系型數(shù)據(jù)庫混合構(gòu)架,提出新型用采數(shù)據(jù)服務(wù)架構(gòu)。對平臺的高可用性、系統(tǒng)監(jiān)控、IaaS部署等進行分析,提升了系統(tǒng) 的可靠性,降低了運維難度。提出了可擴展的數(shù)據(jù)預(yù)處理過程和數(shù)據(jù)質(zhì)量管理模型,保障了數(shù)據(jù)服務(wù)質(zhì)量,提高了系統(tǒng)的易用性。測試結(jié)果表明,服務(wù)架構(gòu)能夠提供高性能、高質(zhì)量的數(shù)據(jù)服務(wù)。

  關(guān)鍵詞電力用采數(shù)據(jù);數(shù)據(jù)服務(wù);Hadoop;數(shù)據(jù)質(zhì)量管理

0 引言

  隨著電力系統(tǒng)逐步走向自動化和智能化,傳統(tǒng)的用電數(shù)據(jù)采集也由人工抄表轉(zhuǎn)變?yōu)檫h(yuǎn)程自動抄表。目前,我國智能電表數(shù)量已超過三億塊,用戶用電信息采集頻率更加頻繁,且電表和主站之間的數(shù)據(jù)通信是雙向互動的,即包括信息采集也包括任務(wù)下發(fā)與控制等,這對用電信息的采集、存儲、查詢、分析等全生命周期的數(shù)據(jù)處理能力提出了更高的要求,交互數(shù)據(jù)可以輕易達到TB甚至PB等級,省級電力公司的用采增量數(shù)據(jù)也可達到上百GB或TB等級[1,2]。

1 電力用采數(shù)據(jù)管理系統(tǒng)的現(xiàn)狀

  很多省市電力公司已構(gòu)建起了相應(yīng)的數(shù)據(jù)管理系統(tǒng),并大多采用關(guān)系型數(shù)據(jù)庫構(gòu)建數(shù)據(jù)平臺。但由于其對橫向擴展能力較差,無法有效支持?jǐn)?shù)據(jù)的快速增長和類型擴展,難以對大量復(fù)雜數(shù)據(jù)進行有效管理和應(yīng)用分析[9]。

  隨著Hadoop和NoSQL等分布式技術(shù)的發(fā)展,對TB甚至PB等級的數(shù)據(jù)進行實時查詢、統(tǒng)計和深度挖掘成為可能[3~5]。有文獻對Hadoop技術(shù)在電力相關(guān)領(lǐng)域的應(yīng)用進行了研究和測試,但是企業(yè)界真正形成的實用系統(tǒng)還較少。其原因主要如下:

  首先,存在開發(fā)難度。Hadoop體系的適用場景、設(shè)計理念和傳統(tǒng)關(guān)系型數(shù)據(jù)庫有很大差異,且對通常的編程接口和方法的支持還不夠完善。如果大范圍用Hadoop代替現(xiàn)有的成熟關(guān)系型數(shù)據(jù)庫,會帶來適用性、穩(wěn)定性和適配等難題。

  其次,存在運維難度。分布式的Hadoop系統(tǒng)的部署、監(jiān)控和運維方式和單機的關(guān)系型數(shù)據(jù)庫差異較大,存在更多的高可用性、監(jiān)控等需求,而傳統(tǒng)電力業(yè)務(wù)人員和運維人員對這些方法并不熟悉[6]。

  根據(jù)當(dāng)前電力企業(yè)在用采數(shù)據(jù)系統(tǒng)建設(shè)的突出矛盾和發(fā)展趨勢,提出基于Hadoop和關(guān)系型數(shù)據(jù)庫混合技術(shù),構(gòu)建用采數(shù)據(jù)管理系統(tǒng)和大數(shù)據(jù)服務(wù)平臺[7]。屏蔽底層技術(shù)的復(fù)雜性,提供平臺的高可用性保障和運維監(jiān)控方法,提供統(tǒng)一的、可擴展的數(shù)據(jù)清洗和預(yù)處理方法[8],提供易用的數(shù)據(jù)查詢和分析接口,并提供數(shù)據(jù)質(zhì)量管理和統(tǒng)計分析等新業(yè)務(wù)內(nèi)容,以及提供數(shù)據(jù)的高可用性、維護監(jiān)控、預(yù)處理、使用接口和數(shù)據(jù)質(zhì)量管理內(nèi)容。

2 混合數(shù)據(jù)服務(wù)平臺設(shè)計

  2.1 平臺架構(gòu)設(shè)計

  基于云計算的海量用電信息混合存儲技術(shù)架構(gòu)如圖1所示。

001.jpg

  采用HDFS與關(guān)系數(shù)據(jù)庫相結(jié)合的混合存儲,關(guān)系數(shù)據(jù)庫主要存儲修改操作較為頻繁的業(yè)務(wù)交易數(shù)據(jù),以及檔案數(shù)據(jù)和告警事件等;云存儲架構(gòu)主要存儲采集的電量、負(fù)荷等業(yè)務(wù)數(shù)據(jù),當(dāng)現(xiàn)有集群規(guī)模無法滿足用電信息的增量存儲時,可直接增加節(jié)點,實現(xiàn)動態(tài)橫向擴展,以保障海量采集數(shù)據(jù)的穩(wěn)定性和可靠性,為其他智能用電應(yīng)用系統(tǒng)提供良好的數(shù)據(jù)支撐。

  終端采集的原始數(shù)據(jù)經(jīng)過清洗、解析和分類,轉(zhuǎn)化成基礎(chǔ)業(yè)務(wù)數(shù)據(jù)、存入HDFS。大數(shù)據(jù)管理引擎負(fù)責(zé)對海量數(shù)據(jù)的裝載、寫入、查詢及處理等。采集終端上傳的數(shù)據(jù)實質(zhì)是半結(jié)構(gòu)化數(shù)據(jù),并且是多種業(yè)務(wù)內(nèi)容的混合數(shù)據(jù),利用MapReduce的并行處理能力,快速、可靠、穩(wěn)定地完成半結(jié)構(gòu)化數(shù)據(jù)與業(yè)務(wù)系統(tǒng)檔案數(shù)據(jù)的語義關(guān)聯(lián),從而為用電信息采集業(yè)務(wù)應(yīng)用系統(tǒng)提供完業(yè)務(wù)分類。

  在數(shù)據(jù)處理流程上,原始數(shù)據(jù)經(jīng)過分類、處理和分析之后,根據(jù)其特點,小數(shù)據(jù)集導(dǎo)入到關(guān)系型數(shù)據(jù)庫,大數(shù)據(jù)集導(dǎo)入HBASE表格,在業(yè)務(wù)系統(tǒng)建設(shè)方面,只需要重構(gòu)少量數(shù)據(jù)接口和業(yè)務(wù)模塊,即可完成系統(tǒng)整體性能的提升。對于檔案類、模型類等數(shù)據(jù),仍然存放在關(guān)系型數(shù)據(jù)庫,并可以通過Web Service、JDBC、ODBC、SQL等常見技術(shù)進行訪問和調(diào)用,原有的業(yè)務(wù)系統(tǒng)不會遭到徹底的推翻和重構(gòu),在提高系統(tǒng)性能的同時,最大限度地避免了升級的風(fēng)險。

  Hadoop存儲和關(guān)系型存儲之間存在數(shù)據(jù)交換需求。Hadoop需要從關(guān)系型數(shù)據(jù)庫讀入檔案類數(shù)據(jù)(例如用戶信息),其次Hadoop對原始數(shù)據(jù)的處理結(jié)論,會導(dǎo)入到關(guān)系型數(shù)據(jù)庫,以方便業(yè)務(wù)使用。采用開源Sqoop組件,通過MapReduce方式,實現(xiàn)數(shù)據(jù)的導(dǎo)入導(dǎo)出,在數(shù)據(jù)導(dǎo)入導(dǎo)出過程中需要保障數(shù)據(jù)的主鍵唯一性,并切斷關(guān)系型數(shù)據(jù)庫的外鍵聯(lián)系,以適應(yīng)兩種不同的數(shù)據(jù)結(jié)構(gòu)。

  對于需要進行業(yè)務(wù)查詢的大數(shù)據(jù)集(單表上億條目),需要將數(shù)據(jù)集導(dǎo)入的HBASE,利用其分布式檢索能力,實現(xiàn)超大數(shù)據(jù)集的實時查詢。Hadoop可以通過批量導(dǎo)入的方法將數(shù)據(jù)寫入HBASE,寫入時需要對數(shù)據(jù)主鍵進行校驗和優(yōu)化設(shè)計,根據(jù)用采數(shù)據(jù)的特點,采用哈希后的“表計編號+時間+數(shù)據(jù)類型”作為數(shù)據(jù)表主鍵,即可以保持?jǐn)?shù)據(jù)的唯一性,也可確保數(shù)據(jù)的隨機查找速度。

  2.2 平臺高可用性設(shè)計

  Hadoop本身具備機架感知、數(shù)據(jù)塊多副本等子節(jié)點高可用性(HA)機制,但對于主節(jié)點的保障機制較差。較早前Hadoop并不提供Namenode的高可用性保障,只是提供了對元數(shù)據(jù)(持久化元數(shù)據(jù)fsimage和增量log數(shù)據(jù))的數(shù)據(jù)備份機制,如SecondNamenode等。

  新版本Hadoop支持對Namenode進行在線備份和自動角色恢復(fù)。其主要思路是把主節(jié)點元數(shù)據(jù)信息存儲在一個網(wǎng)絡(luò)存儲位置,當(dāng)出現(xiàn)活躍主節(jié)點(Active Namenode)單點故障的時候,備用主節(jié)點(Standby Namenode)會接管數(shù)據(jù)并提升自己為活躍主節(jié)點。

  在集群元數(shù)據(jù)的存儲策略上,有兩種策略可選,一是采用獨立的網(wǎng)絡(luò)存儲單元,二是采用分布式程序協(xié)調(diào)系統(tǒng)Zookeeper作為元數(shù)據(jù)存儲和活躍節(jié)點監(jiān)控和失效選舉。Zookeeper具有分布式數(shù)據(jù)組織、心跳監(jiān)控、數(shù)據(jù)同步、選舉等功能,很適合用來管理Hadoop結(jié)構(gòu)中各類主節(jié)點(HDFS Namenode、HBASE Hmaster、Yarn Resource Manager等)的HA。根據(jù)用采系統(tǒng)的集群建設(shè)規(guī)模與實際情況,設(shè)計如圖2所示。

002.jpg

  實際部署中,集群中的部分Datanode子節(jié)點同時擔(dān)負(fù)Zookeeper節(jié)點的功能,由于Zookeeper的選舉機制具有“半數(shù)以上通過”的策略,因此一般采用單數(shù)個節(jié)點數(shù),此外節(jié)點過多可能造成較大的通信開銷,因此這里采用5或7個節(jié)點(zk節(jié)點)。

3 可配置的數(shù)據(jù)基礎(chǔ)服務(wù)流程設(shè)計

  3.1 數(shù)據(jù)預(yù)處理流程

  在數(shù)據(jù)預(yù)處理方面,由于電力標(biāo)記和數(shù)據(jù)具有多種類型,例如對階梯電價的支持,或者對不同的功率數(shù)據(jù)進行采集等,未來還可能出現(xiàn)更多類型的數(shù)據(jù)業(yè)務(wù)形態(tài),要求數(shù)據(jù)服務(wù)系統(tǒng)的數(shù)據(jù)預(yù)處理和清洗流程是可配置的、動態(tài)的。

  在預(yù)處理層面,通常只是實現(xiàn)對數(shù)據(jù)的分類存儲和規(guī)約化校驗,不會進行復(fù)雜的統(tǒng)計分析,因此預(yù)處理階段設(shè)計為利用一個MapReduce過程加以完成。為實現(xiàn)可配置、可擴展的數(shù)據(jù)預(yù)處理,設(shè)計MapReduce的主要流程如圖3所示.

003.jpg

  流程圖描述是一個Map函數(shù)或Reduce 函數(shù)的內(nèi)部執(zhí)行過程。數(shù)據(jù)鍵值對(Key,Value)在進入Map或Reduce過程時,首先進行通用化的預(yù)處理,之后根據(jù)數(shù)據(jù)種類,讀取相應(yīng)預(yù)處理配置文件,再根據(jù)配置文件調(diào)用相應(yīng)的處理邏輯或正則表達式進行校驗、格式轉(zhuǎn)換、解壓縮等步驟。如果需要對預(yù)處理邏輯進行修改,只需要編輯正則表達式和自定義函數(shù)進行調(diào)整即可,而不需要對主體MapReduce函數(shù)進行修改,不會對整體過程造成額外影響。

  3.2 數(shù)據(jù)質(zhì)量管理

  針對電力用采數(shù)據(jù)的質(zhì)量管理包含兩個層面。一是管理數(shù)據(jù)在存儲、轉(zhuǎn)換和處理過程中出現(xiàn)的錯誤、以及平臺的容錯性和錯誤恢復(fù)等,這通過容錯和HA策略進行保障,并通過WEB管理界面進行操作和查看。二是統(tǒng)計并分析各類錯誤數(shù)值。主要解決異常的發(fā)現(xiàn)、分類和關(guān)聯(lián)統(tǒng)計,以及可視化呈現(xiàn)等。

  從技術(shù)實現(xiàn)上看,根據(jù)地區(qū)、廠商等進行的統(tǒng)計分析,實際是進行了多表格的聯(lián)合(Join)查詢。在Hadoop中,為了提高Join查詢效率,會選擇將小表緩存到內(nèi)存,以實現(xiàn)Map Join。對于不同的統(tǒng)計方法,緩存的表格顯然是不一樣的,因此為了實現(xiàn)可配置的數(shù)據(jù)質(zhì)量管理,設(shè)計可配置的數(shù)據(jù)質(zhì)量統(tǒng)計流程如圖4所示.

004.jpg

  與預(yù)處理流程相比較:預(yù)處理不需要進行Join查詢,以及數(shù)據(jù)匯聚和復(fù)雜運算,其可配置的操作內(nèi)容可以放在一輪MapReduce過程中完成,而數(shù)據(jù)質(zhì)量管理統(tǒng)計則需要多輪MapReduce依次完成。

4 針對核心架構(gòu)的測試

  4.1 測試平臺設(shè)計

  在九臺X86服務(wù)器上部署數(shù)據(jù)服務(wù)平臺,并且配置高可用性(HA)策略和上文描述的機架感知策略。服務(wù)器采用Openstack搭建虛擬化環(huán)境,并設(shè)置虛擬機資源為:雙核CPU、8GB內(nèi)存和500 GB硬盤。設(shè)置2個Namenode 節(jié)點 ,7個Datanode節(jié)點。2個Namenode中,一個設(shè)置為Active NameNode,另一個設(shè)置為Standby NameNode。在9個節(jié)點中,部署7個獨立zookeeper角色,選取在2個Namenode 節(jié)點和5個Datanode節(jié)點上面。在其中一個Namenode節(jié)點上安裝Hive和Hive客戶端。拓?fù)淙鐖D5所示。

005.jpg

  測試數(shù)據(jù)是某地區(qū)4億條的原始用采數(shù)據(jù),大小為30 GB左右。體現(xiàn)了400萬以上用戶規(guī)模在一天內(nèi)的數(shù)據(jù),和電量、線損計算需求。由于測試在3臺實體服務(wù)器上進行,和一般Oracle服務(wù)器的硬件環(huán)境無可比性。測試賬戶要針對基于虛擬化搭建的Hadoop數(shù)據(jù)平臺的整體運行效果和處理效率進行驗證,并根據(jù)Oracle做正確性驗證。

  5.2 典型數(shù)據(jù)預(yù)處理過程測試

  主要測試數(shù)據(jù)導(dǎo)入HDFS,對電量、功率、電壓電流等數(shù)據(jù)進行分類寫入的時間,即對數(shù)據(jù)進行綜合檢索的時間。對于業(yè)務(wù)系統(tǒng),可能要求對處理后的原始數(shù)據(jù)導(dǎo)入HBASE,以方便實時查詢,因此也進行了相應(yīng)測試。測試結(jié)果如表1所示。

006.jpg

  測試表明,原始數(shù)據(jù)的導(dǎo)入、預(yù)處理等過程在可接受的時間內(nèi)完成,如果存在更多的數(shù)據(jù)節(jié)點,4億條當(dāng)日數(shù)據(jù)在更短時間內(nèi)完成導(dǎo)入和預(yù)處理。

  5.2 典型異常數(shù)據(jù)統(tǒng)計測試

  主要測試電力用采數(shù)據(jù)中,常見錯誤類型的處理效果。這里選取前文描述的時間異常、數(shù)值異常和根據(jù)地區(qū)進行錯誤3個業(yè)務(wù)進行統(tǒng)計分析,并將結(jié)果數(shù)據(jù)寫新文件。測試結(jié)果如表2所示。

007.jpg

  測試表明:數(shù)據(jù)服務(wù)平臺能夠?qū)ΤR婂e誤進行處理,以輔助業(yè)務(wù)人員及時分析問題,維修設(shè)備和系統(tǒng),及時保證用采數(shù)據(jù)的可靠采集和高質(zhì)量。

6 結(jié)論

  電力用采數(shù)據(jù)的管理和分析不僅對電力行業(yè)具有重要意義。 Hadoop技術(shù)由于其維護和使用的復(fù)雜度較高,目前尚未在電力行業(yè)得到大規(guī)模普及或深入應(yīng)用。本文實現(xiàn)了性能、易擴展的分布式數(shù)據(jù)服務(wù)平臺。通過對高可用性和云化部署方法的設(shè)計,簡化的部署和運維的復(fù)雜度;通過混合架構(gòu)設(shè)計、可配置的數(shù)據(jù)預(yù)處理和數(shù)據(jù)質(zhì)量管理方法設(shè)計,提高了數(shù)據(jù)的易用性,降低了系統(tǒng)開發(fā)和升級的難度,提高了數(shù)據(jù)服務(wù)質(zhì)量。通過測試驗證了服務(wù)架構(gòu)的處理性能。

參考文獻

  [1] 張冬欣.對居民生活用電實施階梯式電價的思考[J]. 當(dāng)代經(jīng)濟,2010(4)(上).

  [2] 洪釗峰.Hadoop發(fā)展現(xiàn)狀與Hadoop in China大會[C].2010.

  [3] 拉賈拉曼,厄爾曼.大規(guī)模數(shù)據(jù)挖掘[M].王斌,譯.北京:人民郵電出版社,2012

  [4] 王德文,宋亞奇,朱永利.基于云計算的智能電網(wǎng)信息平臺口[J].電力系統(tǒng)自動化,2010,34(22):7-12.

  [5]冉冉, 張巖, 胡楠, 劉雪松, 栗楊, 姜昊,基于電力數(shù)據(jù)中心應(yīng)用標(biāo)準(zhǔn)化設(shè)計的研究[J].電子技術(shù)應(yīng)用,2014,40(z1).

  [6]劉向東, 劉奎, 胡飛翔,等.基于MapReduce的并行聚類算法設(shè)計與實現(xiàn)[J].計算機應(yīng)用與軟件,2014(11).

  [7]張永, 張紅蕊, 路婧威.海量數(shù)據(jù)離散化算法的并行設(shè)計與實現(xiàn)[J].計算機應(yīng)用與軟件,2014(6).

  [8]黃偉建, 周鳴愛.MapReduce高可用性的研究與優(yōu)化[J].計算機工程與設(shè)計,2014(11).

  [9]劉文峰,顧君忠,林欣,等.基于Hadoop和Mahout的大數(shù)據(jù)管理分析系統(tǒng)[J].計算機應(yīng)用與軟件,2015,32(1):47-50.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。