數據質量一直是數據倉庫領域一個比較使人頭疼的問題,由於數據倉庫上層對接不少業務系統,業務系統的髒數據,業務系統變動,都會直接影響數據倉庫的數據質量。所以數據倉庫的數據質量建設是一些公司的重點工做。數據庫
1、數據質量數據結構
數據質量的高低表明了該數據知足數據消費者指望的程度,這種程度基於他們對數據的使用預期。數據質量必須是可測量的,把測量的結果轉化爲能夠理解的和可重複的數字,使咱們可以在不一樣對象之間和跨越不一樣時間進行比較。 數據質量管理是經過計劃、實施和控制活動,運用質量管理技術度量、評估、改進和保證數據的恰當使用。性能
2、數據質量維度測試
一、準確性:數據不正確或描述對象過時spa
二、合規性:數據是否以非標準格式存儲對象
三、完備性:數據不存在ci
四、及時性:關鍵數據是否可以及時傳遞到目標位置數據分析
五、一致性:數據衝突自動化
六、重複性:記錄了重複數據數據挖掘
3、數據質量分析
數據質量分析的主要任務就是檢查數據中是否存在髒數據,髒數據通常是指不符合要求以及不能直接進行相關分析的數據。髒數據包括如下內容:
一、缺省值
二、異常值
三、不一致的值
四、重複數據以及含有特殊符號(如#、¥、*)的數據
咱們已經知道了髒數據有4個方面的內容,接下來咱們逐一來看這些數據的產生緣由,影響以及解決辦法。
第1、 缺省值分析
產生緣由:
一、有些信息暫時沒法獲取,或者獲取信息的代價太大
二、有些信息是被遺漏的,人爲或者信息採集機器故障
三、屬性值不存在,好比一個未婚者配偶的姓名、一個兒童的固定收入
影響:
一、會丟失大量的有用信息
二、數據額挖掘模型表現出的不肯定性更加顯著,模型中蘊含的規律更加難以把握
三、包含空值的數據回事建模過程陷入混亂,致使不可靠輸出
解決辦法:
經過簡單的統計分析,能夠獲得含有缺失值的屬性個數,以及每一個屬性的未缺失數、缺失數和缺失率。刪除含有缺失值的記錄、對可能值進行插補和不處理三種狀況。
第2、 異常值分析
產生緣由:業務系統檢查不充分,致使異常數據輸入數據庫
影響:不對異常值進行處理會致使整個分析過程的結果出現很大誤差
解決辦法:能夠先對變量作一個描述性統計,進而查看哪些數據是不合理的。最經常使用的統計量是最大值和最小值,用力啊判斷這個變量是否超出了合理的範圍。若是數據是符合正態分佈,在原則下,異常值被定義爲一組測定值中與平均值的誤差超過3倍標準差的值,若是不符合正態分佈,也能夠用原理平均值的多少倍標準差來描述。
第3、 不一致值分析
產生緣由:不一致的數據產生主要發生在數據集成過程當中,這多是因爲被挖掘的數據是來自不一樣的數據源、對於重複性存放的數據未能進行一致性更新形成。例如,兩張表中都存儲了用戶的電話號碼,但在用戶的號碼發生改變時只更新了一張表中的數據,那麼兩張表中就有了不一致的數據。
影響:直接對不一致的數據進行數據挖掘,可能會產生與實際相悖的數據挖掘結果。
解決辦法:注意數據抽取的規則,對於業務系統數據變更的控制應該保證數據倉庫中數據抽取最新數據
第4、 重複數據及特殊數據產生緣由:
產生緣由:業務系統中未進行檢查,用戶在錄入數據時屢次保存。或者由於年度數據清理致使。特殊字符主要在輸入時攜帶進入數據庫系統。
影響:統計結果不許確,形成數據倉庫中沒法統計數據
解決辦法:在ETL過程當中過濾這一部分數據,特殊數據進行數據轉換。
4、數據質量管理
大多數企業都沒有一個很好的數據質量管理的機制,由於他們不理解其數據的價值,而且他們不認爲數據是一個組織的資產,而把數據看做建立它的部門領域內的東西。缺少數據質量管理將致使髒數據、冗餘數據、不一致數據、沒法整合、性能底下、可用性差、責任缺失、使用系統用戶日益不滿意IT的性能。
在作數據分析以前通常都應該初步對數據進行評估。初步數據評估經過數據報告來完成的,數據報告一般在準備把數據存入數據倉庫是作一次,它是全面跨數據集的,它描述了數據結構、內容、規則、和關係的概況。經過應用統計方法返回一組關於數據的標準特徵,包括數據類型、字段長度、列基數、粒度、值、格式、模式、規則、跨列和跨表的數據關係,以及這些關係的基數。初步評估報告的目的是得到對數據和環境的瞭解,並對數據的情況進行描述。數據報告應該以下:
編號 |
數據質量維度 |
檢查對象 |
檢查項 |
檢查項說明 |
1 |
有效性 |
數據行數 |
有效性檢查,單字段、詳細結果 |
將輸入數據的值與一個既定的值域做比較 |
2 |
有效性 |
彙總數據 |
有效性檢查,卷積彙總 |
彙總有效性檢查的詳細結果,將卷積的有效/無效值計數和百分比與歷史水平做比較 |
3 |
重複性 |
數據行數 |
重複性檢查,單字段、詳細結果 |
將輸入數據的值與一個既定的值域數據做比較,檢查數據是否重複 |
4 |
重複性 |
彙總數據 |
重複性檢查,卷積彙總 |
彙總重複性檢查的詳細結果,將卷積的重複數據計數和百分比與歷史水平做比較 |
5 |
一致性 |
數據行數 |
一致性剖析 |
合理性檢查,將記錄數據的分佈,與國企填充相同的字段的數據實例做比較 |
6 |
一致性 |
彙總數據 |
數據集內容的一致性,所表示的實體的不重複計數和記錄數比率 |
合理性檢查,將數據集內所表示的實體的不一樣值計數與閾值、歷史計數、或總記錄數做比較 |
7 |
一致性 |
彙總數據 |
數據集內容的一致性,二個所表示的實體的不重複計數的比率 |
合理性檢查,將重要字段/實體的不一樣值計數的比率與閾值或歷史比率做比較 |
8 |
一致性 |
數據行數 |
一致性多列剖析 |
合理性檢查,爲了測試業務規則,將跨多個字段的值的記錄數分佈和歷史百分比做比較 |
9 |
一致性 |
日期時間類型檢查 |
表內時序與業務規則的一致性 |
合理性檢查,將日期與時序的業務規則做比較 |
10 |
一致性 |
日期時間類型檢查 |
用時一致性 |
合理性檢查,將通過的時間與過去填充相同字段的數據的實例做比較 |
11 |
一致性 |
數值類型檢查 |
數額字段跨二級字段計算結果的一致性 |
合理性檢查,將跨一個或多個二級字段的數額列的計算結果、數量總和、佔總數的百分比和平均數量與歷史計數和百分比做比較,用限定符縮小比較結果 |
12 |
完整性/有效性 |
數據行數 |
有效性檢查,表內多列,詳細結果 |
將同一個表中相關列的值與映射關係或業務規則中的值做比較 |
13 |
完整性/完備性 |
接收數據狀態 |
數據集的完備性——重複記錄的合理性檢查 |
合理性檢查,將數據集中重複記錄佔總記錄的比例與數據集之前的實例的這個比例做比較 |
14 |
完備性 |
數據接收 |
數據集的完備性——將大小與過去的大小做比較 |
合理性檢查,將輸入的大小與之前運行一樣的過程時的輸入大小、文件記錄數據、消息的數目或速率、彙總數據等做比較 |
15 |
完備性 |
接收數據狀態 |
字段內容的完備性——來自數據源的默認值 |
合理性檢查,將數據源提供的關鍵字段的默認值記錄數據和百分比與一個既定的閾值或歷史數量和百分比做比較 |
16 |
完備性 |
接收數據狀態 |
基於日期標準的數據集的合理性 |
確保關鍵日期字段的最小和最大日期符合某個合理性規則 |
17 |
完備性 |
數據處理 |
數據集的完備性——拒絕記錄的理由 |
合理性檢查,將出於特定緣由而被刪除的記錄數據和百分比與一個既定的閾值或歷史數據和百分比做比較 |
18 |
完備性 |
數據處理 |
通過一個流程的數據集的完備性——輸入和輸出的利率 |
合理性檢查,將處理的輸入和輸出之間的比率與數據集之前的實例的這個比率做比較 |
19 |
完備性 |
數值類型檢查 |
字段內容的完備性——彙總的數額字段數的比率 |
數額字段合理性檢查,將輸入和輸出數額字段彙總數的比率與數據集之前的實例的比率做比較,用於不徹底平衡 |
20 |
完備性 |
數據處理 |
字段內容的完備性——推導的默認值 |
合理性檢查,將推導字段的默認值記錄數和百分比與一個既定的閾值或歷史數量和百分比做比較 |
21 |
及時性 |
流程處理檢查 |
用於處理的數據的交付及及時性 |
把數據交付的實際時間與計劃數據交付時間做比較 |
22 |
及時性 |
數據處理 |
數據處理用時 |
合理性檢查,將處理用時和歷史處理用時或一個既定的時間限制做比較 |
23 |
及時性 |
流程處理檢查狀況 |
供訪問的數據的及時可用性 |
將數據實際可供數據的消費者訪問的時間與計劃的數據可用時間做比較 |
24 |
一致性 |
數據模型 |
一個字段內的格式一致性 |
評估列屬性和數據在字段內數據格式一致性 |
25 |
一致性 |
數據模型 |
一個字段默認值使用的一致性 |
評估列屬性和數據在可被賦予默認值的每一個字段中的默認值 |
26 |
完整性/一致性 |
數據模型 |
跨表的格式一致性 |
評估列屬性和數據在整個數據庫中相同數據類型的字段內數據格式的一致性 |
27 |
完整性/一致性 |
數據模型 |
跨表的默認值使用的一致性 |
評估列屬性和數據在相同數據類型的字段默認值上的一致性 |
28 |
完備性 |
整體數據庫內容 |
數據集的完備性——元數據和參考數據的充分性 |
評估元數據和參考數據的充分性 |
29 |
一致性 |
彙總數據日期檢查 |
按聚合日期彙總的記錄數的一致性 |
合理性檢查,把與某個聚合日期關聯的記錄數和百分比與歷史記錄數和百分比做比較 |
30 |
一致性 |
彙總數據日期檢查 |
按聚合日期彙總的數額字段數據的一致性 |
合理性檢查,把按聚合日期彙總的數額字段數據總計和百分比與歷史總計和百分比 |
31 |
一致性 |
整體數據庫內容 |
與外部基準比較的一致性 |
把數據質量測量結果與一組基準,如行業或國家爲相似的數據創建的外部測量基準做比較 |
32 |
一致性 |
整體數據庫內容 |
數據集的完備性——針對特定目的的整體充分性 |
把宏觀數據庫內容(例如:數據域、記錄數、數據的歷史廣度、表示的實體)與特定數據用途的需求做比較 |
33 |
一致性 |
整體數據庫內容 |
數據集的完備性——測量和控制的整體充分性 |
評估測量和控制的成效 |
34 |
完整性/有效性 |
跨庫跨表數據檢查 |
有效性檢查,跨表,詳細結果 |
比較跨表的映射或業務規則的關係中的值,以保證數據關聯一致性 |
35 |
完整性/一致性 |
跨庫跨表數據檢查 |
跨表多列剖析一致性 |
跨表合理性檢查,將跨相關表的字段的值的記錄數據分佈於歷史百分比做比較,用於測試聽從業務規則的狀況 |
36 |
完整性/一致性 |
跨庫跨表時序檢查 |
跨表的時序與業務規則的一致性 |
跨表合理性檢查,對日期值與跨表的業務規則進行時序比較 |
37 |
完整性/一致性 |
跨表的數值類型檢查 |
跨表數額列計算結果的一致性 |
跨表合理性檢查,比較相關表的彙總數額字段總計,佔總計百分比、平均值或它們之間的比率 |
38 |
完整性/一致性 |
跨表的彙總數據日期檢查 |
按聚合日期彙總跨表數額列的一致性 |
跨表合理性檢查,比較相關表的按聚合日期彙總的數額字段總計、佔總計百分比 |
39 |
完整性/完備性 |
跨庫跨表數據檢查 |
父/子參考完整性 |
肯定父表/子表之間的參考完整性,以找出無父記錄的子記錄和值 |
40 |
完整性/完備性 |
跨庫跨表數據檢查 |
子/父參考完整性 |
肯定父表/子表之間的參考完整性,以找出無子記錄的父記錄和值 |
41 |
完整性/完備性 |
接收數據狀態 |
數據集的完備性——重複數據刪除 |
肯定並刪除重複記錄 |
42 |
完備性 |
數據接收 |
數據集的完備性——對於處理的可用性 |
對於文件,確認要處理的全部文件均可用 |
43 |
完備性 |
數據接收 |
數據集的完備性——記錄數與控制記錄相比 |
對於文件,對文件中的記錄數據和在一個控制記錄中記載的記錄數做比較 |
44 |
完備性 |
數據接收 |
數據集的完備性——彙總數額字段數據 |
對於文件,對數額字段的彙總值和在一個控制記錄中的彙總值做比較 |
45 |
完備性 |
接收數據狀態 |
記錄的完備性——長度 |
確保記錄的長度知足已定義的指望 |
46 |
完備性 |
接收數據狀態 |
字段的完備性——不可爲空的字段 |
確保全部不可爲空的字段都被填充 |
47 |
完備性 |
接收數據狀態 |
基於日期標準的數據集的完備性 |
確保關鍵日期字段的最小和最大日期符合肯定加載數據參數的規定範圍 |
48 |
完備性 |
接收數據狀態 |
字段內容的完備性——接收到的數據缺乏要處理的關鍵字段 |
在處理記錄前檢測字段的填充狀況 |
49 |
完備性 |
數據處理 |
數據集的完備性——通過一個流程的記錄數據的平衡 |
整個數據處理過程的記錄數、被拒絕的記錄數據平衡,包括重複記錄數平衡,用於徹底平衡的狀況 |
50 |
完備性 |
數據處理 |
通過一個流程的數據集的完備性—— 數額字段的平衡 |
整個過程當中的數額字段內容平衡,用於徹底平衡的狀況 |
5、總結
數據報告中列出了不少的檢查項都是圍繞數據質量管理相關的檢查,因此作一個數據分析項目前必定要知道客戶的數據質量狀況。若是數據質量很糟糕,最終影響的是項目分析的實際效果。例如,用戶業務系統中客戶信息只輸入了客戶名稱,要分析客戶類型就會存在缺省值。固然有一些維度屬性咱們能夠經過事實表反算數據進入維度表來補充維度屬性。我的建議在數據分析項目中必定要對維度屬性進行評估,在項目處理前利用簡單的模型告訴客戶可以出具的效果。
本文就講到這裏,文章中若有錯誤或誤導的地方歡迎你們指出糾正。 但願這篇文章可以給你們帶來幫助,最後感謝你們的閱讀。下一篇數據倉庫系列之關於數據倉庫自動化技術。
歡迎你們關注個人公衆號:小黎子數據分析