一種基于數(shù)據(jù)倉庫的數(shù)據(jù)清洗方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)數(shù)據(jù)處理技術(shù)領(lǐng)域,具體地說是一種基于數(shù)據(jù)倉庫的數(shù)據(jù)清洗方法。
【背景技術(shù)】
[0002]信息技術(shù)的飛速發(fā)展,使組織領(lǐng)導(dǎo)者對數(shù)據(jù)的依賴性越來越強(qiáng)。于是在數(shù)據(jù)庫的基礎(chǔ)上產(chǎn)生了能夠滿足決策分析所需要的數(shù)據(jù)環(huán)境——數(shù)據(jù)倉庫。但是從異構(gòu)的數(shù)據(jù)源導(dǎo)入數(shù)據(jù)倉庫的數(shù)據(jù)中會存在各種各樣的問題,所以必須對其進(jìn)行數(shù)據(jù)清洗來提高其質(zhì)量。數(shù)據(jù)倉庫是一個面向主題的、集成的、相對穩(wěn)定的、反應(yīng)歷史變化的數(shù)據(jù)集合,數(shù)據(jù)倉庫是對多個異構(gòu)數(shù)據(jù)源的集合,集成后按照主題進(jìn)行了重組。
[0003]在數(shù)據(jù)庫中從多數(shù)據(jù)源中抽取數(shù)據(jù)時,由于各數(shù)據(jù)源數(shù)據(jù)表結(jié)構(gòu)的設(shè)計(jì)可能不相同,完成從多數(shù)據(jù)源到數(shù)據(jù)倉庫的數(shù)據(jù)遷移時,同樣會產(chǎn)生一些冗余或者錯誤信息。若不進(jìn)行清洗,這些臟數(shù)據(jù)會對數(shù)據(jù)倉庫系統(tǒng)造成不良影響,扭曲從數(shù)據(jù)中或得的信息,影響數(shù)據(jù)倉庫的運(yùn)行效果。
[0004]由于存在多種不同的臟數(shù)據(jù),而檢測這些臟數(shù)據(jù)往往需要借助特定的領(lǐng)域知識。缺損數(shù)據(jù),相似重復(fù)記錄都是最為常見的臟數(shù)據(jù),對他們進(jìn)行清洗有一定的困難。數(shù)據(jù)集的數(shù)據(jù)質(zhì)量,是由很多因素造成的,包括數(shù)據(jù)集的正確性、完整性、一致性和可用性等諸多因素。
[0005]根據(jù)數(shù)據(jù)清洗的實(shí)現(xiàn)方式與內(nèi)容,可將數(shù)據(jù)清洗分為四類:
I)用人工檢測所有的錯誤并改正。這只能針對小批量的數(shù)據(jù)源。
[0006]2)通過專門編寫的程序,但通常數(shù)據(jù)清洗是一個反復(fù)進(jìn)行的過程,導(dǎo)致清洗過程復(fù)雜。
[0007]3)某類特定應(yīng)用領(lǐng)域的問題。如根據(jù)概率統(tǒng)計(jì)學(xué)原理查找數(shù)值異常記錄。
[0008]4)與特定領(lǐng)域無關(guān)的數(shù)據(jù)清洗。主要指在特地行業(yè)中,業(yè)務(wù)表間關(guān)聯(lián)的清洗,業(yè)務(wù)表與公用數(shù)據(jù)字典間的關(guān)聯(lián)清洗,表中空值的清洗,不合邏輯的數(shù)據(jù)的清洗。
【發(fā)明內(nèi)容】
[0009]本發(fā)明的技術(shù)任務(wù)是提供一種基于數(shù)據(jù)倉庫的數(shù)據(jù)清洗方法。
[0010]本發(fā)明的技術(shù)任務(wù)是按以下方式實(shí)現(xiàn)的,該數(shù)據(jù)清洗方法通過預(yù)處理、給屬性分配權(quán)值、重復(fù)記錄檢測、數(shù)據(jù)庫級的重復(fù)記錄聚類以及沖突處理五個步驟實(shí)現(xiàn);
預(yù)處理:選擇用于記錄匹配的屬性,該屬性能代表記錄特征;
給屬性分配權(quán)值:根據(jù)屬性在決定兩條記錄相似性中重要程度的不同,為每個屬性分配不同的權(quán)重;
數(shù)據(jù)庫級的重復(fù)記錄聚類:在數(shù)據(jù)庫應(yīng)用檢測重復(fù)記錄的算法中減少比較記錄的范圍,對整個數(shù)據(jù)集中的重復(fù)記錄進(jìn)行聚類;
沖突處理:合并或者刪除檢測出的同一重復(fù)記錄聚類的重復(fù)記錄,保留其中正確的記錄。
[0011]所述的給屬性分配權(quán)值時,不同的屬性賦予不同的權(quán)重,重要程度大的分給的權(quán)重就大。
[0012]所述的檢測重復(fù)記錄的方法是每條記錄都和數(shù)據(jù)集中其他所有的記錄逐個進(jìn)行匹配比較;一般采取生成排序關(guān)鍵字對數(shù)據(jù)集進(jìn)行排序的方法,抽取記錄屬性的一個子集序列或?qū)傩灾档淖哟?,為?shù)據(jù)集中每條記錄計(jì)算出一個鍵值。
[0013]本發(fā)明的一種基于數(shù)據(jù)倉庫的數(shù)據(jù)清洗方法和現(xiàn)有技術(shù)相比,能檢測大批量的數(shù)據(jù)源的錯誤并改正,有效降低清洗過程的復(fù)雜程度,提高清洗效率,保證了數(shù)據(jù)集的正確性、完整性、一致性和可用性,提高數(shù)據(jù)倉庫的運(yùn)行效果。
【附圖說明】
[0014]附圖1為一種基于數(shù)據(jù)倉庫的數(shù)據(jù)清洗方法的原理示意圖。
【具體實(shí)施方式】
[0015]實(shí)施例1:
該數(shù)據(jù)清洗方法通過預(yù)處理、給屬性分配權(quán)值、重復(fù)記錄檢測、數(shù)據(jù)庫級的重復(fù)記錄聚類以及沖突處理五個步驟實(shí)現(xiàn);
預(yù)處理:選擇用于記錄匹配的屬性,由于數(shù)據(jù)量很大,該屬性能代表記錄特征;
給屬性分配權(quán)值:根據(jù)屬性在決定兩條記錄相似性中重要程度的不同,為每個屬性分配不同的權(quán)重;屬性的權(quán)重代表一個屬性在兩條相似記錄中的重要程度,在衡量兩條記錄相似度時,不同的屬性賦予不同的權(quán)重,重要程度大的分給的權(quán)重就大,如姓名屬性的權(quán)重顯然比性別屬性的權(quán)重高,因?yàn)樾彰芊从骋粭l記錄的特征。在重復(fù)記錄的清洗過程中,可以對權(quán)重進(jìn)行調(diào)整,以便找出更多的重復(fù)記錄。
[0016]數(shù)據(jù)庫級的重復(fù)記錄聚類:在數(shù)據(jù)庫應(yīng)用檢測重復(fù)記錄的算法中減少比較記錄的范圍,對整個數(shù)據(jù)集中的重復(fù)記錄進(jìn)行聚類;檢測重復(fù)記錄的最好方法是每條記錄都和數(shù)據(jù)集中其他所有的記錄逐個進(jìn)行匹配比較。該方法的計(jì)算復(fù)雜度是N(N-1)/2 (N是數(shù)據(jù)集中的記錄條數(shù))。一般采取生成排序關(guān)鍵字對數(shù)據(jù)集進(jìn)行排序的方法,抽取記錄屬性的一個子集序列或?qū)傩灾档淖哟?,為?shù)據(jù)集中每條記錄計(jì)算出一個鍵值。
[0017]沖突處理:合并或者刪除檢測出的同一重復(fù)記錄聚類的重復(fù)記錄,保留其中正確的記錄,在整個重復(fù)記錄清洗的流程中,重復(fù)記錄檢測和數(shù)據(jù)庫級的重復(fù)記錄聚類檢測是核心步驟。
[0018]實(shí)施例2:
以業(yè)務(wù)表間的關(guān)聯(lián)的清洗為例:
O選擇主表,建立主表與輔表之間的關(guān)聯(lián)。
[0019]2)利用sql語句,將主表left outer join輔表,找出主表中不能關(guān)聯(lián)至輔表的記錄。
[0020]3)對不能關(guān)聯(lián)的記錄做具體的分析,對于真正的臟數(shù)據(jù),可在輔表中增加一條“默認(rèn)記錄”,將主表中不能關(guān)聯(lián)的記錄全部關(guān)聯(lián)到輔表中的“默認(rèn)記錄”。
[0021]通過上面【具體實(shí)施方式】,所述技術(shù)領(lǐng)域的技術(shù)人員可容易的實(shí)現(xiàn)本發(fā)明。但是應(yīng)當(dāng)理解,本發(fā)明并不限于上述的幾種【具體實(shí)施方式】。在公開的實(shí)施方式的基礎(chǔ)上,所述技術(shù)領(lǐng)域的技術(shù)人員可任意組合不同的技術(shù)特征,從而實(shí)現(xiàn)不同的技術(shù)方案。
【主權(quán)項(xiàng)】
1.一種基于數(shù)據(jù)倉庫的數(shù)據(jù)清洗方法,其特征在于,該數(shù)據(jù)清洗方法通過預(yù)處理、給屬性分配權(quán)值、重復(fù)記錄檢測、數(shù)據(jù)庫級的重復(fù)記錄聚類以及沖突處理五個步驟實(shí)現(xiàn); 預(yù)處理:選擇用于記錄匹配的屬性,該屬性能代表記錄特征; 給屬性分配權(quán)值:根據(jù)屬性在決定兩條記錄相似性中重要程度的不同,為每個屬性分配不同的權(quán)重; 數(shù)據(jù)庫級的重復(fù)記錄聚類:在數(shù)據(jù)庫應(yīng)用檢測重復(fù)記錄的算法中減少比較記錄的范圍,對整個數(shù)據(jù)集中的重復(fù)記錄進(jìn)行聚類; 沖突處理:合并或者刪除檢測出的同一重復(fù)記錄聚類的重復(fù)記錄,保留其中正確的記錄。
2.根據(jù)權(quán)利要求1所述的一種基于數(shù)據(jù)倉庫的數(shù)據(jù)清洗方法,其特征在于,所述的給屬性分配權(quán)值時,不同的屬性賦予不同的權(quán)重,重要程度大的分給的權(quán)重就大。
3.根據(jù)權(quán)利要求1所述的一種基于數(shù)據(jù)倉庫的數(shù)據(jù)清洗方法,其特征在于,所述的檢測重復(fù)記錄的方法是每條記錄都和數(shù)據(jù)集中其他所有的記錄逐個進(jìn)行匹配比較;一般采取生成排序關(guān)鍵字對數(shù)據(jù)集進(jìn)行排序的方法,抽取記錄屬性的一個子集序列或?qū)傩灾档淖哟?,為?shù)據(jù)集中每條記錄計(jì)算出一個鍵值。
【專利摘要】本發(fā)明公開了一種基于數(shù)據(jù)倉庫的數(shù)據(jù)清洗方法,該數(shù)據(jù)清洗方法包括預(yù)處理、給屬性分配權(quán)值、重復(fù)記錄檢測、數(shù)據(jù)庫級的重復(fù)記錄聚類以及沖突處理;預(yù)處理:選擇用于記錄匹配的屬性,該屬性能代表記錄特征;給屬性分配權(quán)值:根據(jù)屬性在決定兩條記錄相似性中重要程度的不同,為每個屬性分配不同的權(quán)重;數(shù)據(jù)庫級的重復(fù)記錄聚類:在數(shù)據(jù)庫應(yīng)用檢測重復(fù)記錄的算法中減少比較記錄的范圍,對整個數(shù)據(jù)集中的重復(fù)記錄進(jìn)行聚類;沖突處理:合并或者刪除檢測出的同一重復(fù)記錄聚類的重復(fù)記錄,保留其中正確的記錄。本發(fā)明能檢測大批量的數(shù)據(jù)源的錯誤并改正,有效降低清洗過程的復(fù)雜程度,提高清洗效率,保證了數(shù)據(jù)集的質(zhì)量,提高數(shù)據(jù)倉庫的運(yùn)行效果。
【IPC分類】G06F17-30
【公開號】CN104699796
【申請?zhí)枴緾N201510118379
【發(fā)明人】焦毓葳, 孫海峰, 王傳超
【申請人】浪潮集團(tuán)有限公司
【公開日】2015年6月10日
【申請日】2015年3月18日