一種數(shù)據(jù)排重方法與裝置、數(shù)據(jù)清洗方法與裝置的制造方法
【技術領域】
[0001] 本發(fā)明涉及數(shù)據(jù)清洗技術領域,具體涉及一種數(shù)據(jù)排重方法與裝置、數(shù)據(jù)清洗方 法與裝置。
【背景技術】
[0002] 隨著網(wǎng)絡的興起與飛速發(fā)展,大量的信息和數(shù)據(jù)迎面而來,用科學的方法去收集 和整理數(shù)據(jù),從而從不同視角對企業(yè)經(jīng)營各方面信息的精確分析、準確判斷受到了各大企 業(yè)的關注。數(shù)據(jù)倉庫技術(Data Warehousing)是基于信息系統(tǒng)業(yè)務發(fā)展的需要,基于數(shù)據(jù) 庫系統(tǒng)技術發(fā)展而來,并逐步獨立的一系列新的應用技術。ETL指在構建數(shù)據(jù)倉庫過程中對 數(shù)據(jù)源中數(shù)據(jù)進行抽取、數(shù)據(jù)清洗轉換和加載到數(shù)據(jù)倉庫的過程。隨著數(shù)據(jù)倉庫系統(tǒng)的不 斷升級,對ETL的工作效率提出了更高的要求。而ETL過程中,數(shù)據(jù)清洗占據(jù)的工作量較多; 數(shù)據(jù)清洗,包括對缺失數(shù)據(jù)、錯誤數(shù)據(jù)、重復數(shù)據(jù)等等的處理,其中數(shù)據(jù)排重是一項具有挑 戰(zhàn)性的工作;現(xiàn)有的數(shù)據(jù)排重方法是每兩條數(shù)據(jù)都要對比重復可能性,效率低,且準確性有 待提升;如何快速進行數(shù)據(jù)排重,提高數(shù)據(jù)排重的準確性,如何進一步提高數(shù)據(jù)清洗的速 度,是目前最需要解決的問題。
[0003] 鑒于上述缺陷,本發(fā)明創(chuàng)作者經(jīng)過長時間的研究和試驗終于提出了一種數(shù)據(jù)排重 方法與裝置、數(shù)據(jù)清洗方法與裝置。
【發(fā)明內容】
[0004] 本發(fā)明的目的在于提供一種數(shù)據(jù)排重方法與裝置、數(shù)據(jù)清洗方法與裝置,用以克 服上述技術缺陷,解決如何準確、快速檢測到部分重復數(shù)據(jù)以及完全重復數(shù)據(jù)的問題。
[0005] 為實現(xiàn)上述目的,本發(fā)明采用的技術方案在于:首先提供一種數(shù)據(jù)排重方法,其包 括:
[0006 ]步驟a,從數(shù)據(jù)源中抽取待處理數(shù)據(jù);
[0007] 步驟b,對所述待處理數(shù)據(jù)根據(jù)約束條件進行清洗;
[0008] 步驟c,確定所述待處理數(shù)據(jù)的數(shù)據(jù)正確的屬性列;
[0009] 步驟d,根據(jù)數(shù)據(jù)正確的所述屬性列建立樹形結構,并將所述待處理數(shù)據(jù)根據(jù)對應 的屬性流入對應的分支節(jié)點中;
[0010] 步驟e,按照最底層的所述分支節(jié)點,對每個所述分支節(jié)點內的所述待處理數(shù)據(jù)分 別進行排重。
[0011] 較佳的,所述步驟d包括:
[0012] 步驟dl,將數(shù)據(jù)正確的所有所述屬性列進行排列,作為所述樹形結構的分層節(jié)點;
[0013] 步驟d2,按照排列好的所述屬性列,根據(jù)各個所述屬性列中不同的屬性建立所述 樹形結構,將所述待處理數(shù)據(jù)根據(jù)對應的屬性流入對應的所述分支節(jié)點中。
[00M]較佳的,所述步驟d2包括:
[0015]步驟d21,根據(jù)第一屬性列中不同的屬性分出相同數(shù)量的第一層分支節(jié)點,將所述 待處理數(shù)據(jù)根據(jù)對應的屬性流入對應的所述第一層分支節(jié)點中;
[0016] 步驟d22,根據(jù)第二屬性列中的不同屬性分別將各個所述第一層分支節(jié)點分出多 個第二層分支節(jié)點,每個所述第一層分支節(jié)點下分出的所述第二層分支節(jié)點的數(shù)量等于該 第一層分支節(jié)點內流入的所述待處理數(shù)據(jù)的所述第二屬性列的不同屬性的數(shù)量,將所述第 一層分支節(jié)點內的所述待處理數(shù)據(jù)根據(jù)對應的屬性流入分出的所述第二層分支節(jié)點中;
[0017] 步驟d23,根據(jù)素數(shù)第二屬性列的分出所述第二層分支節(jié)點的方法依次分解其余 的數(shù)據(jù)正確的素數(shù)屬性列,并將所述待處理數(shù)據(jù)根據(jù)對應的屬性流入對應的各層所述分支 節(jié)點中。
[0018] 較佳的,所述步驟dl中,數(shù)據(jù)正確的所述屬性列之間有包含關系的,依據(jù)上層節(jié)點 包含下層節(jié)點的原則進行排列;數(shù)據(jù)正確的所述屬性列之間沒有包含關系的,隨機排列。
[0019] 較佳的,所述步驟e中,對不同的所述分支節(jié)點內的所述排重并發(fā)執(zhí)行。
[0020] 其次,提供一種與所述的數(shù)據(jù)排重方法對應的數(shù)據(jù)排重裝置,其包括:
[0021 ]數(shù)據(jù)抽取單元,從所述數(shù)據(jù)源中抽取所述待處理數(shù)據(jù);
[0022]數(shù)據(jù)清洗單元,對所述待處理數(shù)據(jù)根據(jù)所述約束條件進行清洗;
[0023]數(shù)據(jù)確定單元,確定所述待處理數(shù)據(jù)的數(shù)據(jù)正確的所述屬性列;
[0024] 樹形結構建立單元,根據(jù)數(shù)據(jù)正確的所述屬性列建立所述樹形結構,并將所述待 處理數(shù)據(jù)根據(jù)對應的屬性流入對應的所述分支節(jié)點中;
[0025] 數(shù)據(jù)排重單元,按照最底層的所述分支節(jié)點,對每個所述分支節(jié)點內的所述待處 理數(shù)據(jù)分別進行所述排重。
[0026] 然后,提供一種數(shù)據(jù)清洗方法,其包括:
[0027]步驟a,從數(shù)據(jù)源中抽取待處理數(shù)據(jù);
[0028]步驟b,對所述待處理數(shù)據(jù)根據(jù)約束條件進行清洗;
[0029]步驟c,確定所述待處理數(shù)據(jù)的數(shù)據(jù)正確的屬性列;
[0030]步驟d,根據(jù)數(shù)據(jù)正確的所述屬性列建立樹形結構,并將所述待處理數(shù)據(jù)根據(jù)對應 的屬性流入對應的分支節(jié)點中;
[0031] 步驟e,按照最底層的所述分支節(jié)點,對所述待處理數(shù)據(jù)分別按照設定的至少一個 規(guī)則進行清洗;
[0032] 步驟f,對所述待處理數(shù)據(jù)進行數(shù)據(jù)轉換并加載到數(shù)據(jù)倉庫中。
[0033] 較佳的,所述步驟d包括:
[0034]步驟dl,將數(shù)據(jù)正確的所有所述屬性列進行排列,作為所述樹形結構的分層節(jié)點; [0035]步驟d2,按照排列好的所述屬性列,根據(jù)各個所述屬性列中不同的屬性建立所述 樹形結構,將所述待處理數(shù)據(jù)根據(jù)對應的屬性流入對應的所述分支節(jié)點中。
[0036]較佳的,所述步驟d2包括:
[0037]步驟d21,根據(jù)第一屬性列中不同的屬性分出相同數(shù)量的第一層分支節(jié)點,將所述 待處理數(shù)據(jù)根據(jù)對應的屬性流入對應的所述第一層分支節(jié)點中;
[0038]步驟d22,根據(jù)第二屬性列中的不同屬性分別將各個所述第一層分支節(jié)點分出多 個第二層分支節(jié)點,每個所述第一層分支節(jié)點下分出的所述第二層分支節(jié)點的數(shù)量等于該 第一層分支節(jié)點內流入的所述待處理數(shù)據(jù)的所述第二屬性列的不同屬性的數(shù)量,將所述第 一層分支節(jié)點內的所述待處理數(shù)據(jù)根據(jù)對應的屬性流入分出的所述第二層分支節(jié)點中;
[0039] 步驟d23,根據(jù)素數(shù)第二屬性列的分出所述第二層分支節(jié)點的方法依次分解其余 的數(shù)據(jù)正確的素數(shù)屬性列,并將所述待處理數(shù)據(jù)根據(jù)對應的屬性流入對應的各層所述分支 節(jié)點中。
[0040] 最后提供一種與所述的數(shù)據(jù)清洗方法對應的數(shù)據(jù)清洗裝置,其包括:
[0041 ]數(shù)據(jù)抽取單元,從所述數(shù)據(jù)源中抽取所述待處理數(shù)據(jù);
[0042]數(shù)據(jù)清洗單元,對所述待處理數(shù)據(jù)根據(jù)所述約束條件進行清洗;
[0043]數(shù)據(jù)確定單元,確定所述待處理數(shù)據(jù)的數(shù)據(jù)正確的所述屬性列;
[0044]樹形結構建立單元,根據(jù)數(shù)據(jù)正確的所述屬性列建立所述樹形結構,并將所述待 處理數(shù)據(jù)根據(jù)對應的屬性流入對應的所述分支節(jié)點中;
[0045]規(guī)則清洗單元,按照最底層的所述分支節(jié)點,對所述待處理數(shù)據(jù)分別按照設定的 至少一個規(guī)則進行清洗;
[0046]數(shù)據(jù)加載單元,對所述待處理數(shù)據(jù)進行數(shù)據(jù)轉換并加載到數(shù)據(jù)倉庫中。
[0047] 與現(xiàn)有技術比較本發(fā)明的有益效果在于:提供了一種數(shù)據(jù)排重方法與裝置、數(shù)據(jù) 清洗方法與裝置,這樣,按照數(shù)據(jù)正確的屬性列對所述待處理數(shù)據(jù)分類進入不同的分支節(jié) 點之中,這樣數(shù)據(jù)重復的情況只會出現(xiàn)在同一分支節(jié)點中,大大減少了需要對比的所述待 處理數(shù)據(jù)的數(shù)量,極大地提高了數(shù)據(jù)排重以及數(shù)據(jù)清洗的效率,且不會出現(xiàn)將不同分支節(jié) 點內的數(shù)據(jù)辨認為相同數(shù)據(jù),提高了數(shù)據(jù)排重以及數(shù)據(jù)清洗的準確性;建立了樹形結構,有 利于后續(xù)步驟的順利進行,且有包含關系的屬性列上下排列,符合實際規(guī)律,防止出現(xiàn)包含 關系倒置出現(xiàn)的數(shù)據(jù)關系錯亂;先分出分支節(jié)點,然后流入待處理數(shù)據(jù),這樣下層分支節(jié)點 的分解可以依據(jù)流入的待處理數(shù)據(jù)進行,這樣就節(jié)省了時間和資源,極大地提高了工作效 率;使數(shù)據(jù)排重的工作量大大減少,也就大大提高了數(shù)據(jù)排重的效率,進而提高數(shù)據(jù)清洗的 速度;使數(shù)據(jù)清洗的工作時間大大減少,也就大大提高了數(shù)據(jù)清洗的效率和速度。
【附圖說明】
[0048] 圖1為本發(fā)明數(shù)據(jù)排重方法的流程圖;
[0049]圖2為本發(fā)明步驟d的流程圖;
[0050]圖3為本發(fā)明部分待處理數(shù)據(jù)屬性表;
[0051 ]圖4為本發(fā)明步驟d2的流程圖;
[0052] 圖5為本發(fā)明實例數(shù)據(jù)源表;
[0053] 圖6為本發(fā)明實例的樹形結構圖;
[0054] 圖7為本發(fā)明數(shù)據(jù)排重裝置的結構圖;
[0055] 圖8為本發(fā)明樹形結構建立單元的結構圖;
[0056] 圖9為本發(fā)明數(shù)據(jù)分流模塊的結構圖;
[0057] 圖10為本發(fā)明數(shù)據(jù)清洗方法的流程圖;
[0058] 圖11為本發(fā)明數(shù)據(jù)清洗裝置的結構圖;
[0059]圖12為本發(fā)明實例的樹形結構數(shù)據(jù)清洗流程圖。
【具體實施方式】
[0060]以下結合附圖,對本發(fā)明上述的和另外的技術特征和優(yōu)點作更詳細的說明。
[0061]如圖1所示,其為本發(fā)明數(shù)據(jù)排重方法的流程圖;其中,所述數(shù)據(jù)排重方法包括: [0062]步驟a,從數(shù)據(jù)源中抽取待處理數(shù)據(jù);
[0063]所述待處理數(shù)據(jù)包含多個屬性。
[0064]所述數(shù)據(jù)源為多個,所述待處理數(shù)據(jù)為從多個數(shù)據(jù)源