張月圓
(內蒙古電力營銷服務與運營管理中心,呼和浩特 010020)
現代企業(yè)對于業(yè)務時效性的要求不斷提高,一些業(yè)務甚至要做到實時響應。隨著時代的發(fā)展,傳統的由上至下的數據倉庫只能做到對數據的快速響應,而無法對業(yè)務做出快速響應,因此有必要對傳統的數據倉庫模式進行革新,創(chuàng)建起一套分層式、分布式的數據倉庫架構,能夠同時對數據和業(yè)務做出快速響應。此外,為了實現數據的規(guī)范化管理,提高數據的使用質量,需要將異構的、分散的數據列入統一的標準數據庫中,在此基礎上建立起規(guī)范實用的數據倉庫。本文分析了某化工類科技數據庫,其中存儲了不同格式的文本數據,包括XML、EXCEL 等,整體的數據存儲量龐大,由于數據結構和數據存儲方式存在顯著差異,導致數據庫無法對業(yè)務變更進行適應,最終影響了集成后數據的質量。受到數據異構性的影響,高度集成的數據庫正面臨數據缺失、數據冗余、數據重復、數據格式紊亂、數據不統一等多重問題?;诖耍疚膭?chuàng)建了一種基于云計算的元數據管理與數據集成系統,引用ETL抽取技術,實現數據的提取、轉換及加載。
在大數據時代,各種類型的數據量激增,由此造成了數據價值密度低的問題,這對于數據處理速度提出了更高要求,才能滿足現實中的數據應用需求。著眼于化工類科技數據的管理問題,本文建立起基于大數據的元數據管理架構,展示如下圖1:

圖1 元數據管理整體架構Fig.1 Overall architecture of metadata management
根據上圖1,元數據管理架構包含4 個層次,即異構原始數據獲取、數據中轉區(qū)、數據存儲以及數據統計可視化展示。構建數據倉庫的初衷是為了提高數據質量,在應用中表現出“面向主題、高度集成”的特征,并且二者之間具有內在邏輯,即數據集成是為了更好地實現主題查詢,可視化的查詢及分析結果能夠更好地指導決策。
把ETL流程細分為小粒度的執(zhí)行區(qū)間,能夠顯著改善異構數據集成后的數據質量。基于該思想,本文在抽取、轉換、加載階段建立對應的元模型。其中,利用ETL 模型對數據集成過程中的不同階段進行處理,實現了數據抽取、數據轉換、數據加載的獨立運作;在引用映射機制以后,在數據抽取過程中打破源數據的異構性,為后續(xù)的數據集成操作創(chuàng)造條件,有利于實現批量處理的目的。利用Hadoop分布式處理技術進行數據處理,采用分布式的處理方式替換集中式的處理方式,不僅大幅提高了數據處理效率,而且顯著縮減了資源耗費。在持久化業(yè)務數據模型的支撐下,在標準化的數據存儲結構下,可以對集成后有價值的數據進行快速分析。采取分層管理的策略,數據倉庫以分步作業(yè)的方式進行運作,各層擁有簡明的處理邏輯。
在ETL流程中增加了抽取元模型、轉換元模型和加載元模型,三個模型應用共同的元數據,抽取環(huán)節(jié)、轉換環(huán)節(jié)、加載環(huán)節(jié)之間存在關聯。
在對元數據進行抽取過程中,包含多種不同類型的表格。因此,基于以上的分析認為,將元模型的多數據源抽取邏輯設計為如圖2所示。

圖2 抽取元模型流程Fig.2 Extraction metamodel process
如下圖3展示了元數據轉換流程,即利用數據表字段關聯表實現抽取。元模型抽取后,數據表描述表與抽取后數據字段描述表的關聯,繼而確定抽取數據范圍,并將數據用于轉換。目標庫中的表字段與源數據庫抽取后的表字段在字段屬性、存儲格式等方面存在差異,舉例來說,在源數據庫中,利用存儲數據“01、02”來表示人員性別“男、女”,而在目標庫中,則利用存儲數據“1、2”來表示人員性別“男、女”;在源數據庫中,利用“aa、ab”來表示單位類型“企業(yè)、高?!?,而在目標庫中,則利用“AA、AB”來表示“企業(yè)、高?!薄Υ?,在數據轉換過程中需要引用映射轉換機制,其實現過程是:利用數據轉換關聯表調取數據轉換函數描述表中的數據轉換函數,基于數據轉換映射規(guī)則實現數據轉換,利用轉換關聯表把數據字段信息轉錄于轉換后數據字段描述表和轉換后數據表描述表之中,以供數據加載之需。

圖3 元數據轉換流程Fig.3 Metadata conversion process
加載元模型的過程如圖4 所示。通過圖4 的接在,如增加了字段,則表明加載成功,如沒有則表示加載不成功。

圖4 元數據加載Fig.4 Metadata load
結合科技資源管理數據庫的特征,首先確立庫級映射、表級映射、字段級映射等3層映射規(guī)則,然后在此基礎上設定映射關系R=( )S,A,U,其中,S、A依次表示源庫模型和目標庫模型下的各個實例組合,U表示<S,A>內部存在的算法公司、邏輯規(guī)則等。
1)庫級映射:Ra表示目標庫,Rs表示源庫,設定二者之間存在對應關系Lr。
2)表級映射:Ta表示目標庫中的數據表,Ts表示源數據庫中的數據表,設定二者之間存在對應關系Lt。
3)字段級映射:X表示源表Ts中的字段集合,Y表示目標表Ta中的字段集合,并且X 字段集合中的字段xk基于特定規(guī)則f而對應于Y 字段集合中的字段yl,這種對應關系表示為f(xk,yl)。
結合上述科技資源的屬性,然后再明確函數f在映射過程中的規(guī)則:
1)清洗函數的映射規(guī)則為:刪除Ts源表中xi字段中的無用字段;
2)字段類型轉換函數映射規(guī)則。在確定字段級別之間映射關系后,針對不同表中yi與xi的字段類型差異,需對字段的類型進行轉換。
3)字段存儲格式轉換函數映射規(guī)則:在明確字段級映射關系之后,考慮到Ta目標表中yj字段集合的字段存儲格式與Ts源表中xi段集合的字段存儲格式存在差異,因此有必要轉換字段存儲格式。
映射規(guī)則反映了不同數據之間的映射關系,并以元數據的形式進行存儲。舉例來說,要想集成一批數據,首先要設定映射規(guī)則,然后匹配于存儲在元數據庫中的映射模板,若二者一致,即可繼續(xù)推進,若二者不一致,需要解析后再存儲。由此,針對映射規(guī)則的定義,其本質是對元數據進行修訂描述的過程。下圖5展示了映射規(guī)則元模型的構造,具體包括:映射規(guī)則信息表、函數參數信息表、庫級映射信息表、字段與映射規(guī)則關系表、表級映射信息表、清洗轉換函數信息表、字段級映射信息表,它們囊括了設定映射規(guī)則所需的各種信息,同時也包含了映射轉換函數的相關信息。

圖5 映射規(guī)則架構Fig.5 Mapping rule architecture
化工科技類資源管理數據的類型多樣,涉及任務書、申報書等,不僅整體的數據體量龐大,而且不同數據采用了不同的存儲格式,為了更好地服務于科技資源管理數據集成業(yè)務,需要構造元模型并確立庫、表、字段映射關系,同時遵循統一規(guī)范進行數據存儲??紤]到源數據的異構性,必須對源數據執(zhí)行數據清洗、字段格式轉換、字段類型轉換等處理,從而為數據集成做好準備。旨在檢驗基于元模型控制的ETL模型以及相應映射規(guī)則對于改善集成數據質量的效果,本節(jié)將之與ETL 集成模型進行對比,并從完整性、有用性、準確性、時效性等4個方面對數據質量進行評估。下圖6展示了不同模型在清洗階段的數據有用率,根據結果看出,基于元模型的ETL抽取得到的數據有用率要明顯高于傳統的ETL抽取方式。

圖6 數據有用性對比圖Fig.6 Comparison of data usefulness
從理論上來講,本文研究工作足以批量構建ETL流程,有能力對海量數據進行批量處理,從而更好地滿足大數據環(huán)境下的應用需求。為了對此進行檢驗,通過實驗方法測試了元模型控制的ETL 模型在10MB、100MB、200MB、500MB 數據量下的集成效率,并與傳統ETL集成模型進行比對。

圖7 集成效率對比Fig.7 Comparison of integration efficiency
基于傳統的ETL模型,文章在原框架下創(chuàng)新性地新增了元模型,同時界定了相應的映射規(guī)則,這不僅達成了數據集成功能,而且顯著改善了集成后的數據質量,加快了數據的抽取轉換速度。另外,構造的元數據工具和映射規(guī)則解析器,能夠為批量構建ETL流程提供支撐,這不僅解放了人力,而且適應于大數據處理業(yè)務。由于筆者學識有限,本文研究尚有值得深化之處,比如,數據倉庫架構在其他領域的應用,元數據模型工具的改進等。