讓數據清澈如水:數據清洗的策略與方法 針對不同問題數據有哪些清洗方式? 如何在數據工廠中進行數據清洗?

在數據倉庫中,數據是面向某一主題的數據的集合,這些數據從多個業務系統抽取而來,不同的數據來源加上歷史數據的堆積,難免會有問題數據出現,這些問題數據大致可以分爲三大類:不完整的數據、錯誤的數據以及重複的數據。數據清洗的職責就是分辨、處理這些問題數據。

數據清洗,顧名思義,就是把數據拿去“洗一遍”,把其中的髒數據給“洗掉”,簡單來說,數據清洗就是發現並糾正數據中可識別的錯誤,從而來保持數據的完整性、唯一性、一致性等。


針對不同問題數據有哪些清洗方式?

1、不完整的數據

不完整的數據是指一條數據中記錄某一特徵的數據丟失了,比如員工信息表中名叫張三的員工的年齡缺失了。某些數據的缺失值可以從本數據源或其他數據源推導出來,像上例中的員工年齡就可以根據身份證號計算出來。除了這種特殊關係的數據缺失外,其他數據的缺失常用的清洗方法還有取平均值、最大值、最小值、計算結果值,或者取其他字段的值等等。

2、重複的數據

重複的數據就是相同的一條數據出現了兩次或以上,對於重複的數據清洗起來比較簡單,只需要根據主鍵或者其他規則刪除多餘的數據即可。

3、錯誤的數據

錯誤的數據又可以分成格式錯誤和內容錯誤兩種。格式錯誤是指我們收集到的數據的格式跟我們期望的數據格式不一致,比如設計的庫表字段爲8位的日期“20200604”格式,但我們獲取到的數據爲“2020-06-04”,這種數據肯定是存不進數據庫的,需要將其清洗成8位的日期字符串,我們可以先將“2020-06-04”轉換爲日期型的數據,然後再將日期轉換爲“YYYYMMDD”格式的字符串,也可以採用字符串分割在拼接的方法,依次取“2020-06-04”的1-4、6-7、9-10位拼接成一個新的字符串。

內容錯誤的數據檢測處理則稍麻煩些,需要數據處理人員通過分析來找出髒數據。我們可以通過簡單的黑名單或白名單來找出髒數據,只要一列數據中出現了黑名單上的值,就認爲該數據是髒數據,並將其替換爲我們預先準備好的指定值。


如何在數據工廠中進行數據清洗?

看完了上述數據清洗的方法和策略,大多數人還不太清楚實際操作中該如何清洗數據。下面就以億信數據工廠爲例爲大家演示清洗數據的全流程。

假設我們現在有一張員工信息表,表中入職時間字段格式爲“yyyyMMddHH:mm:ss”,我們要將其格式改爲“yyyy-MM-dd HH:mm:ss”,然後存入新的目標表中,下面演示數據清洗的詳細步驟。


1、新建連接池

第一步創建源端數據源連接。依次點擊數據源 >> 連接池管理 >> 新建連接池 >> Oracle。

在彈出的對話框中輸入數據庫的信息,點擊保存。


2.創建ETL過程

第二步創建清洗任務。依次點擊,設計區 >> ETL過程 >> 新建,進入到ETL過程編輯器界面


依次將輸入輸出分組中的表輸入、表輸出組件和轉換組件分組中的清洗組件拖到右側編輯區,並按照表輸入-清洗組件-表輸出的順序將組件連線。


雙擊點開表輸入組件,選擇剛剛創建的連接池,選擇需要清洗數據的表。


雙擊點開清洗組件,點擊“新增”按鈕;在彈出的窗口左側樹上選擇“日期時間字符串格式轉換”,在右側需要清洗的字段前面打上勾,並點擊日期時間轉換設置框中的右側“...”按鈕;在彈出的時間轉換格式對話框中,選擇轉換前和轉換後的字符串格式,這裏選擇的是將“yyyyMMddHH:mm:ss”轉換爲“yyyy-MM-dd HH:mm:ss”點擊確定關閉所有對話框。


雙擊點開表輸出組件,選擇目標連接池和目標表;點擊字段映射,在彈出的字段映射對話框中點擊“字段自動映射”,選擇“按文字匹配”,點擊“確定”按鈕關閉對話框。然後在關鍵字“NO_”後上打鉤。


在表輸出的目標設置界面中,更新方式選擇“數據更新”,批量大小輸入“1000”。點擊確定,關閉組件設置對話框。這樣清洗任務就創建完成了。

3.運行ETL,查看數據

點擊上方工具欄中的“運行”按鈕,運行完成後右鍵點擊表輸出組件,選擇預覽數據。


這時候可以看到入職時間的數據格式全都變成了“yyyy-MM-dd HH:mm:ss”。至此數據清洗成功。


億信數據工廠中有數十個組件,內置了大量的數據清洗轉換規則,還有SQL組件、表達式組件等支持用戶通過SQL的方式自定義轉換規則,實現一鍵清洗數據。通過數據工廠,可以簡單、快速完成數據的清洗工作。感興趣的小夥伴可前往億信華辰官網申請試用哦~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章