從某種程度上來說“數據=金錢”,數據質量的好壞直接決定著數據價值高低,直接或簡介影響一個企業的決策方向。數據質量管理是指在數據創建、加工、使用和遷移等過程中,通過開展數據質量定義、過程控制、監測、問題分析和整改、評估與考核等一系列管理活動,提高數據質量以滿足業務要求。
一、數據質量關注點
一致性:值數內容在系統內,系統間是否保持一致。如指標是否同名同義,存儲,精確度,加工邏輯等是否一致。
完整性:指數據的完整,完備性與及時性,是否存在數據遺漏,缺失及補充等。每日提供的數據應該是完整的,無論在量上還是在特定的數據上,高質量的數據是通過完整的數據統計出來的。
可靠性:指數據的穩定性和準確性等,數據提供過程中,數據產生依賴于系統間的性能,生產數據和加工數據的過程,都會影響數據的可靠性。
準確性:數據域源頭的精確性,以及數據處理過程中是否存在算法和數據沖突等。數據的準確性可能存在于個別記錄,也可能存在于整個數據集,只有準確更高的數據才能提供高效、高優的決策。
可理解性:數據的可讀性和可分析性,是否滿足業務需求,以及數據間是否存在相互關系,用戶拿到數據是可理解,可用,可決策的。
有效性:指數據是否有效可用,以及數據數據的訪問域安全性等。數據安全是數據質量的一項重點管理方面,數據安全對于數據人來說是一條不可觸摸的紅線。
二、數據質量評估維度
數據完整性:考量數據項信息是否全面、完整、無缺失。考核指標表完整性和字段完整性。
監控覆蓋率:確保數據遵循統一的數據標準或規范要求,考核指標:監控覆蓋率,監控覆蓋率=監控的高價值任務個數/高價值任務總個數。其中統計的范圍只涉及有價值的任務。
任務準確性:考量數據是否符合預設的質量要求,如唯一性約束、記錄量校驗等,考核指標:任務監控告警率,監控任務告警率=告警任務個數(本周)/監控任務總個數。注:這里的告警任務,都是數據質量監控任務。
告警響應度:通過日常管理、應急響應,降低或消除問題影響,避免數據損毀、丟失。指標公式:統一的時間中期內,已處理告警個數/告警總個數。
任務性能:考量任務的執行效率和健康度,診斷任務是否傾斜等性能問題。指標公式:問題任務個數(統計周期內)/任務總個數。
任務穩定性:考量任務的運行穩定性,是否經常報錯,導致數據事故。指標公式:失敗任務個數(統計周期內)/總任務總個數。
任務時效性:考量數據項信息可被獲取和使用的時間是否滿足預期要求,考核指標。任務延遲率,任務延遲率=延遲的高價值任務個數(統計周期內)/高價值任務總個數,其中,基準時間為任務近30天平均完成時間加30分鐘,任務晚于基準即延遲。
三、數據質量校驗方法
完整性
1:可以從數據量上進行校驗。一般情況下,成熟的業務場景,每日生成的數據基本恒定,如果莫一天數據地域日常數據的波動閾值,可以預測數據基本是不完整的。
2 完整性的另一部分是字段的數據缺失,可以通過統計字段的空值率進行校驗。比如默寫字段在表中理論上是必然存在的,數據中如果出現了空值,則說明該字段的數據缺失。
準確性
1,常見的數量級的記錄錯誤,這種錯誤很容易發現,通過對比表數據量級的波動,判斷當日的數據是否準確。
2 可以通過異常值進行判斷。表中字段字符,或者數值出現了非法情況,可以判斷數據不準確。
3 準確性也可以通過數據類型,以及數據的長度進行校驗。
4 對于數據也可以通過數據的分部情況進行驗證。字符亂碼的問題或者字符被截斷的問題,可以使用分布來發現這類問題,一般的數據記錄基本符合正態分布或者類正態分布,那么那些占比異常小的數據項很可能存在問題,比如某個字符記錄占總體的占比只有0.1%,而其他的占比都在3%以上,那么很有可能這個字符記錄有異常。
一致性:
1如果數據記錄格式有標準的編碼規則,那么對數據記錄的一致性檢驗比較簡單,只要驗證所有的記錄是否滿足這個編碼規則就可以。比如身份證號都是18位,前面17位均是數字等。
2 對于可數的枚舉,可以通過映射校驗。比如省份等,可以把這些唯一值映射到有效的32個省市的列表,如果無法映射,那么字段通不過一致性檢驗。如“浙江”而不是“浙江省”。
3 一致性中邏輯規則的驗證相對比較復雜,指標的統計邏輯的一致性需要底層數據質量的保證,同時也要有非常規范和標準的統計邏輯的定義,所有指標的計算規則必須保證一致。常見的問題就是匯總數據和細分數據加起來的結果對不上。如果需要審核這些數據邏輯的一致性,我們可以建立一些“有效性規則”,比如A>=B,如果C=B/A,那么C的值應該在[0,1]的范圍內等,數據無法滿足這些規則時,就無法通過一致性檢驗。
四、常見可配置的監控規則
表級非空記錄:歷史全量表(無分區):表里沒有記錄條數時告警;分區表:分區等于T-1時,無數據記錄條數告警。
表環比監控:根據歷史周期計算數據量波動的范圍,設置上下閾值,環比超出閾值,進行告警。
目標表原表校驗:如果目標表的數據量同原表的數據量對比,超出環比的上下閾值,進行告警。
表主鍵唯一:如果統計出的主鍵的記錄條數和表的記錄條數不一致,進行告警。
非空校驗:表中有些字段不會出現空值的況,對該字段驚醒空值監控,如果出現空值,進行告警。
字符長度:如果數據中數據的長度超過預定長度的上下閾值進行告警
枚舉值校驗:如果數據中出現枚舉范圍外的數據,進行告警,此種情況適用于枚舉值量小的情況。
字段環比監控:如果表中某字段的值域超出波動范圍的上下閾值,進行告警,比如增長率,交易額等。
數據類型校驗:如果數字型字段,數據中出現字符,進行告警。
字段數字極值監控:如果字段的數值超過該數據設置的上下的極值,進行告警。
字段字符非法校驗:如果字段的數據中出現了非法字符,進行告警。
字段空置占比告警;如果字段中的空置率查出設定的上下閾值,進行告警。
產出時間監控:基于任務鏈路設置任務的SLA,任務超如設定時間未完成,進行告警。