黃升平, 徐秀峰, 胡賀駿, 李雪玲, 鄭立思
(1.廣西電網有限責任公司崇左供電局, 廣西, 崇左 532200; 2.廣西大學, 電氣工程學院, 廣西, 南寧 530000; 3.廣西康耐肯特科技有限公司, 廣西, 南寧 530000)
由于大數據、互聯網等技術的快速發展,數據量與日俱增[1-2],數據收集效率要求持續提高,數據同步時間和遷移時間需要進一步縮短,因此產生了數據實時采集和海量異構數據實時同步等問題。在這樣的需求背景下,數據平臺應運而生。
文獻[3]提出了基于分布式并行架構的數據平臺架構,實現了數據同步匯集和處理,提升了數據聚集的實時性,能夠為分析應用及時提供詳細的數據,支撐應用級分析結果的準確性。文獻[4]提出了包括基礎設施層、數據接口層、大數據平臺層和系統應用層的大數據軟件架構,能夠對電網在防災調度方面進行有效補充和擴展。文獻[5]提出了一種配用電統一數據采集與信息支撐平臺架構,從支撐角度實現了數據統一融合和傳輸,對配用電業務系統的建設起到更好的支撐作用,減小了在應用層進行數據融合的復雜度。文獻[6]提出了一種云計算平臺,并證實了其具有可行性,很大程度上提升了數據處理速度。文獻[7]提出了一種基于Hadoop數據庫的教育平臺,該平臺通過對資源進行處理,在保證穩定性的前提下提升了數據處理效率。文獻[8]設計了基于Hadoop高校大數據平臺,為高校信息化建設提供了一種新思路。
目前各個行業都在快速發展,不同行業管理體系獨自運營,按照自己行業的模式開展工作,因此數據格式千差萬別,形成了信息孤島,浪費了大量資源。伴隨著數據量的增多,數據存儲技術引起了各界的廣泛關注,數據倉庫和數據平臺等技術相繼出現。傳統數據倉庫可以很快地分析數據,作出相應的預測并且提高了預測的準確性,但所有數據都需要經過數據倉庫,會影響查詢數據、處理數據的速度[9]。Hadoop是目前出現的數據平臺技術之一,Hadoop可以滿足時間延遲不太高的需求,但流數據具有實時性,需要有敏捷的響應速度,Hadoop對流數據作實時處理的能力欠佳。如果是低時延,甚至是毫秒級響應,Hadoop則無法滿足[10-11]。針對清洗單一數據難的問題,已有學者提出了許多處理的方法,且清洗效果好,但是由于海量數據、異構數據的出現,各種數據的格式、結構還存在問題,處理方法并不理想,如何有效且快速將海量異構數據融合是當前面臨的重要問題之一。
針對以上問題,本文提出了一種支持異構數據融合的實時數據采集和同步的數據平臺,實現了對大量數據信息的存儲和綜合管理,形成了信息查詢、發布和可視化展示的統一管理架構,提供了數據的更新與展現,促進了資源的有效利用。
為了有效解決海量數據存儲、時延要求高的問題,平臺通過關鍵技術的聚合和統一,以及虛擬機、Linux操作系統等資源,為數據平臺的搭建提供基礎且安全穩定的運行環境。為滿足平臺高性能和可擴展性的運行和應用,采用分布式數據庫MongoDB存儲數據,具有海量擴展性的同時,更具有毫秒級的訪問延遲特性。MongoDB支持主從架構和負載均衡,能夠保證數據平臺存儲的高可用性。管理平臺基于MongoDB集群實現對所有資源的統一管理,保證數據平臺的穩定運行和協調有序?;谄脚_的統一管控,流數據處理引擎采用高可用設計,任務之間采用負載均衡,保證數據任務不中斷,提高反應速度和整體性能,實現數據同步、數據抽取、數據加工等。數據發布服務同樣采用高可用設計,保證發布服務的高可用性。此外,數據平臺是實現對各分布模塊的實時監控管理。由于數據平臺通過網絡與不同的源端、目標端進行信息的輸送,所以需要建立傳輸加密的平臺安全防護機制。
本文平臺設計包括數據傳輸、數據治理和數據發布3個部分,能夠滿足數據實時采集,大數據量儲存,訪問時延短和統一處理等需求。平臺架構如圖1所示。

圖1 平臺架構
1) 數據傳輸。為避免數據抽取時對源系統帶來性能的影響、縮短對原始數據表的操作時間、減緩數據變化給系統造成壓力,數據平臺通過數據拉取或者日志拉取的方式將數據庫數據復制遷移到MongoDB集群中,同時也可以對各種流數據進行異構同步操作,將數據實時傳輸到MongoDB集群。
2) 數據治理。為保證數據在轉換、分析、存儲進程中無偏差,以及原始數據庫中的所有記錄都存在,確保數據在全部流程中相同十分重要。數據平臺對數據進行數據清洗、合并拆分等處理,實現對數據格式、類型等不同數據的數據轉換功能。數據質量包括臟數據監測、質量規則管理、規則校驗、質量統計等功能,由于數據來源千差萬別,因此對數據監測十分必要,需通過校驗規則檢測不符合標準的數據,保證數據內容的規范和數據結構的統一。
3) 數據發布。為滿足通過數據發布對接大數據平臺、可視化大屏、數倉等各方面需求。數據發布組件采用REST協議進行數據分發,主要包括應用程序接口(API)、MongoDB Charts等發布類型,其中API包括數據推送(REST API)、API后臺應用(MongoDB API)、數據訂閱(steaming API)、SQL報表接口(SQL API)等。
本文所提出的數據平臺的關鍵技術包括異構數據融合、批處理計算能力、高可用性、平臺安全與可靠性等。
1) 異構數據融合。異構數據指數據構造方式的差別,且差異明顯,往往存在于多種數據源的數據庫中。關系型數據庫采用行和列的模式存儲數據,是一種支撐關系模型的數據庫,關系型數據庫存儲數據方式便于理解,但面對海量數據的訪問,查詢和寫入效率低下。非關系型數據庫與關系型數據庫存在很大不同,采用鍵值存儲、文檔存儲等數據存儲模型。非關系型數據庫的查詢和寫入效率非常高,即使有大量數據訪問,其性能也很優秀,數據格式靈活多樣,數據庫擴展更方便。異構數據融合包括數據層融合、特征層融合和決策層融合。數據層融合是將初始數據進行處理,保證數據完整性,使結果更加準確。特征層融合是將原始數據的特征向量進行處理,減少需要處理的數據量,提升了整體的運行速度。決策層融合是指采用不同方式對同一數據進行處理,將不同處理結果進行融合,得到最終數據,進一步提升數據平臺的容錯性能將。
2) 批處理計算能力。數據中臺可以支持100個以上并發的批處理任務,支持對Excel、CSV等文件批量采集和處理。若每條數據大小為1 KB,每15分鐘上報一條數據,數據平臺為1500萬電網用戶留存3個月電表數據,以此來計算,總存儲量為:15 000 000×(24 h×60/15)=14.4億條/d,14.4億×1 KB≈1.34 TB/天,1.34 TB×90天=120.6 TB。如果采用傳統數據庫,則需要數十套類似的數據庫來完成,而采用本數據平臺批量可以達到5000條/s同步至數據庫。
3) 高可用性。數據平臺要具有對多種源數據實時獲取的能力,對數據模型進行變更,并結合需求對數據進行改善。流數據處理引擎采用高可用設計,利用分布式部署減緩單個處理引擎的壓力,實現數據抽取、模型轉化、數據加工等。
基于高可用原理的流數據處理引擎可分別部署在2臺及以上的虛擬機。選擇單一數據源進行同步任務,同時間內只有一個處理引擎運作。若多數據源同時進行,不同任務則會采用負載均衡,數據傳輸任務會被均勻分配到處理引擎上,提高數據傳輸速度。傳輸過程中某一引擎發生故障或者傳輸中斷,任務會在短時間內自動遷移至其余一臺正常運行的處理引擎繼續處理數據(見圖2)。

圖2 高可用性
4) 平臺安全與可靠性。認證加密是數據平臺登錄依靠賬號+密碼的方式進行認證,將認證信息存于MongoDB數據庫中,通過MongoDB算法進行加密,確保登錄信息的安全性。傳輸加密是數據平臺支持安全套接字協議(SSL)加密MongoDB的傳輸,確保數據在數據庫傳輸時不被泄露和修改。數據發布加密是采用超文本傳輸協議(HTTP)和SSL協議,通過HTTP方式傳輸的數據采用SSL協議進行加密,保證數據庫和瀏覽器之間傳輸數據的安全。
本文介紹的數據平臺已在某市進行應用,并且完成了對關鍵技術的測驗,開展了當地常住人口的水、電、氣實時數據接入,實現了全市范圍內的實時數據采集。依靠提出的實時數據采集和同步的數據平臺,利用數據平臺的海量存儲技術、實時處理能力和批處理能力,實現了水、電、氣等龐大繁雜數據源的接入和數據有效處理,節約了工作人員的匯集、測驗和清理時間。通過異構數據融合技術和批處理計算能力,滿足了對中間數據治理的需求,同時數據平臺的可視任務運行監控把握整體數據的動態和結果,明顯提高了不同數據信息的處理效率(見圖3)。
本文介紹的數據平臺已達到以下性能指標。若數據平均大小為1 KB,則數據采集速率(單節點)能達到批量5000條/s,增量1000條/s。量產指標需能夠達到每秒5萬條數據入庫能力,可通過使用500萬條數據從源端數據庫導入目標端數據庫,500萬條數據需在17 min內完成來進行驗證。若數據平均大小為1 KB,則數據發布速率(單節點)能達到單次請求響應5000條/s,并發1000個請求。系統可支持的電表終端接入數量為1500萬個。系統具有對Oracle、MySQL、MongoDB等數據庫的實時數據同步能力,還具有半結構化數據采集能力,可通過對Excel/CSV、XML等文件數據采集進行驗證。
本文將MongoDB與Hadoop、MySQL進行比較,發現在存儲模式、查詢模式、查詢性能、寫入模式、實時應用等方面均有提升,如表1所示。

表1 MongoDB、Hadoop與MySQL對比圖
通過表1可以發現,采用MongoDB較傳統的數據庫有很大程度的提升。其中,查詢性能優勢明顯,對于實時應用更是具有低延遲的優點,數據量越大,MongoDB低延遲優勢越顯著。
本文數據平臺的架構相對簡單,相對于Hadoop平臺與傳統數倉,在數據同步、數據量、管理成本等方面均有明顯優勢,如表2所示。

表2 數據平臺、Hadoop平臺與傳統數倉對比圖
通過表2可以發現,相對于Hadoop平臺的節點多種類繁雜和傳統數倉的開發成本高,本數據平臺的架構相對簡單,在實時性方面也更具有優勢。
本文針對行業發展過程中的若干問題,如異構數據無法融合、結構復雜,以及數據獲取傳輸無法實時進行等,提出一種支持異構數據融合的實時數據采集和同步的數據平臺架構,并在此架構上對異構數據融合、批處理計算能力、高可用性、平臺安全與可靠性等關鍵技術進行了分析和研究,提高了原始數據到數據應用的效率和實用性。