數據倉庫的ETL抽取-轉換-裝載


ETL是數據倉庫建設中一個最重要和具有挑戰性的工作,也是一個耗時而且費勁的工作。

數據抽取

       數據倉庫與操作型系統數據抽取的有一些:數據倉庫必須從不同的系統中抽取數據;必須根據增量裝載工作和初始完全裝載的變化來抽取數據;而操作型系統只需要一次性抽取和數據轉換。

       數據抽取的要點

       數據源確認:確認數據的源系統和結構;

       抽取方法:針對每個數據源,定義抽取過程是人工抽取還是基於工具抽取;

       抽取頻率:對於每個數據源,確定數據抽取的頻率,每天、每星期、每季度;

       時間窗口:對於每個數據源,表示抽取過程進行的時間窗口;

       工作順序:決定抽取任務中某項工作是否必須等到前面的工作成功完成才能開始;

       異常處理:決定如何處理無法抽取的輸入記錄;

 

數據源確認

        首先確認是否擁有源系統提供需要的數據;然后,從源系統中建立每一個數據元素對應的正確的數據源;進行論證來保證確認的數據源是真正需要的。

數據抽取技術

        操作型系統的源數據一般來說分當前值和周期性狀態兩類。當前值,源系統中的大多數數據屬於這個類型,這里存儲的屬性值代表當前時刻的屬性值,一般這種值在數據庫中只保存一條記錄;周期性狀態值,屬性值存儲的是每次變化發生時的狀態,在每一個時間點,狀態值根據新值有效的時候進行存儲,這個類型的數據變化的歷史存儲在源系統本身中,一般在數據庫中保存多條記錄。

       從源操作型系統中抽取數據主要分靜態數據和修正數據兩種類型。靜態數據是在一個給定時刻捕獲的數據,就像是相關源數據在某個特定時刻的快照,一般在數據倉庫的初始裝載時使用靜態數據捕獲。修正數據也稱為追加的數據捕獲,嚴格來說它並不是增加的數據,而是最后一次捕獲數據后的修正。追加的數據捕獲可能時立刻進行的或者延緩的。

       在立即型數據捕獲中,數據抽取是實時的,當交易發生的時候就會在源數據庫和文件中發生,共有三種不同的選擇:1)通過交易日志捕獲,這個技術在操作系統中沒有額外的開銷,因為交易日志的記錄本來就是交易處理的一部分,但必須保證日志在文件刷新之前已經抽取了所有的記錄,並且必須保證所有的源系統都是數據庫應用系統;2)在數據庫觸發器中捕獲,這種捕獲是在源系統中發生的,因此非常可靠,但會增加開發負擔和源系統增加額外開銷,也同樣需要保證全都是數據庫應用程序的源系統;3)從源應用程序中捕獲,這個方法可以用在所有類型的源數據中,但是必須修改相關的寫入源文件和數據庫中的應用程序。

      延緩的數據捕獲分兩種,1)基於日期和時間標記的捕獲,這項技術首先是假設所有的相關源記錄中包括了日期和時間的標記。2)通過文件的比較來捕獲,也叫做快照微分技術,它是通過比較源數據的兩個快照進行工作的。

下面圖表是各種捕獲技術的優缺點比較:

 

數據轉換

         所有抽取的數據必須轉換為數據倉庫可用的數據,擁有可以用來進行戰略決策的信息,是數據倉庫最根本的原則。

         數據轉換的基本任務:選擇、分離/合並、轉化、匯總和豐富。

         數據轉換的主要類型:格式修正、字段解碼、計算值和導出值、單個字段的分離、信息的合並、特征集合轉化、度量單位的轉化、日期/時間轉化、匯總和鍵的重新構造。

        數據的整合和合並:這個部分主要有兩個問題,實體識別問題和多數據源問題。

        維度屬性的轉換:

        如何實施轉換:使用轉化工具,自動的工具會提高效率和准確性,並且轉換參數和規則會被作為元數據存儲起來,但是初始成

        本較高,而且也不是所有的轉換都能使用工具實現;手工技術,這種方法會帶來復雜的編碼和測試,而且元數據比較難處理。

 

數據裝載

         數據的裝載有三種類型:初始裝載、增量裝載和完全刷新。

         數據准備好之后,有四種把數據應用到數據倉庫的方式:

         裝載:清空原有表再把數據裝載進去;

         追加:直接往表里追加數據,當一個輸入記錄與已經存在記錄重復時,需要定義時丟棄還是插入一條新的記錄;

         破壞性合並:如果輸入記錄的主鍵與一條已經存在的記錄的鍵互相匹配,那么就對匹配的目標記錄進行更新;

        建設性合並:如果輸入記錄的主鍵與已有記錄的鍵匹配,那么就保留已有的記錄加入輸入的記錄。

數據在初始裝載完成后,可以通過更新和刷新兩種方法對數據倉庫的數據進行維護:

           更新:對數據源中增加的變化的應用;

           刷新:在特定周期中完全重新裝載。

如果需要更新的記錄數總數的25%,可能就要考慮使用刷新的方法。

 

事實表裝載

 初始裝載的要點:

        確認歷史數據對於數據倉庫有用;

        定義和改進抽取商業規則;

        捕獲審查數據,在返回操作型系統;

        執行事實表代理鍵;

        改善事實表內容;

       數據重構;

       准備裝載文件。

增量裝載的要點

       事實表的增量抽取:由新交易構成;由更新交易構成;為了數據捕獲使用數據庫交易日志。

       事實表的增量裝載:盡量頻繁地裝載;使用分區的文件和索引;應用並行處理技術。

 

ETL工具

          供應商提供的ETL工具主要有3種:

         1、數據轉換引擎;

         2、通過復制捕獲數據;

        3、代碼生成器。

 

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com