本文轉載自:http://www.cnblogs.com/evencao/p/3140487.htmlhtml
ETL是數據抽取(Extract)、轉換(Transform)、加載(Load)的簡寫,是構建數據倉庫最重要的一步。算法
1.抽取安全
抽取時元數據進入到數據倉庫的第一步。由於每一個業務系統數據的質量不相同,因此須要對每一個數據源創建不一樣的抽取程序。服務器
抽取的主要功能:數據結構
提供數據匹配器的功能:這樣使得程序能夠與多種業務數據源相鏈接。spa
提供標準化的功能:抽取最重要的一個功能就是對數據類型的標準化,將業務數據和數據倉庫中的數據類型統一。設計
提供批處理的服務:日誌
提供過濾的功能:orm
2.清洗htm
清洗是源數據進入到數據倉庫的第二步。目的是保證源數據的數據質量符合數據倉庫的要求,同時保證數據的一致性。
清洗的主要功能:
數據修正:使用固定算法或者相應的數據源檢查程序區驗證信息是否準確。
數據標準化功能:將業務數據源的數據標準化,以知足數據倉庫中的數據一致的要求。
匹配和合並功能:對抽取出來的數據進行重複驗證,而後對重複數據進行單獨合併。
3.轉換
轉換的功能:
對數據進行計算:根據業務需求的特色對業務源數據進行相關的計算,以知足數據倉庫的要求。
對數據進行放大:根據實際的業務需求,爲數據調價額外的信息,從而保證數據倉庫的一致性和正確性。
4.加載:這是ETL的最後一步。主要負責將數據加載到目標表中,這些目標表多是事實表,也多是維度表。
定義ETL的流程
1.從源數據抽取到ODS數據緩衝區:
ODS數據緩衝區是指數據臨時存儲區域,它基本上與源系統的數據結構保持一致。
2.從ODS數據緩衝區到ODS統一信息視圖區:通常來講是定時抽取的,除了第一次作全量抽取外,其他時間都是作增量抽取,能夠按照某種更新策略進行抽取。
3.從ODS統一信息視圖區抽取到數據倉庫:數據倉庫是根據業務需求,對企業受進行整合,同時又是存儲歷史數據的地方
4.從數據倉庫抽取到數據集市:數據集市是針對某個主題域、部門或者是特定用戶的數據集合。
ETL的加載方法
1.以時間戳做爲加載條件:
利用時間戳的方式對目標表進行數據加載是相對簡單的一種方法。這種時間戳做爲數據加載條件的
優勢是使ETL設計簡單清晰,抽取的效率相對較高,而且能夠實現ETL數據加載的需求。
缺點是須要對業務數據源的時間戳進行維護。
2利用源表的日誌信息對目標表進行加載:在業務系統中爲源表中的數據增長、刪除、修改時,及時更新該源表的日誌表。
優勢是:不須要更改數據源表結構和數據,下降了數據加載的風險。
缺點是須要維護日誌表數據,增長了系統的開銷。
3.進行全表對比的方式進行數據的加載
是對目標表的每一條數據進行比較,當目標表不存在該主鍵時,進行插入操做,若是該主鍵值已經存在,則須要對其他字段進行比較,若是有不相同的數值,則須要進行更新操做。
優勢:安全性高
缺點:流程較爲複雜,通常抽取的效率較低。
4.全表刪除後再進行數據加載的方式`
利用ETL構建企業級數據倉庫
1.在構建數據倉庫的時候,一般的作法是將業務系統部署在一臺服務器,而數據倉庫部署在另外一臺服務器中。
2.構建企業級數據倉庫須要充分發揮時間戳的做用。
3.在構建企業數據倉庫時,可使用ETL過程當中產生的日誌信息區查看數據處理的狀況。