ETL架構中的38個子系統
--By Ralph Kimball, 2004年4月
建立一個成功的資料倉儲系統,依靠的是最佳實踐而不是直覺。
三個簡單的字母,E-T-L,很容易的讓大家忽視了38個ETL子系統在資料倉儲建設中的重要性。
抽取-轉換-載入(ETL)系統,或者非正式的稱為“後臺系統”,在建立整個資料倉儲系統中佔據了70%的工作量和時間。但是這還不足以說明ETL系統的複雜性。每個人都理解這三個字母的含義,E,從源系統中將資料取出來;T,對這些資料做處理;L,載入到終端使用者訪問的表中。
但是當我們問及如何來分解這三大步驟時,很多設計人員都會說,“具體問題,具體分析”。例如,這依賴於不同的資料來源;這依賴於資料的特性;這依賴於指令碼語言以及可以使用的ETL工具的情況;這依賴於員工的技術能力;這還依賴於終端使用者使用的查詢和報表工具。
“具體情況,具體分析”是一個很危險的事情,因為它很容易稱為系統混亂的一個藉口。伴隨著幾千個成功資料倉儲專案的經歷,我們整理出了一系列的最佳實踐。
最近的18個月,我們一直在鑽研ETL的實踐和ETL的產品。我們標識出了在每一個資料倉儲專案的後臺部分都會涉及到的38個子系統。壞訊息是ETL系統確實佔據了資料倉儲專案的大部分資源。好訊息是如果你能掌握所有的這些子系統,你就可以很容易的使用你的經歷來建立成功的資料倉儲系統。
1.抽取系統(Extract System)
主要功能包括源資料的介面卡,推/拖/搬運資料的工作排程,對源資料的過濾和排序功能,資料格式的轉換,遷移到ETL環境後的資料暫存功能。
2.變化資料捕獲系統(Change Data Capture System)
主要功能包括對源資料日誌檔案的閱讀功能,源資料日期和序列號的過濾功能,基於CRC演算法的記錄比較功能。
3.資料概況分析系統(Data Profiling System)
主要功能包括欄位屬性分析,如參照域的分析;結構分析,如主外來鍵關係分析;資料規則分析;值規則分析等。
4.資料清洗系統(Data Cleansing System)
主要功能包括一個典型的資料字典驅動的系統,用於解析個體和組織的名稱、地址等資訊,也用來解析產品、場所等內容;一個“De-duplication”系統,用於鑑別和移除個體和組織資訊,也用於產品和場所;一個“Surviving”系統,使用特定的資料合併邏輯,用來儲存特定資料來源的指定欄位,這個特定資料來源的資料將成為資料倉儲的最終版本;為所有的資料來源維護後臺資料的對應關係,如自然鍵和代理鍵對應關係等內容。
5.資料一致性處理系統(Data Conformer System)
主要功能包括標識和生成專用的一致性維度屬性、一致性事實的度量屬性,這兩組屬性作為資料整合工作的基礎,用來支援跨多個資料來源的資料整合工作。
6.審計維度生成系統(Audit Dimension Assembler System)
主要功能是將與事實表相關的後設資料內容載入到一張審計維度表中,這樣終端使用者可以像檢視普通維度一樣檢視與事實表相關的後設資料。
7.資料質量過濾系統(Quality Screen Handler System)
主要功能是在ETL的處理過程中自動的檢測所有的資料質量問題。檢測的結果將進入錯誤事件處理系統(詳見子系統8)。
8.錯誤事件處理系統(Error Event Hander System)
主要功能是全面的記錄和報告在ETL處理中的所有的錯誤事件。包括各類錯誤的分枝處理邏輯,還包括對ETL處理中資料質量的實時監控。
9.代理鍵生成系統(Surrogate Key Create System)
主要功能是以一種魯棒的機制生成流水的代理鍵,生成規則不依賴與任何維度,也不依賴與任何資料庫例項,可以支援分散式系統。
10.緩慢變化維處理系統(Slowly Changing Dimension Processor,SCD)
主要功能是處理維度表的屬性隨時間變化的情況,處理方式為:型別1(直接覆蓋),型別2(生成新行),型別3(新增新列)。
11.遲到維度處理系統(Late Arriving Dimension Handler)
主要功能是當維度資料的變化情況到達資料準備區的時間晚於對應的事實資料時,對維度資料的插入和更新策略。
12.固定層級結構生成系統(Fixed Hierarchy Dimension Builder)
主要功能是對維度表中各類多對一關係的層級結構進行資料有效性檢查和維護。
13.可變層級結構生成系統(Variable Hierarchy Dimension Builder)
主要功能是對維度表中所有的層深可變的層級結構的的資料有效性檢查和維度,例如組織的層級結構,零件的層級結構等。
14.多值維度橋接表生成系統(Multivalued Dimension Bridge Table Builder)
主要功能是建立和維護橋接表,用來描述維度間的多對多關係。
15.雜項維度生成系統(Junk Dimension Builder)
主要功能是將來自多個資料來源的多個低基數的標誌欄位、狀態欄位等小型維度建立成一個雜項維度,並對之進行維護。
16.交易粒度事實表載入系統(Transaction grain fact table loader)
主要功能是更新交易粒度事實表,包括對資料、索引和分割槽的處理。通常是用來處理增量資料,即最新的資料。需要使用代理鍵替換管道系統(詳見子系統19)。
17.週期快照事實表載入系統(Periodic snapshot grain fact table loader)
主要功能是更新週期快照事實表,包括對資料、索引和分割槽的處理。包括對當期資料的增量更新策略。需要使用代理鍵替換管道系統(詳見子系統19)。
18.累計快照事實表載入系統(Accumulating snapshot grain fact table loader)
主要功能是更新累積快照事實表,包括對資料、索引和分割槽的處理,同時更新維度外來鍵和累積事實。需要使用代理鍵替換管道系統(詳見子系統19)。
19.代理鍵替換管道系統(Surrogate key pipeline)
主要功能是使用多執行緒技術將來到資料倉儲資料的自然鍵替換為代理鍵。
20.遲到事實處理系統(Late arriving fact handler)
主要功能是處理對遲到事實記錄的插入和更新策略。
21. 聚合生成系統(Aggregate builder)
主要功能是建立和維護資料庫物理結構,比如說聚合表,用於和 query-rewrite 技術配合使用,以提高資料庫查詢效能。也包括獨立的聚合表和物化表。
22. 多維cube生成系統(Multidimensional cube builder)
主要功能是建立和維護星型架構用於裝載多維cube,包括cube技術的一些專有工作,比如維度層次結構的維護。
23. 實時分割槽生成系統(Real-time partition builder)
三種事實表型別(參照子系統16,17,18)的特殊邏輯在記憶體中維護著一個“熱分割槽”,它只包含最近一次已經統計到資料倉儲表中以後的部分增量資料。
24. 維度管理子系統(Dimension manager system)
顧名思義,它是一個管理維度表的系統。它負責從集中存放維度表和事實表之間的維度一致性,請參照子系統25。
25.事實管理系統(Fact table provider system)
對應於維度表管理系統,它是一個事實表的管理系統,它接收從維度管理系統發過來的一致性維度。包括本地鍵替換,維度版本檢查,和聚合表等維護系列工作。
26.任務排程系統(Job scheduler)
它負責ETL任務的安排和啟動。它能夠等待各種系統條件包括對優先順序高的任務完成的依賴。能夠針對異常情況傳送警告。
27.工作流程監視系統(Workflow monitor)
它的主要功能是有控制檯和報表系統用以監控ETL任務被任務排程系統啟動以後的執行狀況。包括處理的記錄條數,錯誤摘要,和執行的活動。
28.恢復和重做系統(Recovery and restart system)
當任務執行過程中任務暫停後的重新啟動,或者是恢復到任務執行前的狀態重新執行。這個子系統嚴重依賴於備份子系統(參考子系統38)。
29.並行處理和管道處理系統(Parallelizing/pipelining system)
它的主要功能是利用多處理器,網格計算資源以提高效能,和實現資料流處理。當不是寫硬碟操作或者是執行過程中等待一個條件的發生的ETL的情況,是有必要採用並行化和管道化的。
30.異常放大系統(Problem escalation system)
它的主要功能是負責在一定的條件下提高錯誤的級別以跟蹤和解決問題。包括簡單錯誤日誌記錄,操作者通知,管理員通知和系統開發人員通知。
31.版本控制系統(Version control system)
使得後設資料的歸檔能夠有堅固的快照功能,可以查閱某一時刻改變前後的狀態。能夠遷入和遷出所有ETL模組和任務。原始碼對比功能以快速展示改變前後的不同。
32.版本移植系統(Version migration system)
讓程式可以在開發環境,測試環境,正式環境快速切換。版本控制系統的用於恢復移植的一個介面,也是配置完整資料庫連線資訊的一個介面。使得代理鍵生成不依賴於資料庫的位置。
33.體系和依賴分析系統(Lineage and dependency analyzer)
對任何選中的資料元件,都要展示它的物理資料來源和所有的後來的轉換,不管是選中ETL管道中間的元件,或者是選中最終的資料結果,都一樣展示。對任何選中的資料元件,都要展示它的下游的資料元件和可能會造成改變的最終資料結果的欄位結構,不管是選中ETL管道中間的元件,或者是選中資料來源,都一樣展示。
34.符合規定報告系統(Compliance reporter)
符合規定的規則以證明系統報告的可信度。證明資料和轉換沒有改變。展示誰訪問過或者改變過任何資料。
35.安全控制系統(Security system)
在ETL的管道中,實現對所有資料和後設資料基於角色的許可權控制。證明模組的版本沒有改變。展示誰做過任何更改。
36.備份系統(Backup system)
對資料和後設資料的備份,用於以後的資料的恢復,重啟,安全,和符合規定的要求。
37.後設資料管理系統(Metadata repository manager)
用於捕獲和維護所有ETL的後設資料的系統,包括所有轉換邏輯。包括處理後設資料,技術後設資料和業務邏輯後設資料。
38.專案管理系統(Project management system)
對所有ETL任務進行開發的跟蹤系統。
---------------------
作者:nisjlvhudy
來源:CSDN
原文:https://blog.csdn.net/nisjlvhudy/article/details/44341629
版權宣告:本文為博主原創文章,轉載請附上博文連結!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14377/viewspace-2564089/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ETL的38個子系統(轉)
- [原創] 淺談ETL系統架構如何測試?架構
- ETL架構師面試題架構面試題
- Android系統架構-----Android的系統體系架構Android架構
- ETL架構師之分析類架構
- 系統開發中的B/S架構架構
- 如何做好一個系統架構師:抓住敏捷架構中幾個關鍵決策點架構敏捷
- 業務中臺系統架構:大中臺+小前臺電子商務系統搭建框架思維架構框架
- 系統架構師大會:中國系統架構師的盛宴架構
- FACEBOOK 的系統架構架構
- IOS的系統架構iOS架構
- SQL Serve 2005中的系統架構SQL架構
- 使用Kafka重新架構電子商務系統 - DinaKafka架構
- HDFS架構指南(分散式系統Hadoop的檔案系統架構)架構分散式Hadoop
- 資料整合的兩種架構:ELT和ETL架構
- 理解分散式系統中的快取架構(下)分散式快取架構
- 理解分散式系統中的快取架構(上)分散式快取架構
- Android的系統架構Android架構
- SAP的三系統架構架構
- 廣告系統架構架構
- 安卓系統架構安卓架構
- 系統架構師架構
- 《Kettle構建Hadoop ETL系統實踐》簡介Hadoop
- 微核心架構在大型前端系統中的應用架構前端
- 系統架構7個非功能性需求架構
- 架構師提升篇:分散式系統中,如何提升系統效能?架構分散式
- 國產 ETL工具 ETL產品 資料交換系統
- 分散式系統的架構思路分散式架構
- 系統架構師的修煉架構
- PetShop的系統架構設計架構
- Tomcat系統架構Tomcat架構
- 系統架構演變架構
- 資訊系統架構架構
- 深入理解分散式系統中的快取架構(下)分散式快取架構
- SaaS架構:多租戶系統架構設計架構
- SaaS架構:中央庫存系統架構設計架構
- 「系統架構」CAP定理的含義架構
- 微服務架構下的系統整合微服務架構