etl是資料倉儲的後台,主要包含抽取、清洗、規範化、提交四個步驟,傳統資料倉儲一般分為四層模型。
分層的作用
在維度建模階段已經確定了源系統,而且對源系統進行了資料評估。stg層是根據cdc策略把各個源系統的資料抽取到資料倉儲中。stg層主要是面向批處理的形式,如果是根據日誌資訊實時同步,可以跳過stg層直接進入ods層。
stg的作用
ods層是把stg層資料進行歷史存檔,保留源系統的所有歷史資料,如果是流式的,可以跳過stg層,實時同步到ods層。
ods層的作用
dw層是清洗、規範化,提交一致化維度和事實的工作區,建立反規範化的維度模型。
資料清洗是發現資料質量問題並糾正資料的過程,通用的方法是戴明質量環
主要步驟
1.定義資料質量需求,根據業務需求和資料剖析結果確定資料質量需求的優先順序。
2.制定資料質量測量型別
3.提交資料質量測量結果表,通常異常資料處理策略有
4.糾正資料
規範化由於資料倉儲的資料**各個業務系統,每個業務系統相對都是封閉的,他們在命名、取值上都有自己的特點。規範化就是經過標準化、去重、合併、拆分、整合等過程把各個業務系統的資料統一命名,統一取值,建立企業標準版本資料。
主要步驟
1.資料標準化
從資料的內容、格式、命名、計算規則等輸出為唯一的版本資料,把各個源系統的相同描述物件但是不同取值進行統一,比如:性別字段,有的源系統用0和1或man和wonen。通過對映表統一命名為m和f。
2.刪除重複資料
如果源系統中存在重複資料或者多個源系統維護了相同物件的資料,這時候就要根據保留規則,刪除重複資料,只保留唯一的一條資料。
3.資料共存
把各個業務系統的資料經過拆分、合併、整合。例如相同的客戶號,二個源系統都維護了這個客戶的****,這時候就要根據業務規則來選擇保留哪那個源系統的值。
提交維度表和事實表
提交維度表主要步驟
1.確認粒度
維度表的粒度就是表的業務主鍵,根據業務主鍵來判斷記錄的唯一性。
2.選擇**鍵生成器
etl工具和資料庫都有設定欄位自增長的功能。
3.選擇維度表型別
根據業務系統的實際情況選擇合適的維度表型別,一般採用緩慢變化維型別1和型別2。
4.增量載入維度資料
維度表的每個欄位都要設定預設值,不能為空。首次載入的時候要有一條**鍵為-1的預設記錄,為了防止事實表查詢不到**鍵。
緩慢變化維處理流程
5.生成**鍵管道
為了生成事實表的維度**鍵,一般會建乙個查詢維表,查詢維表包含業務主鍵和**鍵的對映關係。
提交事實表主要步驟
1.選擇事實表型別
根據業務需求選擇合適的事實表型別,一般會先建最細粒度的事務事實表,根據事務事實表建週期快照或累積事實表。
2.用**鍵替換主鍵
根據事實表中維表的業務主鍵關聯查詢維表替換成**鍵,如果關聯不上設定為-1。
3.增量載入事實資料
4.提交錯誤事實表
把載入事實表的拒絕記錄儲存在錯誤事實表中,以便進行資料質量跟蹤。
5.事實表合併
一級事實表都是根據單個業務過程建立的,為了便於分析和重用,需要把多個業務過程的事實表進行合併,形成二級事實表。
6.事實表歸檔
隨著時間的推移,事實表中會存放大量的歷史資料,如果這些資料很少再出現在統計分析中,需要把這些資料遷移到其他表中或以檔案格式儲存。
維度和事實資料修正
1. 糾正事實
消除事實,新增一條和原紀錄的度量乘以-1的值,這樣就能消除原紀錄的彙總帶來的影響。
更新事實,直接在原紀錄上更新。
刪除事實,刪除事實包含物理刪除和邏輯刪除,一般採用邏輯刪除。
2.優化和更正事實表主要有
在事實表中新增事實,歷史資料設定為預設值。
在事實表中新增維度,歷史資料設定為-1。
維度表中新增屬性,歷史資料為預設值。
修改維表和事實表的粒度大小。
3.處理延遲的事實
如果業務系統出現補錄的事務資料,這時候就要根據維度表中的開始日期和結束日期選擇合適的**鍵。
4.維度重建
dm層根據業務需求把dw層資料進行聚合或生成寬表。
1.建立聚合事實表
前台展現的資料一般都是聚合後的資料,聚合後的資料量比最細粒度的事實錶小很多,查詢性也有很大的提公升。
建立聚合表的方法
1.增量載入,建立聚合表,增量載入聚合表。
2.聚合導航,使用者通過報表分析工具,根據使用者請求把基礎事實表自動生成聚合資料。
3.物化檢視,建立物化檢視定時重新整理聚合表。
2.建立縮小維度表
由於聚合事實表的粒度和基礎事實表粒度不同,需要建立和聚合表相同粒度的維度表,這些維度表只是基礎維度表的縮小版。
1.減少磁碟i/o
關聯查詢的時候,盡可能把無效的資料過濾掉
只查出需要的列
大資料量盡量不要有排序
在載入資料時關閉日誌
2.分割槽和並行
大資料量可以進行分割槽
查詢和任務排程都可以進行並行處理
3.增量載入
4.增加索引
5.大而化小,複雜的查詢可以分成多個子任務來執行。
資料倉儲 ETL
etl這個過程可以說下整套資料流程下來最枯燥也是最耗時間的流程,但是也是最重要的。很多時候我們不缺資料,缺的是好資料,而etl的結果則導致下游成員的資料質量。etl是貫穿數倉的整個環節,不是說只是在某乙個地方才使用的。etl工作的實質就是從各個資料來源提取資料,對資料進行轉換,並最終載入填充資料到資...
資料倉儲之ETL導讀
etl是資料抽取 extract 轉換 transform 載入 load 的簡寫,它是將oltp系統中的資料經過抽取,並將不同資料來源的資料進行轉換 整合,得出一致性的資料,然後載入到資料倉儲中。簡而言之etl是完成從 oltp系統到olap系統的過程。看過這樣一本書,將etl比作餐館的後廚,後廚...
資料倉儲之ETL實戰
etl,extraction transformation loading的縮寫,中文名稱為資料抽取 轉換和載入。一般隨著業務的發展擴張,產線也越來越多,產生的資料也越來越多,這些資料的收集方式 原始資料格式 資料量 儲存要求 使用場景等方面有很大的差異。作為資料中心,既要保證資料的準確性,儲存的安...