資料倉儲 四 之ETL開發

2021-09-24 19:01:14 字數 3203 閱讀 3870

概述

etl是資料倉儲的後台,主要包含抽取、清洗、規範化、提交四個步驟,傳統資料倉儲一般分為四層模型。 

分層的作用 

stg層

在維度建模階段已經確定了源系統,而且對源系統進行了資料評估。stg層是根據cdc策略把各個源系統的資料抽取到資料倉儲中。stg層主要是面向批處理的形式,如果是根據日誌資訊實時同步,可以跳過stg層直接進入ods層。

stg的作用 

ods層的作用 

資料清洗

資料清洗是發現資料質量問題並糾正資料的過程,通用的方法是戴明質量環

主要步驟                                          

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層dm層根據業務需求把dw層資料進行聚合或生成寬表。 

1.建立聚合事實表 

前台展現的資料一般都是聚合後的資料,聚合後的資料量比最細粒度的事實錶小很多,查詢性也有很大的提公升。

建立聚合表的方法 

1.增量載入,建立聚合表,增量載入聚合表。

2.聚合導航,使用者通過報表分析工具,根據使用者請求把基礎事實表自動生成聚合資料。

3.物化檢視,建立物化檢視定時重新整理聚合表。

2.建立縮小維度表

由於聚合事實表的粒度和基礎事實表粒度不同,需要建立和聚合表相同粒度的維度表,這些維度表只是基礎維度表的縮小版。

etl優化

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的縮寫,中文名稱為資料抽取 轉換和載入。一般隨著業務的發展擴張,產線也越來越多,產生的資料也越來越多,這些資料的收集方式 原始資料格式 資料量 儲存要求 使用場景等方面有很大的差異。作為資料中心,既要保證資料的準確性,儲存的安...