張月圓
(內(nèi)蒙古電力營銷服務(wù)與運營管理中心,呼和浩特 010020)
現(xiàn)代企業(yè)對于業(yè)務(wù)時效性的要求不斷提高,一些業(yè)務(wù)甚至要做到實時響應(yīng)。隨著時代的發(fā)展,傳統(tǒng)的由上至下的數(shù)據(jù)倉庫只能做到對數(shù)據(jù)的快速響應(yīng),而無法對業(yè)務(wù)做出快速響應(yīng),因此有必要對傳統(tǒng)的數(shù)據(jù)倉庫模式進行革新,創(chuàng)建起一套分層式、分布式的數(shù)據(jù)倉庫架構(gòu),能夠同時對數(shù)據(jù)和業(yè)務(wù)做出快速響應(yīng)。此外,為了實現(xiàn)數(shù)據(jù)的規(guī)范化管理,提高數(shù)據(jù)的使用質(zhì)量,需要將異構(gòu)的、分散的數(shù)據(jù)列入統(tǒng)一的標準數(shù)據(jù)庫中,在此基礎(chǔ)上建立起規(guī)范實用的數(shù)據(jù)倉庫。本文分析了某化工類科技數(shù)據(jù)庫,其中存儲了不同格式的文本數(shù)據(jù),包括XML、EXCEL 等,整體的數(shù)據(jù)存儲量龐大,由于數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)存儲方式存在顯著差異,導致數(shù)據(jù)庫無法對業(yè)務(wù)變更進行適應(yīng),最終影響了集成后數(shù)據(jù)的質(zhì)量。受到數(shù)據(jù)異構(gòu)性的影響,高度集成的數(shù)據(jù)庫正面臨數(shù)據(jù)缺失、數(shù)據(jù)冗余、數(shù)據(jù)重復、數(shù)據(jù)格式紊亂、數(shù)據(jù)不統(tǒng)一等多重問題?;诖耍疚膭?chuàng)建了一種基于云計算的元數(shù)據(jù)管理與數(shù)據(jù)集成系統(tǒng),引用ETL抽取技術(shù),實現(xiàn)數(shù)據(jù)的提取、轉(zhuǎn)換及加載。
在大數(shù)據(jù)時代,各種類型的數(shù)據(jù)量激增,由此造成了數(shù)據(jù)價值密度低的問題,這對于數(shù)據(jù)處理速度提出了更高要求,才能滿足現(xiàn)實中的數(shù)據(jù)應(yīng)用需求。著眼于化工類科技數(shù)據(jù)的管理問題,本文建立起基于大數(shù)據(jù)的元數(shù)據(jù)管理架構(gòu),展示如下圖1:
圖1 元數(shù)據(jù)管理整體架構(gòu)Fig.1 Overall architecture of metadata management
根據(jù)上圖1,元數(shù)據(jù)管理架構(gòu)包含4 個層次,即異構(gòu)原始數(shù)據(jù)獲取、數(shù)據(jù)中轉(zhuǎn)區(qū)、數(shù)據(jù)存儲以及數(shù)據(jù)統(tǒng)計可視化展示。構(gòu)建數(shù)據(jù)倉庫的初衷是為了提高數(shù)據(jù)質(zhì)量,在應(yīng)用中表現(xiàn)出“面向主題、高度集成”的特征,并且二者之間具有內(nèi)在邏輯,即數(shù)據(jù)集成是為了更好地實現(xiàn)主題查詢,可視化的查詢及分析結(jié)果能夠更好地指導決策。
把ETL流程細分為小粒度的執(zhí)行區(qū)間,能夠顯著改善異構(gòu)數(shù)據(jù)集成后的數(shù)據(jù)質(zhì)量?;谠撍枷?,本文在抽取、轉(zhuǎn)換、加載階段建立對應(yīng)的元模型。其中,利用ETL 模型對數(shù)據(jù)集成過程中的不同階段進行處理,實現(xiàn)了數(shù)據(jù)抽取、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)加載的獨立運作;在引用映射機制以后,在數(shù)據(jù)抽取過程中打破源數(shù)據(jù)的異構(gòu)性,為后續(xù)的數(shù)據(jù)集成操作創(chuàng)造條件,有利于實現(xiàn)批量處理的目的。利用Hadoop分布式處理技術(shù)進行數(shù)據(jù)處理,采用分布式的處理方式替換集中式的處理方式,不僅大幅提高了數(shù)據(jù)處理效率,而且顯著縮減了資源耗費。在持久化業(yè)務(wù)數(shù)據(jù)模型的支撐下,在標準化的數(shù)據(jù)存儲結(jié)構(gòu)下,可以對集成后有價值的數(shù)據(jù)進行快速分析。采取分層管理的策略,數(shù)據(jù)倉庫以分步作業(yè)的方式進行運作,各層擁有簡明的處理邏輯。
在ETL流程中增加了抽取元模型、轉(zhuǎn)換元模型和加載元模型,三個模型應(yīng)用共同的元數(shù)據(jù),抽取環(huán)節(jié)、轉(zhuǎn)換環(huán)節(jié)、加載環(huán)節(jié)之間存在關(guān)聯(lián)。
在對元數(shù)據(jù)進行抽取過程中,包含多種不同類型的表格。因此,基于以上的分析認為,將元模型的多數(shù)據(jù)源抽取邏輯設(shè)計為如圖2所示。
圖2 抽取元模型流程Fig.2 Extraction metamodel process
如下圖3展示了元數(shù)據(jù)轉(zhuǎn)換流程,即利用數(shù)據(jù)表字段關(guān)聯(lián)表實現(xiàn)抽取。元模型抽取后,數(shù)據(jù)表描述表與抽取后數(shù)據(jù)字段描述表的關(guān)聯(lián),繼而確定抽取數(shù)據(jù)范圍,并將數(shù)據(jù)用于轉(zhuǎn)換。目標庫中的表字段與源數(shù)據(jù)庫抽取后的表字段在字段屬性、存儲格式等方面存在差異,舉例來說,在源數(shù)據(jù)庫中,利用存儲數(shù)據(jù)“01、02”來表示人員性別“男、女”,而在目標庫中,則利用存儲數(shù)據(jù)“1、2”來表示人員性別“男、女”;在源數(shù)據(jù)庫中,利用“aa、ab”來表示單位類型“企業(yè)、高?!保谀繕藥熘?,則利用“AA、AB”來表示“企業(yè)、高?!?。對此,在數(shù)據(jù)轉(zhuǎn)換過程中需要引用映射轉(zhuǎn)換機制,其實現(xiàn)過程是:利用數(shù)據(jù)轉(zhuǎn)換關(guān)聯(lián)表調(diào)取數(shù)據(jù)轉(zhuǎn)換函數(shù)描述表中的數(shù)據(jù)轉(zhuǎn)換函數(shù),基于數(shù)據(jù)轉(zhuǎn)換映射規(guī)則實現(xiàn)數(shù)據(jù)轉(zhuǎn)換,利用轉(zhuǎn)換關(guān)聯(lián)表把數(shù)據(jù)字段信息轉(zhuǎn)錄于轉(zhuǎn)換后數(shù)據(jù)字段描述表和轉(zhuǎn)換后數(shù)據(jù)表描述表之中,以供數(shù)據(jù)加載之需。
圖3 元數(shù)據(jù)轉(zhuǎn)換流程Fig.3 Metadata conversion process
加載元模型的過程如圖4 所示。通過圖4 的接在,如增加了字段,則表明加載成功,如沒有則表示加載不成功。
圖4 元數(shù)據(jù)加載Fig.4 Metadata load
結(jié)合科技資源管理數(shù)據(jù)庫的特征,首先確立庫級映射、表級映射、字段級映射等3層映射規(guī)則,然后在此基礎(chǔ)上設(shè)定映射關(guān)系R=( )S,A,U,其中,S、A依次表示源庫模型和目標庫模型下的各個實例組合,U表示<S,A>內(nèi)部存在的算法公司、邏輯規(guī)則等。
1)庫級映射:Ra表示目標庫,Rs表示源庫,設(shè)定二者之間存在對應(yīng)關(guān)系Lr。
2)表級映射:Ta表示目標庫中的數(shù)據(jù)表,Ts表示源數(shù)據(jù)庫中的數(shù)據(jù)表,設(shè)定二者之間存在對應(yīng)關(guān)系Lt。
3)字段級映射:X表示源表Ts中的字段集合,Y表示目標表Ta中的字段集合,并且X 字段集合中的字段xk基于特定規(guī)則f而對應(yīng)于Y 字段集合中的字段yl,這種對應(yīng)關(guān)系表示為f(xk,yl)。
結(jié)合上述科技資源的屬性,然后再明確函數(shù)f在映射過程中的規(guī)則:
1)清洗函數(shù)的映射規(guī)則為:刪除Ts源表中xi字段中的無用字段;
2)字段類型轉(zhuǎn)換函數(shù)映射規(guī)則。在確定字段級別之間映射關(guān)系后,針對不同表中yi與xi的字段類型差異,需對字段的類型進行轉(zhuǎn)換。
3)字段存儲格式轉(zhuǎn)換函數(shù)映射規(guī)則:在明確字段級映射關(guān)系之后,考慮到Ta目標表中yj字段集合的字段存儲格式與Ts源表中xi段集合的字段存儲格式存在差異,因此有必要轉(zhuǎn)換字段存儲格式。
映射規(guī)則反映了不同數(shù)據(jù)之間的映射關(guān)系,并以元數(shù)據(jù)的形式進行存儲。舉例來說,要想集成一批數(shù)據(jù),首先要設(shè)定映射規(guī)則,然后匹配于存儲在元數(shù)據(jù)庫中的映射模板,若二者一致,即可繼續(xù)推進,若二者不一致,需要解析后再存儲。由此,針對映射規(guī)則的定義,其本質(zhì)是對元數(shù)據(jù)進行修訂描述的過程。下圖5展示了映射規(guī)則元模型的構(gòu)造,具體包括:映射規(guī)則信息表、函數(shù)參數(shù)信息表、庫級映射信息表、字段與映射規(guī)則關(guān)系表、表級映射信息表、清洗轉(zhuǎn)換函數(shù)信息表、字段級映射信息表,它們囊括了設(shè)定映射規(guī)則所需的各種信息,同時也包含了映射轉(zhuǎn)換函數(shù)的相關(guān)信息。
圖5 映射規(guī)則架構(gòu)Fig.5 Mapping rule architecture
化工科技類資源管理數(shù)據(jù)的類型多樣,涉及任務(wù)書、申報書等,不僅整體的數(shù)據(jù)體量龐大,而且不同數(shù)據(jù)采用了不同的存儲格式,為了更好地服務(wù)于科技資源管理數(shù)據(jù)集成業(yè)務(wù),需要構(gòu)造元模型并確立庫、表、字段映射關(guān)系,同時遵循統(tǒng)一規(guī)范進行數(shù)據(jù)存儲??紤]到源數(shù)據(jù)的異構(gòu)性,必須對源數(shù)據(jù)執(zhí)行數(shù)據(jù)清洗、字段格式轉(zhuǎn)換、字段類型轉(zhuǎn)換等處理,從而為數(shù)據(jù)集成做好準備。旨在檢驗基于元模型控制的ETL模型以及相應(yīng)映射規(guī)則對于改善集成數(shù)據(jù)質(zhì)量的效果,本節(jié)將之與ETL 集成模型進行對比,并從完整性、有用性、準確性、時效性等4個方面對數(shù)據(jù)質(zhì)量進行評估。下圖6展示了不同模型在清洗階段的數(shù)據(jù)有用率,根據(jù)結(jié)果看出,基于元模型的ETL抽取得到的數(shù)據(jù)有用率要明顯高于傳統(tǒng)的ETL抽取方式。
圖6 數(shù)據(jù)有用性對比圖Fig.6 Comparison of data usefulness
從理論上來講,本文研究工作足以批量構(gòu)建ETL流程,有能力對海量數(shù)據(jù)進行批量處理,從而更好地滿足大數(shù)據(jù)環(huán)境下的應(yīng)用需求。為了對此進行檢驗,通過實驗方法測試了元模型控制的ETL 模型在10MB、100MB、200MB、500MB 數(shù)據(jù)量下的集成效率,并與傳統(tǒng)ETL集成模型進行比對。
圖7 集成效率對比Fig.7 Comparison of integration efficiency
基于傳統(tǒng)的ETL模型,文章在原框架下創(chuàng)新性地新增了元模型,同時界定了相應(yīng)的映射規(guī)則,這不僅達成了數(shù)據(jù)集成功能,而且顯著改善了集成后的數(shù)據(jù)質(zhì)量,加快了數(shù)據(jù)的抽取轉(zhuǎn)換速度。另外,構(gòu)造的元數(shù)據(jù)工具和映射規(guī)則解析器,能夠為批量構(gòu)建ETL流程提供支撐,這不僅解放了人力,而且適應(yīng)于大數(shù)據(jù)處理業(yè)務(wù)。由于筆者學識有限,本文研究尚有值得深化之處,比如,數(shù)據(jù)倉庫架構(gòu)在其他領(lǐng)域的應(yīng)用,元數(shù)據(jù)模型工具的改進等。