《Pentaho Kettle解決方案》閱讀筆記
Pentaho Kettle解決方案:使用PDI構建開源ETL解決方案。 Matt
Casters, Roland Bouman, Josvan Dongen著,初建軍,曹雪梅譯,電子工業出版社,2014年。筆記中有些內容直接引用原書。================================================================
ETL: 抽取、轉換和載入。將數據從OLTP系統中轉移到數據倉庫中的一系列操作的集合。
抽取:一般抽取過程需要連接到不同的數據源,以便為隨後的步驟提供數據。這一部分看上去簡單而瑣碎,實際上它是ETL解決方案成功實施的一個主要障礙。
轉換:在抽取和載入之間,任何對數據的處理過程都是轉換。這些處理過程通常包括(但不限於)下面一些操作:
1.移動數據
2.根據規則驗證數據
3.數據內容和數據結構的修改
4.集成多個數據源的數據
5.根據處理後的數據計算派生值和聚集值
載入:將數據機載到目標系統的所有操作。載入並不僅僅是將數據批量裝載到目標表。載入過程還包括對代理鍵的管理和對維度表的管理等。
ELT(抽取、載入和轉換)同ETL在數據整合的方法上略微不同。ELT下,數據首先從數據源進行抽取,載入到目標資料庫中,再轉換為所需要的格式。所有大數據量處理全部放在目標資料庫中進行。這樣做的好處在於,一般情況下,資料庫系統更適合處理負載在百萬級以上的數據集成。資料庫系統也通常會對I/O(吞吐量)進行優化,用來提高數據處理速度。
數據模型:星型模型,每一個維度都是一個單獨的維度表。除了日期和時間維,其它每個維表都使用自增列作為代理主鍵。
ETL系統的四大塊:抽取、清洗和更正、發布、管理。發布不僅僅是把數據寫入到目標資料庫中,也包括把數據寫入到維度表或事實表中的那些轉換。管理是對企業信息基礎架構的管理。
ETL子系統被重構為34種子系統:
一、抽取
1. 數據剖析系統:目標是分析不同數據源的結構和內容。
2. 增量數據捕獲系統:目標是捕獲系統里數據的變化。
3. 抽取系統:從不同的數據源抽取數據,並輸入到ETL流程里。
二、清洗和更正數據
4. 數據清洗和質量處理系統
5. 錯誤事件處理
6. 審計維度:審計維度表是一類特殊的維度表,數據倉庫里所有的事實表都和審計維度表關聯,審計維度表包含了對事實表變更的元數據,載入數據的日期和時間、數據的質量指標等。
7. 排除重複記錄系統
8. 數據一致性:使來源於多個業務系統的事實數據遵照相同的維度。
三、數據發布:不僅是將數據插入到目標資料庫那麼簡單。還要生成代理鍵、查詢正確的維度鍵、載入事實數據。
9. 緩慢變更維度處理:幾種緩慢變更維度方法:覆蓋、增加新行、增加新列、增加一個小維度表、分離歷史表、混合型。
10. 代理鍵生成系統
11. 層次維度構建:層次可以讓用戶分析查看維度不同級別上的數據。
12. 特殊維度生成系統:時間維度、雜項維度(垃圾維度)、小維度、收縮的或上卷的維度、靜態維度(小的字典表或參照表)、用戶自定義維度。
13. 事實表載入:事務粒度載入表、周期快照事實表、累積快照事實表。
14. 代理鍵管道:負責抽取正確的代理鍵,用於載入事實表。
15. 多值維度橋接表生成系統:處理不同深度的層次時或有多個維度項和事實表或其他維度表關聯時。
16. 遲到數據處理:事實表和維度表數據都可能晚到。維度表遲到會比較麻煩。
17. 維度管理系統:中心控制系統,用來準備和向數據倉庫發布正確的維度。
18. 事實表管理系統:負責任何創建、組織、管理和事實表相關的任務。
19. 聚集構建:聚集表能大幅提升性能,但需要維護聚集表。
20. OLAP Cube構建系統
21. 數據整合管理系統:從數據倉庫獲取數據,並把數據發送到其他環境中,通常用於離線數據分析或其他特殊目的,如給特定客戶發送報表。
四、管理ETL環境
22. 作業調度
23. 備份系統。三個地方:1.抽取之後,改動之前;2.清洗、排重、更正之後;3.已經做完最後處理,寫入數據倉庫之前。通常數據倉庫本身備份不是ETL工作。
24. 恢復和重新啟動系統。
25. 版本控制子系統
26. 從開發環境到測試、生產環境的版本移植系統。
27. 工作流監控
28. 排序系統:分組、排序合併
29. 血統和依賴分析:提供血統分析和影響分析功能。
30. 問題報告系統
31. 並行/管道系統:任務的並行或在集群上執行。
32. 安全系統
33. 合規報告系統
34. 元數據資源庫管理系統:目標是捕獲到和ETL相關的所有業務、過程和技術元數據。重要的一部分就是系統文檔化。
數據剖析:是指從不同源系統中搜集數據的統計信息或其他相關信息的過程。通過數據剖析獲得的統計信息對後面的ETL和數據倉庫的設計過程都非常重要。可以完成下面3個層次的工作:
1. 列特徵分析:搜集某一列數據的統計信息。
2. 依賴性特徵分析:分析表中不同列之間的依賴關係。
3. 連接特徵分析:分析不同表之間的依賴關係。
推薦閱讀: