數(shù)據(jù)質(zhì)量一直是數(shù)據(jù)倉庫領(lǐng)域一個比較令人頭疼的問題,因為數(shù)據(jù)倉庫上層對接很多業(yè)務(wù)系統(tǒng),業(yè)務(wù)系統(tǒng)的臟數(shù)據(jù),業(yè)務(wù)系統(tǒng)變更,都會直接影響數(shù)據(jù)倉庫的數(shù)據(jù)質(zhì)量。因此數(shù)據(jù)倉庫的數(shù)據(jù)質(zhì)量建設(shè)是一些公司的重點(diǎn)工作。
一、數(shù)據(jù)質(zhì)量
數(shù)據(jù)質(zhì)量的高低代表了該數(shù)據(jù)滿足數(shù)據(jù)消費(fèi)者期望的程度,這種程度基于他們對數(shù)據(jù)的使用預(yù)期。數(shù)據(jù)質(zhì)量必須是可測量的,把測量的結(jié)果轉(zhuǎn)化為可以理解的和可重復(fù)的數(shù)字,使我們能夠在不同對象之間和跨越不同時間進(jìn)行比較。 數(shù)據(jù)質(zhì)量管理是通過計劃、實(shí)施和控制活動,運(yùn)用質(zhì)量管理技術(shù)度量、評估、改進(jìn)和保證數(shù)據(jù)的恰當(dāng)使用。
二、數(shù)據(jù)質(zhì)量維度
1、準(zhǔn)確性:數(shù)據(jù)不正確或描述對象過期
2、合規(guī)性:數(shù)據(jù)是否以非標(biāo)準(zhǔn)格式存儲
3、完備性:數(shù)據(jù)不存在
4、及時性:關(guān)鍵數(shù)據(jù)是否能夠及時傳遞到目標(biāo)位置
5、一致性:數(shù)據(jù)沖突
6、重復(fù)性:記錄了重復(fù)數(shù)據(jù)

三、數(shù)據(jù)質(zhì)量分析
數(shù)據(jù)質(zhì)量分析的主要任務(wù)就是檢查數(shù)據(jù)中是否存在臟數(shù)據(jù),臟數(shù)據(jù)一般是指不符合要求以及不能直接進(jìn)行相關(guān)分析的數(shù)據(jù)。臟數(shù)據(jù)包括以下內(nèi)容:
1、缺省值
2、異常值
3、不一致的值
4、重復(fù)數(shù)據(jù)以及含有特殊符號(如#、¥、*)的數(shù)據(jù)
我們已經(jīng)知道了臟數(shù)據(jù)有4個方面的內(nèi)容,接下來我們逐一來看這些數(shù)據(jù)的產(chǎn)生原因,影響以及解決辦法。
第一、 缺省值分析
產(chǎn)生原因:
1、有些信息暫時無法獲取,或者獲取信息的代價太大
2、有些信息是被遺漏的,人為或者信息采集機(jī)器故障
3、屬性值不存在,比如一個未婚者配偶的姓名、一個兒童的固定收入
影響:
1、會丟失大量的有用信息
2、數(shù)據(jù)額挖掘模型表現(xiàn)出的不確定性更加顯著,模型中蘊(yùn)含的規(guī)律更加難以把握
3、包含空值的數(shù)據(jù)回事建模過程陷入混亂,導(dǎo)致不可靠輸出
解決方法:通過簡單的統(tǒng)計分析,可以得到含有缺失值的屬性個數(shù),以及每個屬性的未缺失數(shù)、缺失數(shù)和缺失率。刪除含有缺失值的記錄、對可能值進(jìn)行插補(bǔ)和不處理三種情況。
第二、 異常值分析
產(chǎn)生原因:業(yè)務(wù)系統(tǒng)檢查不充分,導(dǎo)致異常數(shù)據(jù)輸入數(shù)據(jù)庫
影響:不對異常值進(jìn)行處理會導(dǎo)致整個分析過程的結(jié)果出現(xiàn)很大偏差
解決辦法:可以先對變量做一個描述性統(tǒng)計,進(jìn)而查看哪些數(shù)據(jù)是不合理的。最常用的統(tǒng)計量是最大值和最小值,用力啊判斷這個變量是否超出了合理的范圍。如果數(shù)據(jù)是符合正態(tài)分布,在原則下,異常值被定義為一組測定值中與平均值的偏差超過3倍標(biāo)準(zhǔn)差的值,如果不符合正態(tài)分布,也可以用原理平均值的多少倍標(biāo)準(zhǔn)差來描述。
第三、 不一致值分析
產(chǎn)生原因:不一致的數(shù)據(jù)產(chǎn)生主要發(fā)生在數(shù)據(jù)集成過程中,這可能是由于被挖掘的數(shù)據(jù)是來自不同的數(shù)據(jù)源、對于重復(fù)性存放的數(shù)據(jù)未能進(jìn)行一致性更新造成。例如,兩張表中都存儲了用戶的電話號碼,但在用戶的號碼發(fā)生改變時只更新了一張表中的數(shù)據(jù),那么兩張表中就有了不一致的數(shù)據(jù)。
影響:直接對不一致的數(shù)據(jù)進(jìn)行數(shù)據(jù)挖掘,可能會產(chǎn)生與實(shí)際相悖的數(shù)據(jù)挖掘結(jié)果。
解決辦法:注意數(shù)據(jù)抽取的規(guī)則,對于業(yè)務(wù)系統(tǒng)數(shù)據(jù)變動的控制應(yīng)該保證數(shù)據(jù)倉庫中數(shù)據(jù)抽取最新數(shù)據(jù)
第四、 重復(fù)數(shù)據(jù)及特殊數(shù)據(jù)產(chǎn)生原因:
產(chǎn)生原因:業(yè)務(wù)系統(tǒng)中未進(jìn)行檢查,用戶在錄入數(shù)據(jù)時多次保存?;蛘咭驗槟甓葦?shù)據(jù)清理導(dǎo)致。特殊字符主要在輸入時攜帶進(jìn)入數(shù)據(jù)庫系統(tǒng)。
影響:統(tǒng)計結(jié)果不準(zhǔn)確,造成數(shù)據(jù)倉庫中無法統(tǒng)計數(shù)據(jù)
解決辦法:在ETL過程中過濾這一部分?jǐn)?shù)據(jù),特殊數(shù)據(jù)進(jìn)行數(shù)據(jù)轉(zhuǎn)換。
四、數(shù)據(jù)質(zhì)量管理
大多數(shù)企業(yè)都沒有一個很好的數(shù)據(jù)質(zhì)量管理的機(jī)制,因為他們不理解其數(shù)據(jù)的價值,并且他們不認(rèn)為數(shù)據(jù)是一個組織的資產(chǎn),而把數(shù)據(jù)看作創(chuàng)建它的部門領(lǐng)域內(nèi)的東西。缺乏數(shù)據(jù)質(zhì)量管理將導(dǎo)致臟數(shù)據(jù)、冗余數(shù)據(jù)、不一致數(shù)據(jù)、無法整合、性能底下、可用性差、責(zé)任缺失、使用系統(tǒng)用戶日益不滿意IT的性能。
在做數(shù)據(jù)分析之前一般都應(yīng)該初步對數(shù)據(jù)進(jìn)行評估。初步數(shù)據(jù)評估通過數(shù)據(jù)報告來完成的,數(shù)據(jù)報告通常在準(zhǔn)備把數(shù)據(jù)存入數(shù)據(jù)倉庫是做一次,它是全面跨數(shù)據(jù)集的,它描述了數(shù)據(jù)結(jié)構(gòu)、內(nèi)容、規(guī)則、和關(guān)系的概況。通過應(yīng)用統(tǒng)計方法返回一組關(guān)于數(shù)據(jù)的標(biāo)準(zhǔn)特征,包括數(shù)據(jù)類型、字段長度、列基數(shù)、粒度、值、格式、模式、規(guī)則、跨列和跨表的數(shù)據(jù)關(guān)系,以及這些關(guān)系的基數(shù)。初步評估報告的目的是獲得對數(shù)據(jù)和環(huán)境的了解,并對數(shù)據(jù)的狀況進(jìn)行描述。數(shù)據(jù)報告應(yīng)該如下:
| 編號 | 數(shù)據(jù)質(zhì)量維度 | 檢查對象 | 檢查項 | 檢查項說明 |
|---|---|---|---|---|
| 1 | 有效性 | 數(shù)據(jù)行數(shù) | 有效性檢查,單字段、詳細(xì)結(jié)果 | 將輸入數(shù)據(jù)的值與一個既定的值域作比較 |
| 2 | 有效性 | 匯總數(shù)據(jù) | 有效性檢查,卷積匯總 | 匯總有效性檢查的詳細(xì)結(jié)果,將卷積的有效/無效值計數(shù)和百分比與歷史水平作比較 |
| 3 | 重復(fù)性 | 數(shù)據(jù)行數(shù) | 重復(fù)性檢查,單字段、詳細(xì)結(jié)果 | 將輸入數(shù)據(jù)的值與一個既定的值域數(shù)據(jù)作比較,檢查數(shù)據(jù)是否重復(fù) |
| 4 | 重復(fù)性 | 匯總數(shù)據(jù) | 重復(fù)性檢查,卷積匯總 | 匯總重復(fù)性檢查的詳細(xì)結(jié)果,將卷積的重復(fù)數(shù)據(jù)計數(shù)和百分比與歷史水平作比較 |
| 5 | 一致性 | 數(shù)據(jù)行數(shù) | 一致性剖析 | 合理性檢查,將記錄數(shù)據(jù)的分布,與國企填充相同的字段的數(shù)據(jù)實(shí)例作比較 |
| 6 | 一致性 | 匯總數(shù)據(jù) | 數(shù)據(jù)集內(nèi)容的一致性,所表示的實(shí)體的不重復(fù)計數(shù)和記錄數(shù)比率 | 合理性檢查,將數(shù)據(jù)集內(nèi)所表示的實(shí)體的不同值計數(shù)與閾值、歷史計數(shù)、或總記錄數(shù)作比較 |
| 7 | 一致性 | 匯總數(shù)據(jù) | 數(shù)據(jù)集內(nèi)容的一致性,二個所表示的實(shí)體的不重復(fù)計數(shù)的比率 | 合理性檢查,將重要字段/實(shí)體的不同值計數(shù)的比率與閾值或歷史比率作比較 |
| 8 | 一致性 | 數(shù)據(jù)行數(shù) | 一致性多列剖析 | 合理性檢查,為了測試業(yè)務(wù)規(guī)則,將跨多個字段的值的記錄數(shù)分布和歷史百分比作比較 |
| 9 | 一致性 | 日期時間類型檢查 | 表內(nèi)時序與業(yè)務(wù)規(guī)則的一致性 | 合理性檢查,將日期與時序的業(yè)務(wù)規(guī)則作比較 |
| 10 | 一致性 | 日期時間類型檢查 | 用時一致性 | 合理性檢查,將經(jīng)過的時間與過去填充相同字段的數(shù)據(jù)的實(shí)例作比較 |
| 11 | 一致性 | 數(shù)值類型檢查 | 數(shù)額字段跨二級字段計算結(jié)果的一致性 | 合理性檢查,將跨一個或多個二級字段的數(shù)額列的計算結(jié)果、數(shù)量總和、占總數(shù)的百分比和平均數(shù)量與歷史計數(shù)和百分比作比較,用限定符縮小比較結(jié)果 |
| 12 | 完整性/有效性 | 數(shù)據(jù)行數(shù) | 有效性檢查,表內(nèi)多列,詳細(xì)結(jié)果 | 將同一個表中相關(guān)列的值與映射關(guān)系或業(yè)務(wù)規(guī)則中的值作比較 |
| 13 | 完整性/完備性 | 接收數(shù)據(jù)狀態(tài) | 數(shù)據(jù)集的完備性——重復(fù)記錄的合理性檢查 | 合理性檢查,將數(shù)據(jù)集中重復(fù)記錄占總記錄的比例與數(shù)據(jù)集以前的實(shí)例的這個比例作比較 |
| 14 | 完備性 | 數(shù)據(jù)接收 | 數(shù)據(jù)集的完備性——將大小與過去的大小作比較 | 合理性檢查,將輸入的大小與以前運(yùn)行同樣的過程時的輸入大小、文件記錄數(shù)據(jù)、消息的數(shù)目或速率、匯總數(shù)據(jù)等作比較 |
| 15 | 完備性 | 接收數(shù)據(jù)狀態(tài) | 字段內(nèi)容的完備性——來自數(shù)據(jù)源的默認(rèn)值 | 合理性檢查,將數(shù)據(jù)源提供的關(guān)鍵字段的默認(rèn)值記錄數(shù)據(jù)和百分比與一個既定的閾值或歷史數(shù)量和百分比作比較 |
| 16 | 完備性 | 接收數(shù)據(jù)狀態(tài) | 基于日期標(biāo)準(zhǔn)的數(shù)據(jù)集的合理性 | 確保關(guān)鍵日期字段的最小和最大日期符合某個合理性規(guī)則 |
| 17 | 完備性 | 數(shù)據(jù)處理 | 數(shù)據(jù)集的完備性——拒絕記錄的理由 | 合理性檢查,將出于特定原因而被刪除的記錄數(shù)據(jù)和百分比與一個既定的閾值或歷史數(shù)據(jù)和百分比作比較 |
| 18 | 完備性 | 數(shù)據(jù)處理 | 經(jīng)過一個流程的數(shù)據(jù)集的完備性——輸入和輸出的利率 | 合理性檢查,將處理的輸入和輸出之間的比率與數(shù)據(jù)集以前的實(shí)例的這個比率作比較 |
| 19 | 完備性 | 數(shù)值類型檢查 | 字段內(nèi)容的完備性——匯總的數(shù)額字段數(shù)的比率 | 數(shù)額字段合理性檢查,將輸入和輸出數(shù)額字段匯總數(shù)的比率與數(shù)據(jù)集以前的實(shí)例的比率作比較,用于不完全平衡 |
| 20 | 完備性 | 數(shù)據(jù)處理 | 字段內(nèi)容的完備性——推導(dǎo)的默認(rèn)值 | 合理性檢查,將推導(dǎo)字段的默認(rèn)值記錄數(shù)和百分比與一個既定的閾值或歷史數(shù)量和百分比作比較 |
| 21 | 及時性 | 流程處理檢查 | 用于處理的數(shù)據(jù)的交付及及時性 | 把數(shù)據(jù)交付的實(shí)際時間與計劃數(shù)據(jù)交付時間作比較 |
| 22 | 及時性 | 數(shù)據(jù)處理 | 數(shù)據(jù)處理用時 | 合理性檢查,將處理用時和歷史處理用時或一個既定的時間限制作比較 |
| 23 | 及時性 | 流程處理檢查情況 | 供訪問的數(shù)據(jù)的及時可用性 | 將數(shù)據(jù)實(shí)際可供數(shù)據(jù)的消費(fèi)者訪問的時間與計劃的數(shù)據(jù)可用時間作比較 |
| 24 | 一致性 | 數(shù)據(jù)模型 | 一個字段內(nèi)的格式一致性 | 評估列屬性和數(shù)據(jù)在字段內(nèi)數(shù)據(jù)格式一致性 |
| 25 | 一致性 | 數(shù)據(jù)模型 | 一個字段默認(rèn)值使用的一致性 | 評估列屬性和數(shù)據(jù)在可被賦予默認(rèn)值的每個字段中的默認(rèn)值 |
| 26 | 完整性/一致性 | 數(shù)據(jù)模型 | 跨表的格式一致性 | 評估列屬性和數(shù)據(jù)在整個數(shù)據(jù)庫中相同數(shù)據(jù)類型的字段內(nèi)數(shù)據(jù)格式的一致性 |
| 27 | 完整性/一致性 | 數(shù)據(jù)模型 | 跨表的默認(rèn)值使用的一致性 | 評估列屬性和數(shù)據(jù)在相同數(shù)據(jù)類型的字段默認(rèn)值上的一致性 |
| 28 | 完備性 | 總體數(shù)據(jù)庫內(nèi)容 | 數(shù)據(jù)集的完備性——元數(shù)據(jù)和參考數(shù)據(jù)的充分性 | 評估元數(shù)據(jù)和參考數(shù)據(jù)的充分性 |
| 29 | 一致性 | 匯總數(shù)據(jù)日期檢查 | 按聚合日期匯總的記錄數(shù)的一致性 | 合理性檢查,把與某個聚合日期關(guān)聯(lián)的記錄數(shù)和百分比與歷史記錄數(shù)和百分比作比較 |
| 30 | 一致性 | 匯總數(shù)據(jù)日期檢查 | 按聚合日期匯總的數(shù)額字段數(shù)據(jù)的一致性 | 合理性檢查,把按聚合日期匯總的數(shù)額字段數(shù)據(jù)總計和百分比與歷史總計和百分比 |
| 31 | 一致性 | 總體數(shù)據(jù)庫內(nèi)容 | 與外部基準(zhǔn)比較的一致性 | 把數(shù)據(jù)質(zhì)量測量結(jié)果與一組基準(zhǔn),如行業(yè)或國家為類似的數(shù)據(jù)建立的外部測量基準(zhǔn)作比較 |
| 32 | 一致性 | 總體數(shù)據(jù)庫內(nèi)容 | 數(shù)據(jù)集的完備性——針對特定目的的總體充分性 | 把宏觀數(shù)據(jù)庫內(nèi)容(例如:數(shù)據(jù)域、記錄數(shù)、數(shù)據(jù)的歷史廣度、表示的實(shí)體)與特定數(shù)據(jù)用途的需求作比較 |
| 33 | 一致性 | 總體數(shù)據(jù)庫內(nèi)容 | 數(shù)據(jù)集的完備性——測量和控制的總體充分性 | 評估測量和控制的成效 |
| 34 | 完整性/有效性 | 跨庫跨表數(shù)據(jù)檢查 | 有效性檢查,跨表,詳細(xì)結(jié)果 | 比較跨表的映射或業(yè)務(wù)規(guī)則的關(guān)系中的值,以保證數(shù)據(jù)關(guān)聯(lián)一致性 |
| 35 | 完整性/一致性 | 跨庫跨表數(shù)據(jù)檢查 | 跨表多列剖析一致性 | 跨表合理性檢查,將跨相關(guān)表的字段的值的記錄數(shù)據(jù)分布于歷史百分比作比較,用于測試遵從業(yè)務(wù)規(guī)則的情況 |
| 36 | 完整性/一致性 | 跨庫跨表時序檢查 | 跨表的時序與業(yè)務(wù)規(guī)則的一致性 | 跨表合理性檢查,對日期值與跨表的業(yè)務(wù)規(guī)則進(jìn)行時序比較 |
| 37 | 完整性/一致性 | 跨表的數(shù)值類型檢查 | 跨表數(shù)額列計算結(jié)果的一致性 | 跨表合理性檢查,比較相關(guān)表的匯總數(shù)額字段總計,占總計百分比、平均值或它們之間的比率 |
| 38 | 完整性/一致性 | 跨表的匯總數(shù)據(jù)日期檢查 | 按聚合日期匯總跨表數(shù)額列的一致性 | 跨表合理性檢查,比較相關(guān)表的按聚合日期匯總的數(shù)額字段總計、占總計百分比 |
| 39 | 完整性/完備性 | 跨庫跨表數(shù)據(jù)檢查 | 父/子參考完整性 | 確定父表/子表之間的參考完整性,以找出無父記錄的子記錄和值 |
| 40 | 完整性/完備性 | 跨庫跨表數(shù)據(jù)檢查 | 子/父參考完整性 | 確定父表/子表之間的參考完整性,以找出無子記錄的父記錄和值 |
| 41 | 完整性/完備性 | 接收數(shù)據(jù)狀態(tài) | 數(shù)據(jù)集的完備性——重復(fù)數(shù)據(jù)刪除 | 確定并刪除重復(fù)記錄 |
| 42 | 完備性 | 數(shù)據(jù)接收 | 數(shù)據(jù)集的完備性——對于處理的可用性 | 對于文件,確認(rèn)要處理的所有文件都可用 |
| 43 | 完備性 | 數(shù)據(jù)接收 | 數(shù)據(jù)集的完備性——記錄數(shù)與控制記錄相比 | 對于文件,對文件中的記錄數(shù)據(jù)和在一個控制記錄中記載的記錄數(shù)作比較 |
| 44 | 完備性 | 數(shù)據(jù)接收 | 數(shù)據(jù)集的完備性——匯總數(shù)額字段數(shù)據(jù) | 對于文件,對數(shù)額字段的匯總值和在一個控制記錄中的匯總值作比較 |
| 45 | 完備性 | 接收數(shù)據(jù)狀態(tài) | 記錄的完備性——長度 | 確保記錄的長度滿足已定義的期望 |
| 46 | 完備性 | 接收數(shù)據(jù)狀態(tài) | 字段的完備性——不可為空的字段 | 確保所有不可為空的字段都被填充 |
| 47 | 完備性 | 接收數(shù)據(jù)狀態(tài) | 基于日期標(biāo)準(zhǔn)的數(shù)據(jù)集的完備性 | 確保關(guān)鍵日期字段的最小和最大日期符合確定加載數(shù)據(jù)參數(shù)的規(guī)定范圍 |
| 48 | 完備性 | 接收數(shù)據(jù)狀態(tài) | 字段內(nèi)容的完備性——接收到的數(shù)據(jù)缺少要處理的關(guān)鍵字段 | 在處理記錄前檢測字段的填充情況 |
| 49 | 完備性 | 數(shù)據(jù)處理 | 數(shù)據(jù)集的完備性——經(jīng)過一個流程的記錄數(shù)據(jù)的平衡 | 整個數(shù)據(jù)處理過程的記錄數(shù)、被拒絕的記錄數(shù)據(jù)平衡,包括重復(fù)記錄數(shù)平衡,用于完全平衡的情況 |
| 50 | 完備性 | 數(shù)據(jù)處理 | 經(jīng)過一個流程的數(shù)據(jù)集的完備性—— 數(shù)額字段的平衡 | 整個過程中的數(shù)額字段內(nèi)容平衡,用于完全平衡的情況 |
五、總結(jié)
? 數(shù)據(jù)報告中列出了很多的檢查項都是圍繞數(shù)據(jù)質(zhì)量管理相關(guān)的檢查,所以做一個數(shù)據(jù)分析項目前一定要知道客戶的數(shù)據(jù)質(zhì)量情況。如果數(shù)據(jù)質(zhì)量很糟糕,最終影響的是項目分析的實(shí)際效果。例如,用戶業(yè)務(wù)系統(tǒng)中客戶信息只輸入了客戶名稱,要分析客戶類型就會存在缺省值。當(dāng)然有一些維度屬性我們可以通過事實(shí)表反算數(shù)據(jù)進(jìn)入維度表來補(bǔ)充維度屬性。個人建議在數(shù)據(jù)分析項目中一定要對維度屬性進(jìn)行評估,在項目處理前利用簡單的模型告訴客戶能夠出具的效果。