摘要:數據映射在數據倉庫項目中扮演十分重要的角色,它是ETL開發的前提條件,也是ETL開發過程中詳細設計的一部分。本文在中國太平洋保險公司(CPIC)建設企業數據倉庫(EDW)的項目背景下對企業數據倉庫中的元數據應用作了研究,記述一個簡單的元數據驅動的數據映射工具的開發過程,以說明元數據對數據集成工具開發的重要性。
關鍵詞:數據映射;元數據應用;數據集成
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)31-0786-03
Application of Metadata in Development of A Data Mapping Tool
YU Qian-cheng
(Computer College, North Nationality University, Yinchuan 750021, China)
Abstract: Data mapping in the data warehouse project plays a very important role, it is a prerequisite for the development of ETL, ETL is also in the process of developing the detailed design of the part. In this paper, China Pacific Insurance Company (CPIC) building enterprise data warehouse (EDW) project against the background of the enterprise data warehouse metadata in the application of research, recording a simple metadata-driven data mapping tool for the development process, to demonstrate that Metadata for data integration tools of the importance of the development.
Key words: Data mapping; Metadata application; Data integration
1 開發數據映射工具的必要性
數據倉庫項目中,在從源系統到原子層的ETL過程中,由于數據加載功能的復雜性,無法用DataStage Job直接開發實現數據加載,所以用PL/Sql開發存儲過程(SP stored procdure),DataStage Job調用SP實現數據加載,每個目標表對應一個SP。
數據加載根據目標標和源表的類型不同采用不同的加載處理策略,共有8種加載策略。每種加載策略下的SP的編寫思路是固定的,僅僅是所處理的不同表的字段不同。因此可以按加載策略提供SP編寫模板來實現SP代碼自動生成。
需要一個數據映射工具抽取出源表和目標表中的字段,由映射組按加載策略填寫字段映射關系,將字段映射關系存入表Tb_Mapping_Column,SP代碼自動生成工具讀取表Tb_Mapping_Column中的字段映射關系并套用SP模板來自動產生每個目標表對應的加載SP代碼。
2 數據映射工具的開發實現
數據映射工具的工作原理如圖1所示,先由Mapping組開發人員填寫實體映射關系;使用映射工具讀取DBMS的系統表,得到源表和目標表的表名,字段名,字段類型和長度等元數據產生空白的數據映射關系列表;Mapping組開發人員根據加載策略填寫字段映射規則;使用映射工具將保存到數據庫中;代碼生成工具利用字段映射關系套用SP模板生成SP代碼。
■
圖1 數據映射工具的功能流程圖
數據映射工具用Microsoft Office Excel實現,采用VBA編寫宏代碼,使用DAO(Data Access Object)連接建立在SqlServer2000下的元數據倉庫。
2.1 填寫基本信息
首先要在加載策略這個Sheet填寫數據庫連接信息等基本信息,涉及五個數據庫:元數據倉庫ETL、源數據庫SDATA、源數據結構庫SDATADDL、目標數據庫PDATA,目標數據結構庫PDATADDL,元數據倉庫ETL主要用來保存生產的映射關系,該庫下有兩個表TB_MAPPING_ENTITY和Tb_Mapping_Column。
2.2 填寫實體映射關系
實體映射定制出源數據表實體與目標表實體的映射關系,由Mapping組填寫。同時需要定制出加載策略;還可以指定每個表的主鍵,但不是一定需要指定;但對于I3加載策略時一定要指定主鍵。對于多源表時,需用\";\"進行表名間的分隔。實體映射中的表名一定要大寫。
必須指定負責人,此負責人為代碼生成時腳本的負責人;
具體模板如圖3所示。
Mapping組開發人員填寫每個ETL任務的實體映射關系,映射工具執行VBA宏代碼從Excel單元格中讀取實體映射關系并保存在TB_MAPPING_ENTITY(實體映射關系表)表1中。
2.3 產生空白的字段映射關系列表
通過excel模板工具欄上的DataMaping菜單選項運行映射工具,點擊后出現如圖4所示界面。
列表框中列出的源表和目標表是映射工具執行VBA宏代碼從TB_MAPPING_ENTITY表中讀取出的。
通過選取制作Mapping表選項中的一個任務時,然后按源表、目標表字段插入按鈕,程序會從配置的數據庫提取相關的信息并產生一個新的Excel Sheet來生成一個字段映射關系列表。列表如圖5所示。
這一過程是從DBMS的系統表中讀取源表和目標表的表名,字段名,字段類型和長度等元數據的過程,由于不同的DBMS采用的元模型不同,所以映射工具需要根據不同的DBMS編寫該部分代碼。
2.4 填寫映射規則
人工通過模型設計人員的要求進行映射規則填寫,這一步驟是整個映射過程中花費時最長的,如果不使用映射工具會花更多的時間。人工進行映射后生成的如圖6所示的結果。
生成映射規則時的說明:
關聯關系列填寫規則:0表示左關聯;1表示內關聯;
Where條件列填寫規則:可以在多格中填寫但是必須寫清多格條件中的關系 ,是and或or;
關聯條件填寫規則:在對應的第一個源表行上寫上相應的關聯條件,并填寫在對應一格內,并帶上別名,別名命名規范為源表名不同時按順序定義為T1,T2,T3,…;
分組標示那列在使用了聚合函數的列需填寫標志為'1',無使用聚合函數的填寫'0',如果映射沒有使用聚合函數的不須填寫此列,如果用了聚合函數的而沒有填寫標志,則代碼生成器不會生成Group by 項導致代碼錯誤;
2.5 保存映射成果
在上圖中我們可以看到映射后的結果表;在確認無誤后通過映射工具插入數據庫,為代碼生成器做好準備。
在映射好以后,通過選取要寫入數據庫的任務后,然后選取”插入Mapping表到數據庫”按鈕,保存映射成果。從而就為代碼生成器做好代碼生成的一切準備了。
3 結束語
數據映射工具能夠大大加快映射進度,為代碼生成器做好代碼生成的準備工作。能夠進一步提高實施隊部的專業服務水平,提高項目的交互能力,從而達到節約項目成本。
參考文獻:
[1] Poole J.公共倉庫元模型開發指南[M].彭蓉,譯.北京: 機械工業出版社,2004.
[2] Marco D.元數據倉儲的構建與管理 [M].張銘,譯.北京:機械工業出版社,2004.
[3] 王彥龍.企業級數據倉庫(EDW)原理設計與實踐[M].北京:電子工業出版社,2006.