分析的前提—數(shù)據(jù)質(zhì)量3
來源:解決方案 2012-11-21
前面的兩篇文章——分析的前提—數(shù)據(jù)質(zhì)量1和分析的前提—數(shù)據(jù)質(zhì)量2分別介紹了通過Data Profiling的方法獲取數(shù)據(jù)的統(tǒng)計信息,并使用Data Auditing來評估數(shù)據(jù)是否存在質(zhì)量問題,數(shù)據(jù)的質(zhì)量問題可以通過完整性、準(zhǔn)確性和一致性三個方面進(jìn)行審核這篇文章介紹最后一塊內(nèi)容——數(shù)據(jù)修正(Data Correcting)
數(shù)據(jù)審核幫助我們發(fā)現(xiàn)數(shù)據(jù)中存在的問題,而這些問題有時候可以利用一些方法就行修正,從而提升數(shù)據(jù)的整體質(zhì)量,數(shù)據(jù)修正就是為了完成這個任務(wù),可以從以下幾個方面進(jìn)行修正:
填補(bǔ)缺失值
對于記錄缺失的問題,最簡單的辦法就是數(shù)據(jù)回補(bǔ)一般而言統(tǒng)計指標(biāo)數(shù)據(jù)缺失可以從原始數(shù)據(jù)中重新統(tǒng)計獲取,而原始數(shù)據(jù)缺失可以從抽取的數(shù)據(jù)源或者備份數(shù)據(jù)中回補(bǔ)如果原始數(shù)據(jù)完全丟失,基本就回天無力了
對于字段值的缺失,很多資料都會介紹使用一些統(tǒng)計學(xué)的方法進(jìn)行修補(bǔ),其實就是對缺失值的預(yù)測或者估計,一般會使用平均數(shù)、眾數(shù)、前后值取平均等方法,或者使用回歸分析的方法擬合指標(biāo)的變化趨勢后進(jìn)行預(yù)測這些方法在缺失值無法使用其他途徑找回或者重新統(tǒng)計計算,并且在缺失值有變化規(guī)律可循的前提下都是可取的,當(dāng)某天的指標(biāo)值丟失時可以通過這類方法根據(jù)前幾天的數(shù)據(jù)來預(yù)估該天的數(shù)值
刪除重復(fù)記錄
數(shù)據(jù)集里面某些字段的值必然是唯一的,比如按天統(tǒng)計的指標(biāo)值中的日期字段,用戶信息表的用戶ID等,這些需要保證唯一的規(guī)則可以對數(shù)據(jù)庫設(shè)置唯一約束,但我們在做ETL處理時,有時為了保證數(shù)據(jù)加載全過程可以不因為違反唯一約束而中斷(有時Load的過程需要較長的時間或處理成本,ETL需要有容錯能力以保證整個過程不被中斷)會先忽略重復(fù)記錄,待整個ETL過程結(jié)束后再對需要保證唯一的字段進(jìn)行去重處理
這些重復(fù)記錄可以比對Data Profiling中數(shù)據(jù)統(tǒng)計信息的唯一值個數(shù)和記錄總數(shù)是否一致進(jìn)行審核,而進(jìn)行修正的最簡單辦法就是重復(fù)記錄僅保留一條,刪除其他記錄這個需要根據(jù)現(xiàn)實情況,有時也可能使用把重復(fù)記錄的統(tǒng)計量相加的方法進(jìn)行去重
轉(zhuǎn)化不一致記錄
數(shù)據(jù)的轉(zhuǎn)化是數(shù)據(jù)倉庫抽取數(shù)據(jù)過程中最常見的處理,因為數(shù)據(jù)倉庫“集成性”的特征,需要把來自多個數(shù)據(jù)源的數(shù)據(jù)集中存入數(shù)據(jù)倉庫,而不同數(shù)據(jù)源對某些含義相同的字段的編碼規(guī)則會存在差異,比如用戶ID,雖然是相同的用戶,但可能A系統(tǒng)的ID是u1001,B系統(tǒng)是1001,C系統(tǒng)是,來源于這三套系統(tǒng)的用戶ID就需要統(tǒng)一,比如我們將A數(shù)據(jù)源的u前綴去除,C系統(tǒng)ID除100后統(tǒng)一成B系統(tǒng)的編碼方式一起導(dǎo)入數(shù)據(jù)庫;即使是來源于同一套日志,也可能存在記錄的不一致,比如之前遇到較早發(fā)布的產(chǎn)品版本記錄的日志中移動操作系統(tǒng)是Android,而版本更新后記錄改成了android,新老版本的日志打到了一起,于是也會涉及數(shù)據(jù)的轉(zhuǎn)化,但這種記錄的不一致性無疑會增加ETL的處理成本
上面舉例的轉(zhuǎn)化規(guī)則是比較簡單的,在數(shù)據(jù)倉庫的ETL處理數(shù)據(jù)轉(zhuǎn)化時可能會遇到一些很BT的規(guī)則,這個時候最關(guān)鍵的還是對數(shù)據(jù)源記錄方式足夠的熟悉,這樣才能保證進(jìn)入數(shù)據(jù)倉庫的數(shù)據(jù)是一致的最好的做法就是數(shù)據(jù)倉庫的開發(fā)工程師與其他前臺系統(tǒng)的開發(fā)人員能事先約定一套統(tǒng)一的數(shù)據(jù)記錄和編碼的方式,這樣可以減少后期的協(xié)調(diào)溝通和轉(zhuǎn)化處理成本
處理異常數(shù)據(jù)
異常數(shù)據(jù)大部分情況是很難修正的,比如字符編碼等問題引起的亂碼,字符被截斷,異常的數(shù)值等,這些異常數(shù)據(jù)如果沒有規(guī)律可循幾乎不可能被還原,只能將其直接過濾
有些數(shù)據(jù)異常則可以被還原,比如原字符中參雜了一些其他的無用字符,可以使用取子串的方法,用trim函數(shù)可以去掉字符串前后的空格等;字符被截斷的情況如果可以使用截斷后字符推導(dǎo)出原完整字符串,那么也可以被還原,比如移動操作系統(tǒng)的記錄一般包括Symbian、Android、iPhone、BlackBerry等,如果某些記錄的是And,那么可以被還原成Android,因為其他的移動操作系統(tǒng)被截斷不可能出現(xiàn)And這種記錄數(shù)值記錄中存在異常大或者異常小的值是可以分析是否數(shù)值單位差異引起的,比如克和千克差了1000倍,美元和人民幣存在匯率的差異,時間記錄可能存在時區(qū)的差異,百分比用的是小于1的小數(shù)還是已經(jīng)乘了100等等,這些數(shù)值的異?梢酝ㄟ^轉(zhuǎn)化進(jìn)行處理,數(shù)值單位的差異也可以認(rèn)為是數(shù)據(jù)的不一致性,或者是某些數(shù)值被錯誤的放大或縮小,比如數(shù)值后面被多加了幾個0導(dǎo)致了數(shù)據(jù)的異常
最后,總結(jié)一下數(shù)據(jù)可修正的前提:1) 數(shù)據(jù)質(zhì)量的問題可以通過Data Auditing的過程被審核出來;2) 數(shù)據(jù)的問題必須有跡可循,可以通過趨勢進(jìn)行預(yù)測或者可以通過一些規(guī)則進(jìn)行轉(zhuǎn)換還原否者,對于異常數(shù)據(jù)只能直接進(jìn)行刪除丟棄,但進(jìn)行數(shù)據(jù)過濾之前必須評估異常記錄的比例,當(dāng)占比過高時需要重新審核原始數(shù)據(jù)的記錄方式是否存在問題
文章來源:網(wǎng)站數(shù)據(jù)分析,轉(zhuǎn)載請注明出處
注:相關(guān)網(wǎng)站建設(shè)技巧閱讀請移步到建站教程頻道
收藏本文
文章編輯: 365webcall網(wǎng)上客服系統(tǒng)(www.365webcall.com)
我的評論
登錄賬號: | 密碼: | 快速注冊 | 找回密碼 |