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