做過數據產品的人都會知道,質量高的數據對于產品的意義。筆者在之前曾經歷過數據質量管理的具體功能設計,算是較為完整地感受過數據質量管理過程。所以在此簡單復盤下經驗,借此拋磚引玉。
戰戰兢兢地寫下標題,得意下“清醒”這個詞用得真是獨樹一幟,跟外面那些妖艷賤貨好不一樣。我們常常說人要時刻保持清醒,這樣才能不被假象所蒙蔽。那數據其實更需要這點,我們需要透過數據挖掘本質,如果數據是不具備完整人格的,缺失完整性、規范性、一致性等維度,那么我們看到的本質也是偏差的。開篇先鬼扯一下,詳情請往下滑~
基本概念
數據質量管理是指為了滿足信息利用的需要,對信息系統的各個信息采集點進行規范,包括建立模式化的操作規程、原始信息的校驗、錯誤信息的反饋、矯正等一系列的過程。
- 數據質量管理不是一時的數據治理手段,而是循環的管理過程。
- 數據質量管理不僅包含了對數據質量的改善,同時還包含了對組織的改善。
為什么有這么多人強調改善數據質量管理的重要性,用一種很抽象的比喻描述,如果把整個數據應用比作人體的話,那好的數據就相當于新鮮和沸騰的血液,能讓我們的身體充滿活力,高效地工作思考。而質量差的血液攜帶廢物和毒素,隨著毒素越積越多,血液以及血管就會發生病變,血液流經的全身各處器官也會大受影響。如果非要要具體的數據證明,我摘取了一些專家的統計:
- 據專家估計,由于用戶拒絕不可靠的數據,導致多達70%的數據倉庫項目遭到失敗。
- 據專家估計,糟糕的數據通過使收入受損而會耗費商業機構多達10%~20%的操作總預算。而且,IT部門預算的40%50%之多可能都花在了糾正由糟糕的數據所引起的錯誤上(English,1999)。
- 專家認為,由于客戶的死亡、離婚、結婚或調離,客戶文件中的記錄在一個月之內會有2%變得過時(Betts,2002)。
影響因素
那什么會影響數據質量呢?其實簡單就分為2個因素。
- 客觀因素:在數據各環節流轉中,由于系統異常和流程設置不當等因素,從而引起的數據質量問題。
- 主觀因素:在數據各環節處理中,由于人員素質低和管理缺陷等因素,從而操作不當而引起的數據質量問題。
在此附上數據的生命周期圖,包括各環節的數據流轉和數據處理。
評估維度
那怎么樣才算質量好的數據呢?借用數據質量評估六要素,順便附上自己的一些解析:
完整性 Completeness
數據是完整不缺失的。例如人員信息完整涵蓋性別、年齡等。規范性 Conformity
數據是規范統一的。例如時間信息都以yyyy-mm-dd格式存儲。一致性 Consistency
同源或跨源的數據是一致不沖突的。例如同一個人在不同源取過來的性別都是一致的。準確性 Accuracy
數據是準確合理的。例如年齡在合理范圍內。唯一性 Uniqueness
數據是唯一不重復的。例如同一個ID沒有重復記錄。關聯性 Integration
數據的關聯是不缺失的。例如兩張表建立的關聯關系存在,不丟失數據。
具體工作
如何通過具體工作來貫徹落實數據質量管理呢?由于數據質量管理是貫穿數據整個生命周期的,所以根據數據的各環節進行分點描述:
數據產生---控制外部數據源
(1)非開放式輸入,避免用戶自己輸入,盡量提供用戶選擇項。設定字典表,例如性別不允許輸入(男、女、未知)以外的內容
(2)開放式輸入,增加提示或者校驗。例如設定臨界值,例如年齡填了-1或者200,不允許輸入。數據接入---保持多點錄入一致
建立統一的數據體系,例如指標(度量)、口徑(維度)。數據存儲---保持數據結構統一
建立標準的數據結構,例如字段格式,系統提前定義好一種時間默認格式為yyyy-mm-dd。數據處理---保持處理流程一致,該點包括數據稽核和數據清洗
按照標準的處理流程,例如統一的清洗規則等。數據輸出---保持數據結構統一
對數據處理后的結果進行保存時,按照數據存儲的要求,進行標準化的統一管理。數據展示---持續監測分析數據
設立監測規則不斷發現問題,通過解決問題不斷改進規則。
數據稽核
(1)定義
數據稽核是指實現數據的完整性和一致性檢查,提升數據質量,數據稽核是一個從數據采集,預處理,比對,分析,預警,通知,問題修復的完整數據質量管控鏈條。
(2)校驗規則
關聯性檢查
兩個數據表的key值關聯是否存在。行級別
兩個數據表的數據量是否一致。列級別
兩個數據表的表結構是否一致,如字段數量、字段類型和寬度等是否一致。內容級別
兩個數據表的內容是否一致。
其一數據表的內容是否缺失。
(3)校驗流程
1、配置校驗規則,例如字段映射等。
2、配置調度規則,例如調度頻率等。
3、配置報表模板,例如稽核結果等。
數據清洗
(1)定義
數據清洗是指發現并糾正數據文件中可識別的錯誤的最后一道程序,包括檢查數據一致性,處理無效值和缺失值等。與問卷審核不同,錄入后的數據清理一般是由計算機而不是人工完成。
(2)清洗規則
1)缺失值處理
- 根據同一字段的數據填充,例如均值、中位數、眾數等。
- 根據其他字段的數據填充,例如通過身份證件號碼取出生日期等。
- 設定一個全局變量,例如缺失值用“unknown ”等填充。
- 直接剔除,避免缺失值過多影響結果。
- 建模法,可以用回歸、使用貝葉斯形式化方法的基于推理的工具或決策樹歸納確定。
2)重復值處理
- 根據主鍵去重,利用工具去除重復記錄。
- 根據組合去重,編寫一系列的規則,對重復情況復雜的數據進行去重。例如不同渠道來的客戶數據,可以通過相同的關鍵信息進行匹配,合并去重。
3)異常值處理
- 根據同一字段的數據填充,例如均值、中位數、眾數等。
- 直接剔除,避免異常值過多影響結果。
- 設為缺失值,可以按照處理缺失值的方法來處理。
4)不一致值處理
- 從根源入手,建立統一的數據體系,例如指標(度量)、口徑(維度)。
- 從結果入手,設立中心標準,對不同來源數據進行值域對照。
5)丟失關聯值處理
- 重新建立關聯。
參考資料
如何保證數據質量?
數據分析師必修課(1)——數據質量評估
淺談數據質量管理
利用數據質量規則庫推動數據質量管理
主數據-數據質量管理
談數據稽核(3)
中興軟創-數據稽核系統解決方案