相關(guān)鏈接: 中國安全網(wǎng) 中國質(zhì)量網(wǎng) 中國論文網(wǎng) 中國資訊網(wǎng)
李遠寧,劉森,張詩軍,陳豐,王志英
(中國南方電網(wǎng)有限責任公司信息部,廣東廣州510623)
摘要:隨著企業(yè)信息化水平和企業(yè)精細化管理要求的不斷提高,企業(yè)對數(shù)據(jù)管理的需求也隨之增強,如何提高企業(yè)數(shù)據(jù)質(zhì)量更是需要重點解決的問題。針對電力企業(yè)數(shù)據(jù)質(zhì)量管理面臨的挑戰(zhàn),創(chuàng)新提出了分布式數(shù)據(jù)質(zhì)量管理解決方案。針對集中式數(shù)據(jù)質(zhì)量系統(tǒng)的性能瓶頸,在研究數(shù)據(jù)質(zhì)量系統(tǒng)特點并借鑒國內(nèi)外對大數(shù)據(jù)的解決方案后,提出了基于Hadoop分布式處理框架的解決方案。利用Hadoop集群,可以把缺陷數(shù)據(jù)從Oracle中抽離,分散存儲在集群里多臺服務(wù)器上,以有效提高磁盤I/O性能和數(shù)據(jù)分析性能。
關(guān)鍵詞:數(shù)據(jù)質(zhì)量管理;分布式;Hadoop 中圖分類號:TP391
doi: 10.11959/j.issn.1000-0801.2016104
1 引言
隨著企業(yè)信息化水平和精細化管理要求的不斷提高,數(shù)據(jù)已成為企業(yè)的重要資源和核心資產(chǎn),深刻影響企業(yè)的業(yè)務(wù)管理模式。企業(yè)數(shù)據(jù)質(zhì)量水平,將關(guān)系到企業(yè)數(shù)據(jù)化管理、決策的效率和成效。
為促進數(shù)據(jù)質(zhì)量水平的提升,電力行業(yè)開展了數(shù)據(jù)質(zhì)量管理工作,并完成了數(shù)據(jù)質(zhì)量管理系統(tǒng)的建設(shè)與推廣,生產(chǎn)、營銷、財務(wù)、人力資源等業(yè)務(wù)域的數(shù)據(jù)質(zhì)量得到了顯著提升,但也面臨如下一些挑戰(zhàn): ·涉及范圍廣,涉及各分省公司的營銷、生產(chǎn)、人力資 源、財務(wù)等業(yè)務(wù)領(lǐng)域;
·校驗規(guī)則繁多,各業(yè)務(wù)域都有相應(yīng)的數(shù)據(jù)質(zhì)量校驗 規(guī)則,涵蓋非空、長度、格式、一致性、準確性等類型的規(guī)則,共計4 000多條;
·數(shù)據(jù)量大,經(jīng)統(tǒng)計,全網(wǎng)月增量數(shù)據(jù)為8億筆,問題數(shù)據(jù)為3 000萬筆;
·數(shù)據(jù)校驗耗時長,以營銷域為例,當校驗數(shù)據(jù)量達到10億筆或以上規(guī)模時,原基于集中式數(shù)據(jù)存儲和計算架構(gòu)的數(shù)據(jù)質(zhì)量管理系統(tǒng)由于數(shù)據(jù)讀寫和數(shù)據(jù)統(tǒng)計操作瓶頸,完成數(shù)據(jù)質(zhì)量校驗和問題分析需耗費70 h以上的系統(tǒng)運行時間;
·需要在短時間內(nèi)執(zhí)行大量的校驗規(guī)則,對磁盤讀寫性能、CPU和內(nèi)存性能要求較高。
2傳統(tǒng)的數(shù)據(jù)質(zhì)量管理模式
傳統(tǒng)集中式數(shù)據(jù)質(zhì)量管理系統(tǒng)可以規(guī)范化管理校驗規(guī)則、調(diào)度規(guī)則的執(zhí)行時間、統(tǒng)一管理數(shù)據(jù)質(zhì)量報告,大大提高了數(shù)據(jù)質(zhì)量校驗的效率,并規(guī)范了數(shù)據(jù)質(zhì)量的管理。數(shù)據(jù)量在千萬級以內(nèi)時,可以穩(wěn)定高效地完成數(shù)據(jù)質(zhì)量校驗。
集中式數(shù)據(jù)質(zhì)量管理系統(tǒng)(以下簡稱集中式系統(tǒng))主要包括兩大模塊,如圖1所示。
(1)系統(tǒng)配置層
用于配置校驗規(guī)則、執(zhí)行策略、元數(shù)據(jù)等信息,查看數(shù)據(jù)質(zhì)量分析結(jié)果。
(2)系統(tǒng)執(zhí)行層
負責規(guī)則的執(zhí)行和問題數(shù)據(jù)的存儲。質(zhì)量校驗引擎采用Oracle存儲過程實現(xiàn),通過database link(DBlink)鏈接到“被校驗庫”執(zhí)行預(yù)先配置好的校驗規(guī)則,統(tǒng)計并抽取查詢出來的問題數(shù)據(jù)。問題數(shù)據(jù)存儲在集中式系統(tǒng)數(shù)據(jù)庫里進行進一步的過濾、合并和分析,最終生成數(shù)據(jù)質(zhì)量報告。
集中式系統(tǒng)使用關(guān)系型數(shù)據(jù)庫存儲和分析數(shù)據(jù),當面對海量數(shù)據(jù)時數(shù)據(jù)庫服務(wù)器的性能往往會成為瓶頸。只能通過提高CPU處理速度和磁盤I/0速度來提高數(shù)據(jù)庫性能,但這意味著系統(tǒng)成本的增加,并且隨著數(shù)據(jù)的不斷增長,數(shù)據(jù)庫服務(wù)器很快又會成為性能瓶頸。圖2
展示了不使用索引和使用索引時,SQL執(zhí)行時間隨著數(shù)據(jù)量增長的變化情況?梢钥闯,數(shù)據(jù)量在500 GB時已出現(xiàn)瓶頸。
由此可見,傳統(tǒng)的集中式系統(tǒng)仍存在不足,需要引入新的解決方案,以提升企業(yè)在數(shù)據(jù)質(zhì)量管理方面的能力。
3數(shù)據(jù)質(zhì)量管理的實踐
3,1 設(shè)計思路
針對集中式數(shù)據(jù)質(zhì)量系統(tǒng)的性能瓶頸,本文在研究數(shù)據(jù)質(zhì)量系統(tǒng)特點并借鑒國內(nèi)外對大數(shù)據(jù)的解決方案后,提出了基于Hadoop分布式處理框架的解決方案。利用Hadoop集群,可以把缺陷數(shù)據(jù)從Oracle中抽離,分散存儲在集群里的多臺服務(wù)器上,從而可以有效提高磁盤I/O性能和數(shù)據(jù)分析性能。該方案具有以下優(yōu)點:
·基于x86服務(wù)器,可使用較廉價的服務(wù)器組建集群;
·具有良好的可擴展性,當業(yè)務(wù)增長,需要處理更多的數(shù)據(jù)時,可以水平擴展和增加更多的節(jié)點;
·集群的每個節(jié)點都可用于計算和存儲數(shù)據(jù),可應(yīng)對
PB級別數(shù)據(jù)的存儲和分析。
3.2分布式數(shù)據(jù)質(zhì)量管理系統(tǒng)
分布式數(shù)據(jù)質(zhì)量系統(tǒng)采用J2EE架構(gòu)開發(fā),可邏輯劃分為用戶交互層、數(shù)據(jù)處理層和數(shù)據(jù)存儲層,如圖3所示。
3.2.1 用戶交互層
用戶交互層即用戶界面,通過界面可以進行系統(tǒng)配置、規(guī)則管理、報告導(dǎo)出等操作。主要功能包括以下幾方面。
·元數(shù)據(jù)管理:管理被校驗庫的元數(shù)據(jù),包括表名、字段名、字段類型等信息。
·模型管理:管理被校驗庫表之間的關(guān)聯(lián)關(guān)系。
·規(guī)則配置:管理質(zhì)量校驗規(guī)則,包括規(guī)則名稱、規(guī)則描述以及校驗?zāi)_本。
·策略管理:管理校驗規(guī)則的執(zhí)行時間和執(zhí)行參數(shù)。
·報表管理:管理數(shù)據(jù)質(zhì)量報告,包括生成、上報、查看等功能。
·平臺管理:管理組織機構(gòu)、用戶信息、系統(tǒng)日志等。
用戶交互層是用戶與系統(tǒng)交互的界面,在進行系統(tǒng)設(shè)計時充分考慮了界面的可用性和便利性,結(jié)合AJAX技術(shù)降低系統(tǒng)的響應(yīng)時間,提升了用戶使用體驗;為簡化校驗規(guī)則的配置工作,系統(tǒng)可根據(jù)元數(shù)據(jù)自動生成校驗規(guī)則的功能,并采用AJAX技術(shù)預(yù)加載元數(shù)據(jù),提高用戶操作流暢度,大大提高規(guī)則配置的效率;還提供規(guī)則參數(shù)的功能。利用該功能可以把規(guī)則中相似的部分抽取出來,配置成若干個規(guī)則參數(shù),因此可以減少規(guī)則的數(shù)量,降低規(guī)則變更的響應(yīng)時間。
3.2.2數(shù)據(jù)處理層
數(shù)據(jù)處理層是整個系統(tǒng)的核心,負責規(guī)則執(zhí)行、缺陷數(shù)據(jù)查詢分析等任務(wù),主要功能包括以下幾方面。
·執(zhí)行策略任務(wù)調(diào)度:負責控制執(zhí)行策略的任務(wù)調(diào) 度,按周期定時啟動執(zhí)行策略。
·缺陷數(shù)據(jù)分析:負責缺陷明細的分析,并生成數(shù)據(jù)質(zhì)量報告。
·規(guī)則執(zhí)行引擎:負責執(zhí)行規(guī)則腳本,記錄執(zhí)行日志。
·缺陷明細查詢和導(dǎo)出:為用戶交互層提供從 Hadoop集群里查詢數(shù)據(jù)的接口。
作為數(shù)據(jù)處理層的兩大核心組件之一,規(guī)則執(zhí)行引擎是數(shù)據(jù)質(zhì)量管理系統(tǒng)的關(guān)鍵所在,直接影響了校驗的效率。在設(shè)計規(guī)則執(zhí)行引擎時主要考慮以下幾點因素。
性能是首先要考慮的問題。本系統(tǒng)的規(guī)則執(zhí)行引擎采用開源ETL工具Kettle作為缺陷數(shù)據(jù)抽取引擎,Kettle可以把一個表的數(shù)據(jù)“切片”進行多線程分段抽取,因此可以比較高效地把問題數(shù)據(jù)抽取到質(zhì)量管理系統(tǒng)里。另外,執(zhí)行引擎還采用緩存機制,執(zhí)行規(guī)則時會優(yōu)先從緩存中獲取結(jié)果以提高執(zhí)行效率。
其次,穩(wěn)定性是另一個重要因素。在數(shù)據(jù)質(zhì)量管理系統(tǒng)里面,執(zhí)行引擎里包含了大量的容錯處理機制。例如,在規(guī)則執(zhí)行失敗后,執(zhí)行引擎可以判斷失敗的原因并決定是否需要重試,如果遇到不可恢復(fù)的異常,則直接把規(guī)則標記為失敗并繼續(xù)執(zhí)行下一條規(guī)則。
最后,還要考慮對數(shù)據(jù)源的適應(yīng)性。為了擴大數(shù)據(jù)質(zhì)量管理系統(tǒng)的使用范圍,執(zhí)行引擎需要兼容多種主流的數(shù)據(jù)庫。目前已兼容MySQL、SQL Server和Oracle,日后會兼容更多類型的數(shù)據(jù)庫。
缺陷數(shù)據(jù)分析引擎是數(shù)據(jù)處理層的另一個核心組件。缺陷明細數(shù)據(jù)采集到Hadoop后,該引擎對數(shù)據(jù)進行分析,生成并匯總結(jié)果,最終生成數(shù)據(jù)質(zhì)量報告。為了加快數(shù)據(jù)分析的效率,系統(tǒng)把分析任務(wù)細分成多個更小規(guī)模的任務(wù),當所有任務(wù)完成后再匯總生成最終的結(jié)果。
3.2.3數(shù)據(jù)存儲層
數(shù)據(jù)存儲層由統(tǒng)一數(shù)據(jù)訪問接口以及數(shù)據(jù)存儲(含系統(tǒng)數(shù)據(jù)和缺陷明細數(shù)據(jù))組成。其中,系統(tǒng)數(shù)據(jù)庫采用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫Oracle,用于存放系統(tǒng)配置、執(zhí)行日志、規(guī)則信息和缺陷數(shù)據(jù)分析結(jié)果;而缺陷數(shù)據(jù)明細存儲采用Hadoop分布式處理框架。
(1)統(tǒng)一數(shù)據(jù)訪問接口
系統(tǒng)使用Hadoop集群存儲缺陷明細數(shù)據(jù),為了能更簡單、快捷地分析數(shù)據(jù),基于Impala框架封裝了通用數(shù)據(jù)訪問接口,兼容Oracle和分布式架構(gòu)下的數(shù)據(jù)訪問,能在Hadoop集群上運行本地SQL,可以為存儲在HDFS或HBase中的Hadoop數(shù)據(jù)提供快速、交互式的SQL查詢,查詢效率比基于MapReduce的Hive有數(shù)量級的提升。
(2)資源監(jiān)控
由于集群用到多臺服務(wù)器,因此如何便捷、直觀地監(jiān)控每臺服務(wù)器當前的狀態(tài),成為系統(tǒng)實施與維護首先要考慮的問題。數(shù)據(jù)質(zhì)量管理系統(tǒng)使用Cloudera Manager(免費版)作為Hadoop集群管理和監(jiān)控的工具,并進行了適當優(yōu)化,提供了一個B/S結(jié)構(gòu)的管理界面,用戶可以實時查看到集群里每一臺服務(wù)器的健康狀況、資源使用率、任務(wù)執(zhí)行情況等信息。
3.3主要創(chuàng)新點
(1)利用分布式技術(shù)解決傳統(tǒng)關(guān)系型數(shù)據(jù)庫的性能瓶頸
. 數(shù)據(jù)質(zhì)量管理系統(tǒng)具有數(shù)據(jù)量大、數(shù)據(jù)增長快以及分析任務(wù)繁重等特點。傳統(tǒng)關(guān)系型數(shù)據(jù)庫在應(yīng)對這樣的大數(shù)據(jù)量場景時,數(shù)據(jù)分析性能迅速下降,已難以滿足實際的應(yīng)用需求。本研究提出使用Hadoop分布式架構(gòu)重構(gòu)系統(tǒng)中數(shù)據(jù)量較大的模塊,關(guān)系型數(shù)據(jù)庫只用于存儲分析結(jié)果。本系統(tǒng)采用了基于Impala框架封裝的數(shù)據(jù)分析引擎,開發(fā)人員可以使用熟悉的SQL語言進行數(shù)據(jù)分析,以降低Hadoop集群的應(yīng)用門檻。利用Hadoop集群可以輕易實現(xiàn)數(shù)據(jù)的水平分布,從而大大提高系統(tǒng)的可用性和數(shù)據(jù)分析性能。
(2)使用多線程并行技術(shù)提高數(shù)據(jù)質(zhì)量校驗引擎的性能
為了能最大限度地利用分布式系統(tǒng)的硬件資源,提出了基于多線程的校驗規(guī)則執(zhí)行引擎。執(zhí)行引擎能根據(jù)規(guī)則數(shù)量和當前系統(tǒng)負載情況動態(tài)創(chuàng)建線程池,其中包括問題數(shù)據(jù)查找和問題數(shù)據(jù)寫入兩種。在進行數(shù)據(jù)質(zhì)量校驗的過程中,系統(tǒng)根據(jù)問題數(shù)據(jù)寫入和問題數(shù)據(jù)查找的情況自動創(chuàng)建或銷毀線程,同時應(yīng)用“數(shù)據(jù)切片”技術(shù)把數(shù)據(jù)按照線程的數(shù)量平均切分,配送到不同的線程以提升數(shù)據(jù)處理效率。利用多線程技術(shù)可以充分利用服務(wù)器的硬件資源,極
大地提升性能。
(3)基于元數(shù)據(jù)自動生成數(shù)據(jù)質(zhì)量校驗規(guī)則
數(shù)據(jù)質(zhì)量管理系統(tǒng)需要管理成千上萬的校驗規(guī)則,在提高校驗性能的同時也需要提高校驗規(guī)則配置的效率。元數(shù)據(jù)描述了數(shù)據(jù)庫表關(guān)系以及數(shù)據(jù)表字段的詳細信息,如字段類型、長度、數(shù)據(jù)來源、加密等級、數(shù)據(jù)質(zhì)量要求等。本文創(chuàng)新提出了基于元數(shù)據(jù)的數(shù)據(jù)質(zhì)量校驗規(guī)則自動生成功能,用戶只需在界面選擇需要進行校驗的表和字段,系統(tǒng)即可根據(jù)元數(shù)據(jù)中的數(shù)據(jù)質(zhì)量要求自動生成校驗規(guī)則,提高了規(guī)則配置的準確性,并且大大節(jié)省了人工成本,提高了規(guī)則配置效率。目前,營銷、生產(chǎn)、財務(wù)、人力資源等業(yè)務(wù)領(lǐng)域約3 255條校驗規(guī)則均通過此方法生成。
4系統(tǒng)實踐
4.1 性能對比測試
實際測試表明,分布式系統(tǒng)具有優(yōu)秀的水平擴展性,隨著數(shù)據(jù)量的增長,Hadoop集群的執(zhí)行時間幾乎呈線性增長。應(yīng)用集中式架構(gòu)的平均數(shù)據(jù)讀取速度為150 MB/s,讀取1 TB的數(shù)據(jù)需要約2 h;Oracle的處理時間則呈指數(shù)級增加,如圖4所示。可以看出,當數(shù)據(jù)量達到500 GB時,在Oracle上執(zhí)行SQL已出現(xiàn)性能瓶頸。
4.2應(yīng)用情況
目前分布式數(shù)據(jù)質(zhì)量管理系統(tǒng)已完成開發(fā),并在廣西電網(wǎng)公司、廣東電網(wǎng)公司試運行,根據(jù)現(xiàn)場收集的運行數(shù)據(jù),應(yīng)用分布式數(shù)據(jù)質(zhì)量管理系統(tǒng),最高可實現(xiàn)數(shù)據(jù)質(zhì)量校驗效率比原集中式系統(tǒng)提升15倍左右。
服務(wù)器配置信息見表1。
數(shù)據(jù)質(zhì)量校驗情況見表2。
從表2可以看出,分布式系統(tǒng)的性能比集中式系統(tǒng)有數(shù)量級的提升。由于客觀因素的限制,廣東電網(wǎng)公司的被校驗庫和Hadoop集群部署在不同的子網(wǎng)絡(luò),受到網(wǎng)絡(luò)和防火墻的影響,校驗時間要長于廣西電網(wǎng)公司。
5 結(jié)束語
本文針對電力企業(yè)數(shù)據(jù)質(zhì)量管理工作的現(xiàn)狀和難點,提出了分布式數(shù)據(jù)質(zhì)量管理系統(tǒng)解決方案,通過開展分布式存儲和計算關(guān)鍵技術(shù)研究,初步搭建大數(shù)據(jù)存儲及計算平臺,并針對數(shù)據(jù)質(zhì)量管理子系統(tǒng)進行了技術(shù)架構(gòu)升級和試點應(yīng)用,原需45 h的數(shù)據(jù)質(zhì)量校驗工作時間縮短至3h以內(nèi),有效提升了系統(tǒng)處理和分析效率,同時為中國南方電網(wǎng)公司數(shù)據(jù)中心架構(gòu)升級工作儲備了技術(shù)基礎(chǔ)。
下一篇:返回列表