當前位置:學問谷 >

行業範例 >管理 >

數據分析前提:數據質量管理四要素

數據分析前提:數據質量管理四要素

數據質量控制作為數據倉庫的基礎環節,是保障上層數據應用的基礎。數據質量保證主要包括數據概要分析(Data Profiling)、數據審核(Data Auditing)和數據修正(Data Correcting)三個部分,前一篇文章介紹了Data Profiling的相關內容,從Data Profiling的過程中獲得了數據的概要統計信息,所以下面就要用這些數據統計信息來審核數據的質量,檢查數據中是否存在髒數據,所以這一篇主要介紹數據審核(Data Auditing)的內容。

數據分析前提:數據質量管理四要素

數據質量的基本要素

首先,如何評估數據的質量,或者説怎麼樣的數據才是符合要求的數據?可以從4個方面去考慮,這4個方面共同構成了數據質量的4個基本要素。

完整性

數據的記錄和信息是否完整,是否存在缺失的情況。

數據的缺失主要有記錄的缺失和記錄中某個字段信息的缺失,兩者都會造成統計結果的不準確,所以完整性是數據質量最基礎的保障,而對完整性的評估相對比較容易。

一致性

數據的記錄是否符合規範,是否與前後及其他數據集合保持統一。

數據的一致性主要包括數據記錄的規範和數據邏輯的一致性。數據記錄的規範主要是數據編碼和格式的問題,比如網站的用户ID是15位的數字、商品ID是10位數字,商品包括20個類目、IP地址一定是用”.”分隔的4個0-255的數字組成,及一些定義的數據約束,比如完整性的非空約束、唯一值約束等;數據邏輯性主要是指標統計和計算的一致性,比如PV>=UV,新用户比例在0-1之間等。數據的一致性審核是數據質量審核中比較重要也是比較複雜的一塊。

準確性

數據中記錄的信息和數據是否準確,是否存在異常或者錯誤的信息。

導致一致性問題的原因可能是數據記錄的規則不一,但不一定存在錯誤;而準確性關注的是數據記錄中存在的錯誤,比如字符型數據的亂碼現象也應該歸到準確性的考核範疇,另外就是異常的數值,異常大或者異常小的數值,不符合有效性要求的數值,如訪問量Visits一定是整數、年齡一般在1-100之間、轉化率一定是介於0到1的值等。對數據準確性的審核有時會遇到困難,因為對於沒有明顯異常的錯誤值我們很難發現。

及時性

數據從產生到可以查看的時間間隔,也叫數據的延時時長。

雖然説分析型數據的實時性要求並不是太高,但並不意味了就沒有要求,分析師可以接受當天的數據要第二天才能查看,但如果數據要延時兩三天才能出來,或者每週的數據分析報告要兩週後才能出來,那麼分析的結論可能已經失去時效性,分析師的工作只是徒勞;同時,某些實時分析和決策需要用到小時或者分鐘級的數據,這些需求對數據的時效性要求極高。所以及時性也是數據質量的組成要素之一。

Data Auditing

基於數據質量的4個要素,可以對數據進行審核,以評估數據是否滿足完整性、一致性、準確性和及時性這4方面的要求,其中數據的及時性主要跟數據的同步和處理過程的效率相關,更多的是通過監控ETL任務的方式來保證數據的及時性,所以這裏的數據審核主要指的是評估數據的完整性、一致性和準確性。

完整性

我們從Data Profiling得到的數據統計信息裏面看看哪些可以用來審核數據的完整性。首先是記錄的完整性,一般使用統計的記錄數和唯一值個數。比如網站每天的日誌記錄數是相對恆定的,大概在1000萬上下波動,如果某天的日誌記錄數下降到了只有100萬,那很有可能記錄缺失了;或者網站的訪問記錄應該在一天的24小時均有分佈,如果某個整點完全沒有用户訪問記錄,那麼很有可能網站在當時出了問題或者那個時刻的日誌記錄傳輸出現了問題;再如統計訪客的地域分佈時,一般會包括全國的32個省份直轄市,如果統計的省份唯一值個數少於32,那麼很有可能數據也存在缺失。

完整性的另一方面,記錄中某個字段的數據缺失,可以使用統計信息中的空值(NULL)的個數進行審核。如果某個字段的信息理論上必然存在,比如訪問的頁面地址、購買的商品ID等,那麼這些字段的空值個數的統計就應該是0,這些字段我們可以使用非空(NOT NULL)約束來保證數據的完整性;對於某些允許空的字段,比如用户的cookie信息不一定存在(用户禁用cookie),但空值的佔比基本恆定,比如cookie為空的用户比例通常在2%-3%,我們同樣可以使用統計的空值個數來計算空值佔比,如果空值的佔比明顯增大,很有可能這個字段的記錄出現了問題,信息出現缺失。

一致性

如果數據記錄格式有標準的編碼規則,那麼對數據記錄的一致性檢驗比較簡單,只要驗證所有的記錄是否滿足這個編碼規則就可以,最簡單的就是使用字段的`長度、唯一值個數這些統計量。比如對用户ID的編碼是15位數字,那麼字段的最長和最短字符數都應該是15;或者商品ID是P開始後面跟10位數字,可以用同樣的方法檢驗;如果字段必須保證唯一,那麼字段的唯一值個數跟記錄數應該是一致的,比如用户的註冊郵箱;再如地域的省份直轄市一定是統一編碼的,記錄的一定是“上海”而不是“上海市”、“浙江”而不是“浙江省”,可以把這些唯一值映射到有效的32個省市的列表,如果無法映射,那麼字段通不過一致性檢驗。

一致性中邏輯規則的驗證相對比較複雜,很多時候指標的統計邏輯的一致性需要底層數據質量的保證,同時也要有非常規範和標準的統計邏輯的定義,所有指標的計算規則必須保證一致。我們經常犯的錯誤就是彙總數據和細分數據加起來的結果對不上,導致這個問題很有可能的原因就是數據在細分的時候把那些無法明確歸到某個細分項的數據給排除了,比如在細分訪問來源的時候,如果我們無法將某些非直接進入的來源明確地歸到外部鏈接、搜索引擎、廣告等這些既定的來源分類,但也不應該直接過濾掉這些數據,而應該給一個“未知來源”的分類,以保證根據來源細分之後的數據加起來還是可以與總體的數據保持一致。如果需要審核這些數據邏輯的一致性,我們可以建立一些“有效性規則”,比如A>=B,如果C=B/A,那麼C的值應該在[0,1]的範圍內等,數據無法滿足這些規則就無法通過一致性檢驗。

準確性

數據的準確性可能存在於個別記錄,也可能存在於整個數據集。如果整個數據集的某個字段的數據存在錯誤,比如常見的數量級的記錄錯誤,這種錯誤很容易發現,利用Data Profiling的平均數和中位數也可以發現這類問題。當數據集中存在個別的異常值時,可以使用最大值和最小值的統計量去審核,或者使用箱線圖也可以讓異常記錄一目瞭然。

還有幾個準確性的審核問題,字符亂碼的問題或者字符被截斷的問題,可以使用分佈來發現這類問題,一般的數據記錄基本符合正態分佈或者類正態分佈,那麼那些佔比異常小的數據項很可能存在問題,比如某個字符記錄佔總體的佔比只有0.1%,而其他的佔比都在3%以上,那麼很有可能這個字符記錄有異常,一些ETL工具的數據質量審核會標識出這類佔比異常小的記錄值。對於數值範圍既定的數據,也可以有效性的限制,超過數據有效的值域定義數據記錄就是錯誤的。

如果數據並沒有顯著異常,但仍然可能記錄的值是錯誤的,只是這些值與正常的值比較接近而已,這類準確性檢驗最困難,一般只能與其他來源或者統計結果進行比對來發現問題,如果使用超過一套數據收集系統或者網站分析工具,那麼通過不同數據來源的數據比對可以發現一些數據記錄的準確性問題。

via:網站數據分析

  • 文章版權屬於文章作者所有,轉載請註明 https://xuewengu.com/flhy/guanli/dqewmp.html