數據倉庫基礎(二)ETL
本文轉載自:http://www.cnblogs.com/evencao/archive/2013/06/14/3135529.html
ETL在數據倉庫中具有以下的幾個特點:
數據流動具有周期性:
因為數據倉庫中的數據量巨大,一般采用成熟的ETL工具去完成抽取、轉換、加載,以降低設計開發的和維護的復雜度,使設計開發人員有更多的時間去專註於業務轉化規則。
ETL是數據抽取、轉換、加載的簡寫。它的一般過程是將數據源抽取出來,中間經過數據的清洗、轉換,最後加載到目標表中。ETL的過程一般是批量的。
ETL的本質
1.用戶應該理解ETL本質上就是數據從源到目標的過程。
2.大多數的ETL工具價格昂貴,宏觀上一般都適合處理海量的數據,但是在微觀上需要考慮ETL處理的不同情況。
3.元數據時ETL過程的重要體現,藐視了數據源的屬性、數據源到目標庫的轉換規則,數據抽取歷史記錄等。
4.構建一個商業智能系統,設計開發人員更多的人喜歡在ETL開始之前先將所有的業務規則弄清楚。
影響ETL數據質量的關鍵因素:
可能會有一部風數據因為客觀或者人為的原因到時數據格式混亂。
源系統設計存在不合理性
在開發過程中,因為開發人員的錯誤或者設計人員對業務規則描述的問題,同樣會導致數據質量出現問題。
保證數據質量的方法:
首先用戶必須遵守數據倉庫項目中的數據源的質量要求,對業務源數據進行仔細分析,以便對數據源的任何錯誤或不規範的地方有相應的處理方法,如對錯誤進行修改或者舍棄
其次,在保證數據源的質量之後,在設計ETl過程中,對每一個步驟應該有一個衡量數據質量的方法,需要重視ETL的每一個過程。
最後,就是規範業務流程,保證ETL正確性,避免誤刪或者重復加載數據。
其中對質量的衡量有幾種方式:
1.定義的數據是否和實際值相同。
2.指標數據是否符合業務規則。
3.數據是否和業務源系統中的信息保持一致。
4.數據時違背自然規律或者不符合常理。
主流的ETL工具有 PowerCenter 和Datastage。ETL 是商業智能的核心和靈魂。
詳解ETL過程:
1.數據抽取
數據抽取就是從源系統中獲取業務數據的過程。數據抽取時需要考慮很多的因素,(抽取時間,收取方式,抽取周期等)數據抽取有以下幾種情況:
如果業務操作系統數據庫和數據倉庫質檢的數據庫管理系統完全相同,只需要建立相應的連接關系就可以使用ETL工具直接訪問,或者調用相應的SQL語句或者存儲過程。
若數據倉庫系統和業務操作型數據庫的數據管理器不相同,比較簡單的方式是使用ETL工具導出成文本文件或者Execl文件,然後再進行統一的數據抽取。
如果需要抽取的數據量非常的龐大,此時必須考慮增量抽取。
2.數據清洗
數據清洗就是選擇出有缺陷的數據,然後再將他們正確話和規範化,從而達到用戶要求的數據質量標準。
3.數據轉換
數據轉換就是指從業務系統中抽取的源數據,然後再根據數據倉庫模型的需求,進行一系列數據轉換的過程。
數據轉換是ETL過程中復雜度最高的過程,包括對數據不一致性的轉換,業務指標的計算和某些數據的匯總,為決策系統提供數據支持。
ETL轉換過程中可能包含幾個方面:
對空值進行處理:在進行加載是需要將空值替換成某一數據或者直接進行加載。
對數據格式規範化:例如:統一將數值型轉化為字符型
根據業務需求進行字段的拆分和合並
對缺失數據的替換:
根據業務規則對數據進行過濾
根據編碼表進行數據唯一性的轉換:
4.數據加載:
這是ETL的最後一筆,需要保證加載工具必須有高效的性能去完成數據加載,同時還需要考慮加載的時周期和數據加載的策略。
數據加載包括:時間戳的加載方式:是比較常見的一種加載方式。
全表對比的加載方式、通過讀取日誌進行加載的方式、全表刪除後再進行加載的方式。
5.ETL日誌
ETL日誌非常重要,它記錄了ETL執行過程中的每一步信息。幫助系統維護人員進行監控,當然ETL日誌也可以未做數據加載的一個策略。
ETL設計的規範要點:
1.在ETL設計之前,需要根據業務的需求確定所要分析的主題和數據結構。根據數據倉庫的模型,考慮在ETL設計中是否增加預留字段和屬性。
2.確定數據的粒度
3.ETL抽取周期的確定。
4.以增量抽取的方式作為ETL設計的重點,減少數據抽取的壓力和抽取時間。
5.通常抽取盒清洗可以分成很多步驟
6.對異常情況進行處理。包括網絡中斷等情況進行處理,保證數據的正確性。
7.對ETL的運行管理和監控措施。
ETL的框架結構:
主要包括:ETL調度、抽取策略、轉換策略、加載策略。
統一調度室ETL中較為重要的功能。
1.自動調度方式
2.手動調度方式
數據倉庫基礎(二)ETL