1. 程式人生 > >ETL---資料清洗轉化

ETL---資料清洗轉化

1、資料清洗
資料清洗的任務是過濾那些不符合要求的資料,將過濾的結果交給業務主管部門,確認是否過濾掉還是由業務單位修正之後再進行抽取。不符合要求的資料主要是有不完整的資料、錯誤的資料和重複的資料三大類。
 
A、不完整的資料
  其特徵是是一些應該有的資訊缺失,如供應商的名稱,分公司的名稱,客戶的區域資訊缺失、業務系統中主表與明細表不能匹配等。需要將這一類資料過濾出來,按缺失的內容分別寫入不同Excel檔案向客戶提交,要求在規定的時間內補全。補全後才寫入資料倉庫。
 
B、錯誤的資料
  產生原因是業務系統不夠健全,在接收輸入後沒有進行判斷直接寫入後臺資料庫造成的,比如數值資料輸成全形數字字元、字串資料後面有一個回車、日期格式不正確、
日期越界等。

這一類資料也要分類,對於類似於全形字元、資料前後有不面見字元的問題只能寫SQL的方式找出來,然後要求客戶在業務系統修正之後抽取;日期格式不正確的或者是日期越界的這一類錯誤會導致ETL執行失敗,這一類錯誤需要去業務系統資料庫用SQL的方式挑出來,交給業務主管部門要求限期修正,修正之後再抽取。

 
C、重複的資料
  特別是維表中比較常見,將重複的資料的記錄所有欄位匯出來,讓客戶確認並整理。資料清洗是一個反覆的過程,不可能在幾天內完成,只有不斷的發現問題,解決問題。對於是否過濾、是否修正一般要求客戶確認;對於過濾掉的資料,寫入Excel檔案或者將過濾資料寫入資料表,在ETL開發的初期可以每天向業務單位傳送過濾資料的郵件,促使他們儘快的修正錯誤,同時也可以作為將來驗證資料的依據。資料清洗需要注意的是不要將有用的資料過濾掉了,對於每個過濾規則認真進行驗證,並要使用者確認才行。
 
2、資料轉換
  資料轉換的任務主要是進行不一致的資料轉換、資料粒度的轉換和一些商務規則的計算。
  
A、不一致資料轉換
  這個過程是一個整合的過程,將不同業務系統的相同型別的資料統一,比如同一個供應商在結算系統的編碼是XX0001,而在CRM中編碼是YY0001,這樣在抽取過來之後統
一轉換成一個編碼。 B、資料粒度的轉換
  業務系統一般儲存非常明細的資料,而資料倉庫中的資料是用來分析的,不需要非常明細的資料,一般情況下,會將業務系統資料按照資料倉庫粒度進行聚合。
 
C、商務規則的計算
  不同的企業有不同的業務規則,不同的資料指標,這些指標有的時候不是簡單的加加減減就能完成,這個時候需要在ETL中將這些資料指標計算好了之後儲存在資料倉庫中,供分析使用。