文/韓丹
隨著信息化建設的發展,企業斥巨資建立了眾多信息系統,但由于企業信息系統是逐步建立起來的,基于不同時期信息技術而建立起來的業務系統采用不同數據庫并以不同的表現形式描述數據,因此形成了大量的信息孤島,造成大量的冗余數據和用戶的重復勞動。
ODI作為典型的ETL工具,本身采用JAVA開發,可以實現跨平臺,它不僅能夠支持幾乎所有的關系型數據庫,還能支持多維數據庫,適用于異構信息系統間的數據交換。另外,針對傳統ETL工具需要獨立的ETL服務器,性能較差,投入成本較高的問題,ODI不需要新的服務器,利用已有數據庫資源,建立接口通道,實現數據的批量裝載。其可擴充性強、易管理和低成本的特性適用于企業異構信息系統數據集成的使用。
以國內某大型能源集團為例,該集團業務系統多采用關系關系型數據庫存放數據,而預算管理系統采用多維多維數據庫存放數據。與關系型數據庫不同的是,多維數據庫采用立方體塊存儲模式,即將數據存放在一個n維數組中,而不是像關系數據庫那樣以記錄的形式存放。兩個系統的集成可以簡單理解為二維數據和多維數據之間的相互轉換,如圖1所示。
由于多維數據庫的特性導致預算管理系統與其他業務系統對接時,應多考慮如何定義業務規則實現數據之間的映射,而不用考慮具體實現細節。而且對于生產性企業業務數據粒度往往很細,從而導致數據體量大。在眾多ETL工具中,能滿足短時間內大體量數據的傳輸要求而且做到不增加額外服務器成本的,ODI無疑是個不錯的選擇。
(1)搭建物理體系架構,定義各自技術及其數據服務器、物理架構、物理代理。在ODI工具中建立連同多維和關系的雙向數據傳輸隧道。

圖1

圖2
(2)搭建邏輯體系架構,定義各自技術及其關聯的邏輯架構、邏輯代理。通過邏輯架構將物理架構與接口模型進行連通。
(3)通過反向工程知識模塊構造數據模型,分別將多維數據庫中的數據和關系數據庫中的數據通過逆向映射為ODI識別的數據格式。
(4)通過加載知識模塊可以從逆向表中有效地提取數據到臨時存儲區。
(5)通過集成知識模塊用于有效地將臨時存儲區中的數據轉換為目標表。
以該能源集團銷售公司預算應用為例,如圖2所示,該應用采用多維數據庫存儲,數據庫中有6個維度,分別為科目維、組織維、期間維、場景維、區域維、產品維。每個維度上分別有一個或多個維值:科目維包含銷售收入、銷售成本、銷售毛利;組織維包含銷售公司;期間維包含1月、2月、3月、4月;場景維包含預算、上年預計;區域維包含區域1、區域2、區域3、區域4、區域5;產品維包含產品1、產品2、產品3。每個數據都是由6個維度叉乘得出。假如一個數據塊之存儲2個數據,那么8個數據需要4個數據塊存儲。而多維數據轉化為二維數據后則在關系表中體現為8行記錄,每個維度相應的轉化為字段,而行記錄則是維值和數據。
本文使用ODI工具從實踐角度設計了一個多維數據庫和關系數據庫間數據傳輸的接口模型,該模型可以讓開發人員集中精力定義業務規則,而不用考慮實現細節。通過該模型打破企業預算管理系統數據孤島的現狀,輕松實現異構數據集成。本文所運用的技術方法對信息系統具有一定的通用性,可為其他即將實行信息系統數據集成的企業集團提供借鑒。使更多的人更充分地使用已有數據資源,減少重復勞動,節約建設成本。