楊 誠,易 楊,林建熙,夏 偉
(1.廣東電網(wǎng)有限責(zé)任公司電力調(diào)度控制中心,廣州 510600;2.南方電網(wǎng)數(shù)字電網(wǎng)研究院有限公司,廣州 510600)
目前,隨著物聯(lián)網(wǎng)、云計算、移動互聯(lián)網(wǎng)等高新技術(shù)的高速發(fā)展,世界數(shù)據(jù)量的增長表現(xiàn)出了指數(shù)級、爆炸式的增長特征。相關(guān)調(diào)查結(jié)果顯示,從2012年開始,世界數(shù)據(jù)量的增長就已經(jīng)達(dá)到兩年增長一倍的速度,到目前為止,世界數(shù)據(jù)量整體已達(dá)35ZB以上。與此同時,人們的行為表現(xiàn)出了強烈的數(shù)字化特征,在娛樂社交、生活工作中,人們都離不開大數(shù)據(jù)[1]。很多大數(shù)據(jù)技術(shù)在這樣的背景下應(yīng)運而生,如Hadoop,引發(fā)了多個產(chǎn)業(yè)的技術(shù)變革,使這些產(chǎn)業(yè)獲得了顛覆性的發(fā)展,例如IT業(yè)。在這些技術(shù)的運用下,人們利用大數(shù)據(jù)對事物相關(guān)性進行尋找,預(yù)測、挖掘、分析事物等。這讓我們迎來了大數(shù)據(jù)時代[2]。基于該背景對大數(shù)據(jù)動態(tài)自動化平臺進行設(shè)計與研究。
對于大數(shù)據(jù)動態(tài)自動化平臺的設(shè)計與研究,目前相關(guān)研究已經(jīng)獲得了普遍關(guān)注并達(dá)到了一定高度。國外在對大數(shù)據(jù)動態(tài)自動化平臺進行研究的過程中已經(jīng)取得了相當(dāng)多的研究成果,目前主要針對平臺的數(shù)據(jù)倉庫、分析能力的提升、架構(gòu)優(yōu)化等問題進行研究。在國外,目前應(yīng)用比較廣泛的一種平臺是基于Java技術(shù)的大數(shù)據(jù)動態(tài)自動化平臺。該平臺主要通過Java技術(shù)搭建,目前其部署率正在不斷增長,實現(xiàn)了一體化多渠道大數(shù)據(jù)技術(shù)拓展。而國內(nèi)對于大數(shù)據(jù)動態(tài)自動化平臺的研究也在最近幾年獲得了驚人的成果,設(shè)計的平臺達(dá)到了高度的透明性和內(nèi)聚性,很多高層軟件也被設(shè)計出來。目前在國內(nèi)應(yīng)用的比較多的平臺是基于JStorm系統(tǒng)的大數(shù)據(jù)動態(tài)自動化平臺與基于Spark的大數(shù)據(jù)動態(tài)自動化平臺。這兩種大數(shù)據(jù)動態(tài)自動化平臺能夠?qū)ぷ髫?fù)載進行優(yōu)化迭代,并提供高效、交互式的大數(shù)據(jù)查詢。而這些目前應(yīng)用較多的大數(shù)據(jù)動態(tài)自動化平臺均存在數(shù)據(jù)查詢性能、數(shù)據(jù)遷移性能方面的問題,因此設(shè)計一種基于GIS數(shù)據(jù)交互的大數(shù)據(jù)動態(tài)自動化平臺,并對該平臺進行性能測試,深入研究該平臺相關(guān)技術(shù)。
后臺支持模塊由主機、交換機、服務(wù)器構(gòu)成。其中主機的數(shù)量需要根據(jù)實際情況來布設(shè),主機選取的型號為IPC-KR3499,是一種工控電腦。
主機的具體參數(shù)如表1所示[3]。
表1 主機具體參數(shù)
交換機采用的型號為SAD-DA24。服務(wù)器具體包括WEB服務(wù)器、文件服務(wù)器、內(nèi)容管理服務(wù)器。
數(shù)據(jù)預(yù)處理模塊負(fù)責(zé)進行大數(shù)據(jù)的導(dǎo)入與清洗。其中大數(shù)據(jù)的導(dǎo)入使用的工具為Sqoop模型,這是一種遷移數(shù)據(jù)的工具模型,通過MapReduce提升導(dǎo)出數(shù)據(jù)的效率。傳輸數(shù)據(jù)時采取的是批處理形式,能夠自動進行數(shù)據(jù)類型轉(zhuǎn)換與映射或由用戶進行自定義[4]。Sqoop模型支持多種數(shù)據(jù)庫,并且支持API,根據(jù)大數(shù)據(jù)特點,用戶可以自行開發(fā)加載、轉(zhuǎn)換、抽取大數(shù)據(jù)的工具。該模型的工作原理具體如圖1所示。
圖1 Sqoop模型的工作原理
利用Sqoop模型向大數(shù)據(jù)動態(tài)自動化平臺導(dǎo)入大數(shù)據(jù)的具體過程如下:
1)和數(shù)據(jù)庫Server進行通信,得到被導(dǎo)入大數(shù)據(jù)的表的具體結(jié)構(gòu)模式,其中包括約束條件、列類型、列名、外鍵、主鍵、表名等。在以上信息的獲取中,最先獲取的是全部表名,并依據(jù)獲取的表名對其他信息進行依次獲取。最后,在具體對象內(nèi)對這些信息進行保存。
2)對被導(dǎo)入大數(shù)據(jù)的表的具體結(jié)構(gòu)模式進行讀取,其中的關(guān)鍵是得到各表之間的關(guān)聯(lián)關(guān)系,利用表里的外鍵能夠?qū)Ω鞅碇g的關(guān)聯(lián)關(guān)系進行確定。具體來說就是構(gòu)建與各表相關(guān)的其他表的列表,并遍歷每張表,獲取與其相關(guān)的表,在一個列表中存放。對該列表實施去重操作,獲取不存在重復(fù)的相關(guān)列表。
3)以被導(dǎo)入大數(shù)據(jù)的表的具體結(jié)構(gòu)模式為依據(jù)對HBase的表存儲模式進行創(chuàng)建。
4)向HBase遷移被導(dǎo)入大數(shù)據(jù)。具體包括遷入關(guān)系表及其關(guān)聯(lián)表。遷入關(guān)系表的步驟比較簡單,主要是利用SQL對表的數(shù)據(jù)進行查詢,以對應(yīng)關(guān)系為依據(jù),將關(guān)系表主鍵當(dāng)做平臺數(shù)據(jù)庫表的行鍵,在平臺數(shù)據(jù)庫表中依次插入屬性名及其元組值。遷入關(guān)聯(lián)表則是在遷入關(guān)系表的基礎(chǔ)上,利用生成的平臺數(shù)據(jù)庫表的行鍵對關(guān)系表對應(yīng)的關(guān)聯(lián)表進行確定,接著在表中依次插入關(guān)聯(lián)表的對應(yīng)屬性名與元組值。
大數(shù)據(jù)的清洗則具體包括四個階段:準(zhǔn)備、檢測、定位以及清洗。
其中準(zhǔn)備指的是選擇清洗工具、選擇與分析清洗方法、選擇清洗目標(biāo)與需求,獲取清洗數(shù)據(jù)的方案與策略。
檢測指的是分析大數(shù)據(jù)中存在的問題,分類和識別存在的問題并進行整理,獲取分類信息。
定位指的是根據(jù)獲取的分類信息確定數(shù)據(jù)源中每一類問題的位置并對其進行標(biāo)記,獲取問題分布[5]。
清洗指的是改正標(biāo)記處存在的問題數(shù)據(jù),具體包括歸并不一致名稱的數(shù)據(jù)、去重處理、填充與分析缺失數(shù)據(jù)、刪除臟數(shù)據(jù)等。
在整體階段中,清洗與定位需要執(zhí)行多次操作,以保障清洗數(shù)據(jù)的準(zhǔn)確性。
清洗數(shù)據(jù)的具體流程如圖2所示。
圖2 清洗數(shù)據(jù)的具體流程
其中聚類分析使用的算法是概率聚類算法,首先對以下數(shù)據(jù)集進行給定:
式(1)中X代表給定數(shù)據(jù)集;xn表示集合中的第n個數(shù)據(jù)。
將M個簇的對應(yīng)聚類中心設(shè)為vi(i=1,2,…,M),則概率聚類對應(yīng)目標(biāo)函數(shù)具體如式(2)所示:
式(2)中J(X,V)代表概率聚類對應(yīng)目標(biāo)函數(shù);P(xk)表示xk的對應(yīng)概率分布。
基于GIS數(shù)據(jù)交互設(shè)計PROFILER模塊,PROFILER模塊主要負(fù)責(zé)進行性能分析,該模塊支持的數(shù)據(jù)抓取方式為動態(tài)抓取,使用的抓取工具為BTrace,通過事件驅(qū)動對動態(tài)抓取流程進行控制。抓取數(shù)據(jù)具體可以分為數(shù)據(jù)流統(tǒng)計、資源消耗統(tǒng)計、資源消耗、數(shù)據(jù)流等四類。模塊使用的數(shù)據(jù)存儲方式為GIS數(shù)據(jù)交互存儲方式,能夠?qū)ψト?shù)據(jù)進行實時存儲。模塊處理事件驅(qū)動的方式是Java注解[6]。
對于PROFILER模塊,在進行性能分析時,需要滿足數(shù)據(jù)可視化需求,因此通過GIS數(shù)據(jù)交互思想在模塊中搭建一個GIS可視化交互式平臺,該平臺集合了GIS組件、空間文件地圖、關(guān)系型數(shù)據(jù)庫、圖表可視化表達(dá)工具以及多維圖像表達(dá)工具等多個組件,能夠?qū)崿F(xiàn)平行坐標(biāo)法、Hyper Tree等,還提供管理工具集功能,UI對工具進行動態(tài)地刪增。通過搭建該GIS可視化交互式平臺,實現(xiàn)PROFILER模塊的數(shù)據(jù)可視化需求。
在PROFILER模塊中,抓取方法與驅(qū)動方法具體如表2所示。
表2 抓取方法與驅(qū)動方法
平臺使用的數(shù)據(jù)庫是Hbase,是一種可伸縮、面向內(nèi)存、高性能、高可靠的數(shù)據(jù)庫。該數(shù)據(jù)庫可以對列進行動態(tài)增加,當(dāng)列是空的,就不需要對數(shù)據(jù)進行存儲,能夠節(jié)省空間;能夠提供讀寫操作的高并發(fā)支持;以及能夠?qū)?shù)據(jù)進行自動切分,帶來數(shù)據(jù)存儲的可伸縮性。其具體結(jié)構(gòu)如圖3所示。
圖3 數(shù)據(jù)庫具體結(jié)構(gòu)
在該數(shù)據(jù)庫中,存儲的文件共分為兩種類型,一種是Hfile,存儲的是平臺的鍵值數(shù)據(jù),文件為二進制格式;另一種是Hlog,存儲的是平臺寫入數(shù)據(jù)的對應(yīng)歸屬信息。數(shù)據(jù)庫中共有以下工作組件:數(shù)據(jù)讀寫和用戶請求響應(yīng)工作組件、管理工作組件、數(shù)據(jù)、狀態(tài)、地址的存儲工作組件以及通信工作組件。
該數(shù)據(jù)庫的功能具體如表3所示。
表3 該數(shù)據(jù)庫的功能
首先對平臺測試的實驗環(huán)境進行搭建,具體如圖4所示。
圖4 搭建的實驗環(huán)境
在搭建的實驗環(huán)境中,實驗集群內(nèi)共包括從節(jié)點8個、主節(jié)點1個,利用兩個交換機連接集群,交換機能夠鏈接到各節(jié)點。其中第一個交換機能夠?qū)崿F(xiàn)集群的時鐘全局同步,而另一個交換機能夠?qū)崿F(xiàn)組件的數(shù)據(jù)傳輸與通訊。
平臺測試設(shè)備包括硬件設(shè)備與軟件,其中硬件包括兩臺主機,具體數(shù)據(jù)如表4所示。
表4 硬件設(shè)備
軟件包括Storm、Kafka、Openes JDK、Jetty、CentOS、Hive、Ambari。
在搭建的實驗環(huán)境與配置的測試設(shè)備下,對設(shè)計的基于GIS數(shù)據(jù)交互的大數(shù)據(jù)動態(tài)自動化平臺進行性能測試。測試的性能包括數(shù)據(jù)查詢性能、數(shù)據(jù)遷移性能。
2.4.1 數(shù)據(jù)查詢性能測試結(jié)果
首先是對基于GIS數(shù)據(jù)交互的大數(shù)據(jù)動態(tài)自動化平臺的數(shù)據(jù)查詢性能進行測試,具體測試結(jié)果如表5所示。
表5 數(shù)據(jù)查詢性能測試結(jié)果
根據(jù)表5的數(shù)據(jù)查詢性能測試結(jié)果可知,基于GIS數(shù)據(jù)交互的大數(shù)據(jù)動態(tài)自動化平臺對于不同的查詢接口都能做到迅速的獲得查詢結(jié)果,查詢平均用時整體較少。
2.4.2 數(shù)據(jù)遷移性能測試結(jié)果
接著對基于GIS數(shù)據(jù)交互的大數(shù)據(jù)動態(tài)自動化平臺的數(shù)據(jù)遷移性能進行測試。在測試中,為使實驗結(jié)果更加豐富,將基于Java技術(shù)、基于JStorm系統(tǒng)、基于Spark的大數(shù)據(jù)動態(tài)自動化平臺作為對比測試平臺,使實驗結(jié)果具備對比性。同樣測試這三種對比平臺的數(shù)據(jù)查詢性能、數(shù)據(jù)采集性能以及數(shù)據(jù)遷移性能。觀察設(shè)計平臺是否具有性能優(yōu)勢。
數(shù)據(jù)遷移性能測試結(jié)果具體如表6所示。
表6 數(shù)據(jù)遷移性能測試結(jié)果
表6的數(shù)據(jù)遷移性能測試結(jié)果表明,基于GIS數(shù)據(jù)交互的大數(shù)據(jù)動態(tài)自動化平臺的數(shù)據(jù)遷移速率比基于Java技術(shù)、基于JStorm系統(tǒng)、基于Spark的大數(shù)據(jù)動態(tài)自動化平臺高,最高甚至可達(dá)6.30MB/s。
在大數(shù)據(jù)動態(tài)自動化平臺的研究中應(yīng)用了GIS數(shù)據(jù)交互技術(shù),實現(xiàn)了數(shù)據(jù)查詢性能、數(shù)據(jù)遷移性能的提升,提出了一種新的解決大數(shù)據(jù)的方案。