ETL工具在構建完整的數據倉庫體系結構中的運用探討論文
ETL工具在構建完整的數據倉庫體系結構中的運用探討論文
ETL,是英文 Extract-Transform-Load 的縮寫,用來描述將數據從來源端經過抽取(extract)、轉換(transform)、加載(load)至目的端的過程。ETL是構建數據倉庫的重要一環,用戶從數據源抽取出所需的數據,經過數據清洗,最終按照預先定義好的數據倉庫模型,將數據加載到數據倉庫中去。以下是學習啦小編今天為大家精心準備的:ETL工具在構建完整的數據倉庫體系結構中的運用探討相關論文。內容僅供參考,歡迎閱讀!
ETL工具在構建完整的數據倉庫體系結構中的運用探討全文如下:
1 數據倉庫的體系結構
數據倉庫是面向主題的、集成的、相對穩定的、反映歷史變化的數據集合。它通常是指一個數據環境,通過提供當前和歷史數據來輔助決策支持。數據倉庫的組成部分有:數據倉庫數據庫、ETL 工具、元數據、訪問工具、數據集市、數據倉庫管理等。通過對多個異構數據源進行有效的集成,并按照應用主題進行數據重組和展示,就形成了數據倉庫系統。由此,根據應用需求的不同,數據倉庫的體系結構可以分為以下四種:
(1)兩層結構:源數據系統經過處理直接加載到數據倉庫;(2)獨立型數據集市:加工成多個獨立的數據集市來滿足多種應用需求;(3)依賴型數據集市和操作型數據存儲:完整的數據倉庫,多個源數據系統先集成到操作型數據存儲(ODS),再轉換、加載到數據倉庫,最后形成部門級數據集市。文章描述的就是此體系結構的構建過程。它的特點是:整合多個復雜的源數據系統;實現各種復雜的數據轉換處理;提供多層次的數據訪問;滿足多部門的即獨立又交叉的應用需求;(4)邏輯型數據集市和實時數據倉庫:沒有獨立的數據集市,體現數據加工的實時性。
2 數據倉庫的ETL 過程
ETL 過程是數據加工處理過程的統稱,包括三個部分:抽取、轉換和加載。它的目的是為決策支持應用提供一個單一的、權威的數據源。數據倉庫的ETL 過程是整個系統實施的關鍵環節,關系到數據倉庫的建設成效。無論從理論上還是從實踐上來說,運用ETL 工具是一個必需的、明智的選擇。文章以Oracle 公司的軟件產品ODI11g 來講解。
3 ETL 的技術難點
數據倉庫的數據存儲有四個層次,即源數據系統、ODS、企業級數據倉庫和數據集市。運用ETL 工具就是實現數據在這四個層次中逐層遞進的三級加工處理過程。雖然每一級處理都具有抽取、轉換、加載的處理,但是它們的側重點還是有區別的。
(1)源數據系統到ODS 過程:將多個異構數據源集成到統一的數據集結區ODS,重點是抽取處理,兼有字符集轉換、數據類型轉換等處理。(2)ODS 到企業級數據倉庫過程:將操作型數據轉換成事件型數據,重點是轉換處理,包含清洗、調和、導出、匹配、合并等多種復雜處理。(3)企業級數據倉庫到數據集市過程:將數據按照應用需求進行組合,重點是加載處理,還涉及到索引、更新等處理。下面,結合三級處理,從四個方面描述常見的技術難點及應對。
3.1 數據抽取
(1)靜態抽取:為了保證源數據的一致性和完整性,應該抽取操作型數據相關的代碼數據和編碼數據。這些數據特點是量小,變化小,可以采用全量刷新方法。ODI 工具中,編制一個接口,指定源表和目標表,確定LKM 和IKM,即可實現。此方法也適用于初次抽取操作型數據。(2)增量抽取:源數據系統包含大量的業務數據,必須通過增量更新的方法才能做到有效的抽取。因此,增量更新問題是一個最重要、最根本的技術問題。ODI 工具內置的變化數據捕獲機制(CDC)能有效地解決這個問題。實現思路如下:為源表指定日記知識模塊JKM;將源表添加到CDC 列表,并啟動日記;編制接口時,勾選日記記錄的數據,并指定增量模式的IKM。此外,還可以通過編制ODI 過程代碼來利用現有的物化視圖實現增量更新。
3.2 數據轉換
(1)關鍵維度的統一:多個源數據系統集成后,首先面臨的問題就是關鍵維度的統一。不同的業務系統有各自不同的關鍵維度(如納稅人識別號,納稅人電子檔案號),這就必須統一到唯一的維度。解決這個問題,可以采用對照表的方法。實現思路如下:選定主要的、核心的業務系統的關鍵維度;以此維度為主,建立其他業務系統的維度對照表;ODI 工具中,編寫接口時,增加連接維度對照表,增加字段映射。
(2)數據表的合并:業務系統中可能存在同一事件信息存儲于不同的數據表中的情況。ETL 過程需要將分散的數據轉換到一個數據表。雖然可以編寫多個ODI 接口實現,但是不可避免地存在數據完整性風險,且編制繁瑣、執行效率低下。建議采用多個源數據集來實現,思路如下:在ODI 接口中,配置多個源數據集,并設置數據集的順序和關系;以第一順序數據集為主,分別設置目標數據項映射關系;指定帶有多數據集功能的標準LKM 和IKM。
(3)數據表的拆分:業務系統的單一數據表中可能包含同一維度下的不同粒度的數據,這時就需要將源表數據拆分成多個目標表。常見的情況是,納稅人財務報表數據表中同時包含月報、季報和年報。由于ODI 11G 版本中限定每一個接口只能有一個目標數據存儲,所以必須采用新的方法來處理。這里,介紹兩種方法來實現。a.編制多個接口,封裝在一個程序包中。步驟如下:分別編制多個接口對應多個目標表,將最后一個接口的“清除日記表”選項設置為真,其余接口該項為假;建立程序包,按順序導入這批接口。b.改造標準IKM,添加插入數據步驟。步驟如下:編制普通的ODI 接口,實現一個目標表的加工;模擬執行接口,并分析執行語句和順序;獲取與目標表相關的語句;復制IKM,并編輯,按照原目標表語句增加其余目標表的執行步驟;指定新的IKM。此方法優點是執行效率高,缺點是改造IKM 需要一定的技術儲備,且增加了項目的整體復雜度。
(4)最新有效數據的問題:分析源數據系統的業務規則時,會發現有多次記錄業務操作數據的情況,例如更正申報。這就要求在數據轉換時,應以操作時間最新或者操作序號最大的記錄作為有效數據。解決的方法有兩種:a.編寫2 個接口,利用臨時表存儲最新操作時間或最大操作序號,然后再關聯源表數據,最后將2 個接口依次導入程序包。b.改造IKM 接口,增加2 個新步驟,修改1 個原步驟,具體如下:新增步驟-創建臨時表;新增步驟-在臨時表中插入滿足業務邏輯的最新有效憑據(時間或序號);修改步驟-在目標表中插入關聯到臨時表的源表數據。
3.3 數據加載
(1)創建目標表主鍵:雖然在接口中可以指定目標表的主鍵,但是標準的ODI 處理并不能自動生成該主鍵。為此,改造IKM 來實現這個重要功能:選擇適當的IKM,為其增加一個選項,并指定類型和默認值;在原IKM 步驟中,增加一個創建主鍵的新步驟,并在此步驟的選項欄次中勾選新增選項。
此方法的原理是通過一個自定義選項來控制IKM 的邏輯判斷,由用戶通過配置來決定是否執行此步驟。
(2)實現增量的全量加載在企業級數據倉庫和數據集市中,常常需要對不同粒度的數據進行加載,例如將月度數據加載到年度分析中。為此,文章提出以增量的全量方式加載數據,提高效率。具體思路如下:獲取增量中所有的月度;刪除目標表中包含這些月度的年度數據;重新獲取源表中包含這些月度的數據,并加工成年度數據;加載年度數據到目標表。
數據倉庫是包含一系列理論和技術的綜合環境,它的目的是為數據分析和決策支持提供歷史的、豐富的、可用的數據。由此,數據的存儲和處理也緊緊圍繞這一目的而展開。在這個過程中,工具軟件有著不可替代的重要作用。很多開發建設理念就集成在工具軟件的應用中。只有充分理解其基礎功能,將其不斷改造完善,才能使這些理念和規則落地,支撐起整個數據倉庫。