香港虛擬主機(jī)對SEO網(wǎng)站優(yōu)化的影響 |
發(fā)布時間:2016-10-25 文章來源: 瀏覽次數(shù):2594 |
數(shù)據(jù)審核匡助我們發(fā)現(xiàn)數(shù)據(jù)中存在的題目,而這些題目有時候可以利用一些方法就行修正,從而晉升數(shù)據(jù)的整體質(zhì)量,數(shù)據(jù)修正就是為了完成這個任務(wù),可以從以下幾個方面進(jìn)行修正: 填補(bǔ)缺失值 對于記實(shí)缺失的題目,最簡樸的辦法就是數(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ǔ),實(shí)在就是對缺失值的猜測或者估計,一般會使用均勻數(shù)、眾數(shù)、前后值取均勻等方法,或者使用回歸分析的方法擬合指標(biāo)的變化趨勢后進(jìn)行猜測。這些方法在缺失值無法使用其他途徑找回或者重新統(tǒng)計計算,并且在缺失值有變化規(guī)律可循的條件下都是可取的,當(dāng)某天的指標(biāo)值丟失機(jī)可以通過這類方法根據(jù)前幾天的數(shù)據(jù)來預(yù)估該天的數(shù)值。但良多時候網(wǎng)站分析中假如底層的日志存在缺失值,我們很難猜測詳細(xì)的缺失值,由于訪問的細(xì)節(jié)幾乎是無跡可尋的,所以對于訪問記實(shí)存在缺失值并且這些字段的缺失會顯著影響一些統(tǒng)計指標(biāo)的計算時,最簡樸的方法就是舍棄該記實(shí),但這種直接過濾掉缺失記實(shí)的方法一些只會用于訪問日志等不需要非常精確的數(shù)據(jù)上,假如是網(wǎng)站的運(yùn)營、交易等這些需要保證完全計算正確的數(shù)據(jù)絕對是不能直接舍棄的,而且對于訪問日志中缺失或者異常記實(shí)的過濾也需要基于對這類數(shù)據(jù)的統(tǒng)計基礎(chǔ)上,一般的原則是不太重要的字段假如缺失或者異常的記實(shí)占比小于1%或者5‰的情況下可以選擇過濾這些記實(shí),假如占比比較高,需要進(jìn)一步排查日志記實(shí)是否存在題目。 刪除重復(fù)記實(shí) 數(shù)據(jù)集里面某些字段的值必定是獨(dú)一的,好比按天統(tǒng)計的指標(biāo)值中的日期字段,用戶信息表的用戶ID等,這些需要保證獨(dú)一的規(guī)則可以對數(shù)據(jù)庫設(shè)置獨(dú)一約束,但我們在做ETL處理時,有時為了保證數(shù)據(jù)加載全過程可以不由于違背獨(dú)一約束而間斷(有時Load的過程需要較長的時間或處理本錢,ETL需要有容錯能力以保證整個過程不被間斷)會先忽略重復(fù)記實(shí),待整個ETL過程結(jié)束后再對需要保證獨(dú)一的字段進(jìn)行去重處理。 這些重復(fù)記實(shí)可以比對Data Profiling中數(shù)據(jù)統(tǒng)計信息的獨(dú)一值個數(shù)和記實(shí)總數(shù)是否一致進(jìn)行審核,而進(jìn)行修正的最簡樸辦法就是重復(fù)記實(shí)僅留存一條,刪除其他記實(shí)。這個需要根據(jù)現(xiàn)實(shí)情況,有時也可能使用把重復(fù)記實(shí)的統(tǒng)計量相加的方法進(jìn)行去重。 轉(zhuǎn)化不一致記實(shí) 數(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)是100100,來源于這三套系統(tǒng)的用戶ID就需要同一,好比我們將A數(shù)據(jù)源的u前綴去除,C系統(tǒng)ID除100后同一成B系統(tǒng)的編碼方式一起導(dǎo)入數(shù)據(jù)庫;即使是來源于統(tǒng)一套日志,也可能存在記實(shí)的不一致,好比之前碰到較早發(fā)布的產(chǎn)品版本記實(shí)的日志中移動操縱系統(tǒng)是Android,而版本更新后記實(shí)改成了android,新老版本的日志打到了一起,于是也會涉及數(shù)據(jù)的轉(zhuǎn)化,但這種記實(shí)的不一致性無疑會增加ETL的處理本錢。 上面舉例的轉(zhuǎn)化規(guī)則是比較簡樸的,在數(shù)據(jù)倉庫的ETL處理數(shù)據(jù)轉(zhuǎn)化時可能會碰到一些很BT的規(guī)則,這個時候最樞紐的仍是對數(shù)據(jù)源記實(shí)方式足夠的認(rèn)識,這樣才能保證進(jìn)入數(shù)據(jù)倉庫的數(shù)據(jù)是一致的。最好的做法就是數(shù)據(jù)倉庫的開發(fā)工程師與其他前臺系統(tǒng)的開發(fā)職員能事先商定一套同一的數(shù)據(jù)記實(shí)和編碼的方式,這樣可以減少后期的協(xié)調(diào)溝通和轉(zhuǎn)化處理本錢。 處理異常數(shù)據(jù) 異常數(shù)據(jù)大部門情況是很難修正的,好比字符編碼等題目引起的亂碼,字符被截斷,異常的數(shù)值等,這些異常數(shù)據(jù)假如沒有規(guī)律可循幾乎不可能被還原,只能將其直接過濾。 有些數(shù)據(jù)異常則可以被還原,好比原字符中參雜了一些其他的無用字符,可以使用取子串的方法,用trim函數(shù)可以去掉字符串前后的空格等;字符被截斷的情況假如可以使用截斷后字符推導(dǎo)出原完整字符串,那么也可以被還原,好比移動操縱系統(tǒng)的記實(shí)一般包括Symbian、Android、iPhone、BlackBerry等,假如某些記實(shí)的是And,那么可以被還原成Android,由于其他的移動操縱系統(tǒng)被截斷不可能泛起And這種記實(shí)。數(shù)值記實(shí)中存在異常大或者異常小的值是可以分析是否數(shù)值單位差異引起的,好比克和千克差了1000倍,美元和人民幣存在匯率的差異,時間記實(shí)可能存在時區(qū)的差異,百分比用的是小于1的小數(shù)仍是已經(jīng)乘了100等等,這些數(shù)值的異常可以通過轉(zhuǎn)化進(jìn)行處理,數(shù)值單位的差異也可以以為是數(shù)據(jù)的不一致性,或者是某些數(shù)值被錯誤的放大或縮小,好比數(shù)值后面被多加了幾個0導(dǎo)致了數(shù)據(jù)的異常。 最后,總結(jié)一下數(shù)據(jù)可修正的條件:1) 數(shù)據(jù)質(zhì)量的題目可以通過Data Auditing的過程被審核出來;2) 數(shù)據(jù)的題目必需有跡可循,可以通過趨勢進(jìn)行猜測或者可以通過一些規(guī)則進(jìn)行轉(zhuǎn)換還原。否者,對于異常數(shù)據(jù)只能直接進(jìn)行刪除丟棄,但進(jìn)行數(shù)據(jù)過濾之前必需評估異常記實(shí)的比例,當(dāng)占比過高時需要重新審核原始數(shù)據(jù)的記實(shí)方式是否存在題目。 |
|