專利名稱:一種多維度數(shù)據(jù)去重方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本申請涉及網(wǎng)絡(luò)數(shù)據(jù)處理領(lǐng)域,特別涉及一種多維度數(shù)據(jù)去重方法及系統(tǒng)。
背景技術(shù):
網(wǎng)絡(luò)日志文件可以是一種采用多維度數(shù)據(jù)記錄用戶訪問網(wǎng)絡(luò)事件的文件,其中,多維度數(shù)據(jù)由描述用戶訪問網(wǎng)絡(luò)事件的各個屬性構(gòu)成。例如,某大型網(wǎng)站的多維度數(shù)據(jù)格式可以為{用戶id,省,市,域名,瀏覽器類型},該多維度數(shù)據(jù)的屬性分別為用戶id、省、市、域名和瀏覽器類型,其維度等于5。其中,一維度數(shù)據(jù)可以為{用戶id},二維度數(shù)據(jù)可以為{用戶id,省},三維度數(shù)據(jù)可以為{用戶id,省,市},四維度數(shù)據(jù)可以為{用戶id,省,市,域名},五維度數(shù)據(jù)可以為{用戶id,省,市,域名,瀏覽器類型}。然而,對于同一用戶不同時間段的用戶訪問網(wǎng)絡(luò)事件來說,網(wǎng)絡(luò)日志文件中的多維度數(shù)據(jù)可能相同,因此,系統(tǒng)在分析網(wǎng)絡(luò)日志文件記錄的同一用戶的多個多維度數(shù)據(jù)時,首先將網(wǎng)絡(luò)日志文件中相同的多維度數(shù)據(jù)去重,以避免對相同的多維度數(shù)據(jù)重復(fù)分析。其中多維度數(shù)據(jù)去重是指刪除網(wǎng)絡(luò)日志文件中相同的多維度數(shù)據(jù)的重復(fù)記錄,在網(wǎng)絡(luò)日志文件中只保留相同的多個多維度數(shù)據(jù)的其中一個。相同的多維度數(shù)據(jù)是指由相同屬性構(gòu)成,且屬性值也相同的多維度數(shù)據(jù)。目前現(xiàn)有技術(shù)中多維度數(shù)據(jù)去重方法可以包括如下步驟首先,選取網(wǎng)絡(luò)日志文件中維度相同的各個多維度數(shù)據(jù)進(jìn)行劃分。該劃分的依據(jù)具體為對所選取的各個多維度數(shù)據(jù)進(jìn)行Hash計算,得出所選取的各個多維度數(shù)據(jù)的關(guān)鍵字,將具有完全相同關(guān)鍵字的各個多維度數(shù)據(jù)劃分至同一個子日志文件。
其次,對于子日志文件中的任一個多維度數(shù)據(jù),判斷是否存在與其屬性及屬性值都相同的多維度數(shù)據(jù),如果是,刪除與該任一個多維度數(shù)據(jù)相同的其他多維度數(shù)據(jù)。最后,判斷所述網(wǎng)絡(luò)日志文件中是否存在還未進(jìn)行劃分的其他維度的多維度數(shù)據(jù),如果是,對還未進(jìn)行劃分的其他維度的多維度數(shù)據(jù)進(jìn)行去重處理,如果否,結(jié)束多維度數(shù)據(jù)去重過程。但是,上述去重過程中,需要依次對不同維度的各個多維度數(shù)據(jù)去重,即按照維度值分多次對多維度數(shù)據(jù)進(jìn)行去重,因此,在對具有多個維度的多維度數(shù)據(jù)的網(wǎng)絡(luò)日志文件劃分時,每個劃分過程都需要掃描網(wǎng)絡(luò)日志文件中的所有維度的多維度數(shù)據(jù),這增加了多維度數(shù)據(jù)的去重時間,降低了去重效率。更進(jìn)一步地,如果后續(xù)還需要對該網(wǎng)絡(luò)日志文件中的多維度數(shù)據(jù)進(jìn)行分析,也會因為去重效率低而延遲分析過程。
發(fā)明內(nèi)容
本申請所要解決的技術(shù)問題是提供一種多維度數(shù)據(jù)去重方法,用以解決現(xiàn)有技術(shù)依次對不同維度的多維度數(shù)據(jù)去重時,每個劃分過程都需要掃描網(wǎng)絡(luò)日志文件中的所有維度的多維度數(shù)據(jù),從而增加了多維度數(shù)據(jù)的去重時間,降低了去重效率的問題。本申請還提供了一種多維度數(shù)據(jù)去重系統(tǒng),用以保證上述方法在實際中的實現(xiàn)及應(yīng)用。為了解決上述問題,本申請?zhí)峁┝艘环N多維度數(shù)據(jù)去重方法,包括依據(jù)網(wǎng)絡(luò)日志文件中任一維度值的多維度數(shù)據(jù)的屬性值確定劃分值,其中,所述任一維度值小于所述網(wǎng)絡(luò)日志文件中各個維度的多維度數(shù)據(jù)的最大維度;將所述網(wǎng)絡(luò)日志文件中包含相同的所述劃分值的不同多維度數(shù)據(jù)劃分至一個子日志文件;對于所述子日志文件中的任一個多維度數(shù)據(jù),判斷是否存在與其屬性及屬性值都相同的多維度數(shù)據(jù),如果是,則刪除與所述任一個多維度數(shù)據(jù)相同的多維度數(shù)據(jù)。優(yōu)選地,所述依據(jù)網(wǎng)絡(luò)日志文件中任一維度值的多維度數(shù)據(jù)的屬性值確定劃分值包括將網(wǎng)絡(luò)日志文件中維度為I的一維度數(shù)據(jù)的屬性值確定為劃分值。優(yōu)選地,在所述任一維度值不為I,且維度小于任一維度值的多維度數(shù)據(jù)不包括所述劃分值的情況下,所述方法還包括選取所述網(wǎng)絡(luò)日志文件中維度相同,且小于所述任一維度值的各個多維度數(shù)據(jù);運用Hash算法對所選取的各個多維度數(shù)據(jù)進(jìn)行計算,得出所選取的各個多維度數(shù)據(jù)的關(guān)鍵字;將具有完全相同的關(guān)鍵字的各個多維度數(shù)據(jù)劃分至一個子日志文件。優(yōu)選地,所述將所述網(wǎng)絡(luò)日志文件中包含有相同的所述劃分值的多維度數(shù)據(jù)劃分至一個子日志文件包括
`
運用Hash算法對各個多維度數(shù)據(jù)包含的所述劃分值進(jìn)行計算,得出關(guān)鍵字;將具有完全相同關(guān)鍵字的各個多維度數(shù)據(jù)劃分至一個子日志文件。優(yōu)選地,所述將所述網(wǎng)絡(luò)日志文件中包含相同的所述劃分值的不同多維度數(shù)據(jù)劃分至一個子日志文件包括依據(jù)所述網(wǎng)絡(luò)日志文件的大小,將所述網(wǎng)絡(luò)日志文件拆分為多個初始子文件;將所述多個初始子文件中包含相同劃分值的多維度數(shù)據(jù)劃分至一個目標(biāo)子文件中,并將所述目標(biāo)子文件作為子日志文件,其中所述目標(biāo)子文件為所述多個初始子文件中的一個。優(yōu)選地,所述將所述多個初始子文件中包含相同劃分值的多維度數(shù)據(jù)劃分至一個目標(biāo)子文件中,并將所述目標(biāo)子文件作為子日志文件包括運用Hash算法對各個多維度數(shù)據(jù)包含的所述劃分值進(jìn)行計算,得出關(guān)鍵字;將具有完全相同的關(guān)鍵字的各個多維度數(shù)據(jù)劃分至一個目標(biāo)子文件,并將所述目標(biāo)子文件作為子日志文件。本申請還提供了一種多維度數(shù)據(jù)去重系統(tǒng),該系統(tǒng)包括劃分值確定模塊,用于依據(jù)網(wǎng)絡(luò)日志文件中任一維度值的多維度數(shù)據(jù)的屬性值確定劃分值,其中,所述任一維度值小于所述網(wǎng)絡(luò)日志文件中各個維度的多維度數(shù)據(jù)的最大維度;劃分模塊,用于將所述網(wǎng)絡(luò)日志文件中包含相同的所述劃分值的不同多維度數(shù)據(jù)劃分至一個子日志文件;判斷模塊,用于對于所述子日志文件中的任一個多維度數(shù)據(jù),判斷是否存在與其屬性及屬性值都相同的多維度數(shù)據(jù);
刪除模塊,用于在所述判斷模塊的結(jié)果為是的情況下,刪除與所述任一個多維度數(shù)據(jù)相同的多維度數(shù)據(jù)。優(yōu)選地,所述劃分值確定模塊,具體用于將所述網(wǎng)絡(luò)日志文件中維度為I的一維度數(shù)據(jù)的屬性值確定為劃分值。優(yōu)選地,在所述任一維度值不為I,且維度小于任一維度值的多維度數(shù)據(jù)不包括所述劃分值的情況下,所述系統(tǒng)還包括數(shù)據(jù)選取模塊,用于選取所述網(wǎng)絡(luò)日志文件中維度相同,且小于所述任一維度值的各個多維度數(shù)據(jù);所述劃分模塊,還用于運用Hash算法對所選取的各個多維度數(shù)據(jù)進(jìn)行計算,得出所選取的各個多維度數(shù)據(jù)的關(guān)鍵字,將具有完全相同關(guān)鍵字的各個多維度數(shù)據(jù)劃分至一個子日志文件。優(yōu)選地,所述劃分模塊包括關(guān)鍵字計算單元,用于運用Hash算法對各個多維度數(shù)據(jù)包含的所述劃分值進(jìn)行計算,得出關(guān)鍵字;第一劃分單元,用于將具有完全相同關(guān)鍵字的各個多維度數(shù)據(jù)劃分至一個子日志文件。與現(xiàn)有技術(shù)相比,本申請包括以下優(yōu)點應(yīng)用本申請實施例提供的多維度數(shù)據(jù)去重方法,依據(jù)任一維度值小于最大維度的多維度數(shù)據(jù)的屬性值確定劃分值,因此在對多個維度的多維度數(shù)據(jù)劃分時,可以一次對多維度數(shù)據(jù)進(jìn)行劃分,從而減少了劃分次數(shù),減少對網(wǎng)絡(luò)日志文件中所有維度的多維度數(shù)據(jù)的掃描時間,進(jìn)一步在去重的整體過程中,減少了多維度數(shù)據(jù)的去重時間,提高了去重效率。優(yōu)選地,在本申請實施例中,依據(jù)維度為I的一維度數(shù)據(jù)的屬性值確定劃分值,因此本申請可以一次劃分即可完成劃分所有多維度數(shù)據(jù),從而減少對網(wǎng)絡(luò)日志文件中所有維度的多維度數(shù)據(jù)的掃描時間,進(jìn)一步在去重的整體過程中,減少了多維度數(shù)據(jù)的去重時間,提聞了去重效率。更進(jìn)一步地,如果后續(xù)服務(wù)器還需要對該網(wǎng)絡(luò)日志文件中的多維度數(shù)據(jù)進(jìn)行分析,也會因為去重效率提高而加快分析過程。當(dāng)然,實施本申請的任一產(chǎn)品并不一定需要同時達(dá)到以上所述的所有優(yōu)點。
為了更清楚地說明本申請實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。 圖1是本申請的一種多維度數(shù)據(jù)去重方法實施例1的一種流程圖;圖2為實施例1步驟102的流程圖;圖3是本申請的一種多維度數(shù)據(jù)去重方法實施例1的另一種流程圖;圖4是本申請的一種多維度數(shù)據(jù)去重方法實施例2的流程圖5是本申請的一種多維度數(shù)據(jù)去重系統(tǒng)優(yōu)選實施例1的一種結(jié)構(gòu)框圖;圖6是本申請的劃分模塊的結(jié)構(gòu)框圖;圖7是本申請的一種多維度數(shù)據(jù)去重系統(tǒng)優(yōu)選實施例1的另一種結(jié)構(gòu)框圖;圖8是本申請的一種多維度數(shù)據(jù)去重系統(tǒng)優(yōu)選實施例2的結(jié)構(gòu)框圖;圖9是本申請的第二劃分單元的結(jié)構(gòu)框圖。
具體實施例方式下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。本申請可用于眾多通用或?qū)S玫挠嬎阆到y(tǒng)環(huán)境或配置中。例如個人計算機、服務(wù)器計算機、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處理器系統(tǒng)、包括以上任何系統(tǒng)或設(shè)備的分布式計算環(huán)境等等。本申請可以在由計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計算環(huán)境中實踐本申請,在這些分布式計算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計算環(huán)境中,程序模塊可以位于包括存儲設(shè)備在內(nèi)的本地和遠(yuǎn)程計算機存儲介質(zhì)中。本申請的主要思想之一可以包括,首先,依據(jù)網(wǎng)絡(luò)日志文件中任一維度值的多維度數(shù)據(jù)的屬性值確定劃分 值,其中,所述任一維度值小于所述網(wǎng)絡(luò)日志文件中各個維度的多維度數(shù)據(jù)的最大維度,其次,將網(wǎng)絡(luò)日志文件中包含相同劃分值的不同多維度數(shù)據(jù)劃分至同一個子日志文件,然后,在判斷子日志文件中的任一個多維度數(shù)據(jù)存在與其屬性及屬性值都相同的多維度數(shù)據(jù)時,刪除與任一個多維度數(shù)據(jù)相同的多維度數(shù)據(jù)。因為本申請依據(jù)任一維度值小于最大維度的多維度數(shù)據(jù)的屬性值確定劃分值,所以本申請在對多個維度的多維度數(shù)據(jù)劃分時,可以一次對多個維度的多維度數(shù)據(jù)進(jìn)行劃分,從而減少了劃分次數(shù),減少對網(wǎng)絡(luò)日志文件中所有維度的多維度數(shù)據(jù)的掃描時間,進(jìn)一步在去重的整體過程中,減少了多維度數(shù)據(jù)的去重時間,提高了去重效率。參考圖1,其示出了本申請一種多維度數(shù)據(jù)去重方法實施例1的一種流程圖,可以包括以下步驟步驟101 :依據(jù)網(wǎng)絡(luò)日志文件中任一維度值的多維度數(shù)據(jù)的屬性值確定劃分值,其中,任一維度值小于網(wǎng)絡(luò)日志文件中各個維度的多維度數(shù)據(jù)的最大維度值。當(dāng)任一維度值為I或其他數(shù)值時,依據(jù)網(wǎng)絡(luò)日志文件中任一維度值的多維度數(shù)據(jù)的屬性值確定的劃分值對應(yīng)不同的數(shù)值。當(dāng)任一維度值為I時,其確定的劃分值可以與其屬性值相同,也可以為屬性值的范圍值;當(dāng)任一維度值不為I時,該任一維度值對應(yīng)的多維度數(shù)據(jù)確定的劃分值可以為多個屬性值的組合,也可以為多個屬性值中的一個屬性值,還可以為多個屬性值中一個屬性值的范圍值。下面對劃分值和屬性值的對應(yīng)關(guān)系進(jìn)行舉例說明。例如某一個網(wǎng)絡(luò)日志文件記錄有多個多維度數(shù)據(jù),其中一個多維度數(shù)據(jù)的一維數(shù)據(jù)可以為{Mike},二維度數(shù)據(jù)可以為{Mike,浙江},三維度數(shù)據(jù)可以為{Mike,浙江,杭州},四維度數(shù)據(jù)可以為{Mike,浙江,杭州,www. taobao. com},五維度數(shù)據(jù)可以為{Mike,浙江,杭州,www. taobao. com, ie8}。當(dāng)任一維度值為I時,依據(jù)一維數(shù)據(jù)確定的劃分值可以為Mike,也可以為Mike的范圍值,如英文首字母L至N。當(dāng)任一維度值為2時,二維度數(shù)據(jù)確定的劃分值可以為Mike和浙江,也可以為Mike或浙江。步驟102 :將網(wǎng)絡(luò)日志文件中包含相同的劃分值的不同多維度數(shù)據(jù)劃分至一個子日志文件。不同維度值對應(yīng)的劃分值的數(shù)值不同,且對網(wǎng)絡(luò)日志文件中不同多維度數(shù)據(jù)的劃分過程也不同。同樣以步驟101列舉的網(wǎng)絡(luò)日志文件進(jìn)行說明。當(dāng)任一維度值為I時,其劃分值可以為Mike,則網(wǎng)絡(luò)日志文件中包含Mike的不同多維度數(shù)據(jù)劃分至一個子日志文件中。當(dāng)任一維度值為I時,劃分值還可以為英文首字母L至N,則網(wǎng)絡(luò)日志文件中第一個屬性值包含英文字母L或M或N的不同多維度數(shù)據(jù)劃分至一個子日志文件中。當(dāng)任一維度值不為I時,劃分值可以為Mike,則網(wǎng)絡(luò)日志文件中包含“Mike”的不同多維度數(shù)據(jù)劃分至一個子日志文件中。當(dāng)任一維度值不為I時,劃分值還可以為“浙江”時,則網(wǎng)絡(luò)日志文件中第二屬性值包含“浙江”的不同多維度數(shù)據(jù)被劃分至一個子日志文件中,而一維度數(shù)據(jù)不包括第二屬性值“浙江”,因此一維度數(shù)據(jù)被劃分至其他子日志文件中。當(dāng)任一維度值不為I時,劃分值還可以為“Mike”和“浙江”時,則網(wǎng)絡(luò)日志文件中第一屬性值和第二屬性值分別為“Mike”和“浙江”的不同多維度數(shù)據(jù)劃分至一個子日志文件中,而一維度數(shù)據(jù)被劃分至其他子日志文件中。當(dāng)任一維度值不為I時,劃分值還可以為英文首字母L至N,則網(wǎng)絡(luò)日志文件中第一個屬性值包含英文字母L或M或N的不同多維度數(shù)據(jù)劃分至一個子日志文件中。 上述劃分為依據(jù)劃分值對網(wǎng)絡(luò)日志文件中的不同多維度數(shù)據(jù)進(jìn)行劃分。當(dāng)然,劃分過程還可以采用其他方式,如圖2所示。圖2為實施例1步驟102的流程圖。該流程包括步驟步驟1021 :運用Hash算法對各個多維度數(shù)據(jù)包含的所述劃分值進(jìn)行計算,得出關(guān)鍵字。其中,Hash算法是一種壓縮映射算法,即將任意長度的輸入值轉(zhuǎn)換成固定長度的輸出值,該輸出值可以作為關(guān)鍵字。Hash算法具有一個基本特性兩個關(guān)鍵字不同,其對應(yīng)的輸入值也不同;兩個關(guān)鍵字相同,其對應(yīng)的輸入值可以相同,也可以不同。步驟1022 :將具有完全相同關(guān)鍵字的各個多維度數(shù)據(jù)劃分至一個子日志文件。如上所述,多維度數(shù)據(jù)由描述用戶訪問事件的各個屬性構(gòu)成,即每個多維度數(shù)據(jù)對應(yīng)一個用戶id,因此,在運用Hash算法對各個多維度數(shù)據(jù)包含的劃分值進(jìn)行計算時,選取特定的轉(zhuǎn)換方法,將網(wǎng)絡(luò)日志文件中同一用戶id對應(yīng)的不同多維度數(shù)據(jù)劃分至同一個子日志文件,且不同子日志文件中的多維度數(shù)據(jù)相對平均。其中,特定的轉(zhuǎn)換方法是指可以保證將網(wǎng)絡(luò)日志文件中同一用戶id對應(yīng)的不同多維度數(shù)據(jù)劃分至同一個子日志文件,且不同子日志文件中的多維度數(shù)據(jù)相對平均的轉(zhuǎn)換方法。下面列舉實例進(jìn)行說明。例如網(wǎng)絡(luò)日志文件中的不同維度的多維度數(shù)據(jù)分別對應(yīng)用戶id為Mike、Nike、Lining、Xiaoffang和Lucy,服務(wù)器選取特定的轉(zhuǎn)換方法,將上述用戶Mike、Nike和Lining對應(yīng)的不同多維度數(shù)據(jù)劃分至子日志文件A中,將上述用戶XiaoWang和Lucy對應(yīng)的不同多維度數(shù)據(jù)劃分至子日志文件B中。從統(tǒng)計學(xué)上來說,當(dāng)不同子日志文件中不同多維度數(shù)據(jù)對應(yīng)的用戶id個數(shù)相當(dāng)時,子日志文件中的多維度數(shù)據(jù)相對平均,S卩服務(wù)器通過特定的轉(zhuǎn)換方法可以保證不同子日志文件中的多維度數(shù)據(jù)相對平均。其中,用戶個數(shù)相當(dāng)是指用戶個數(shù)相同或者相差預(yù)設(shè)數(shù)值的用戶個數(shù),預(yù)設(shè)數(shù)值可以為I。需要說明的是在將網(wǎng)絡(luò)日志文件中包含相同劃分值的不同多維度數(shù)據(jù)劃分至同一個子日志文件中,服務(wù)器將不同多維度數(shù)據(jù)按照維度值進(jìn)行劃分,并且對任一維度值的多維度數(shù)據(jù)進(jìn)行排序。以上一步驟列舉的網(wǎng)絡(luò)日志文件為例,服務(wù)器可以按照第一屬性值中英文字母的排序,對同一維度的多維度數(shù)據(jù)進(jìn)行排序。步驟103 :對于所述子日志文件中的任一個多維度數(shù)據(jù),判斷是否存在與其屬性及屬性值都相同的多維度數(shù)據(jù),如果是,執(zhí)行步驟104 ;如果否,執(zhí)行步驟105。步驟104 :刪除與任一個多維度數(shù)據(jù)相同的多維度數(shù)據(jù)。步驟105 :保留該任一個多維度數(shù)據(jù)。實際應(yīng)用場景下,上述步驟103至步驟105的實際執(zhí)行過程可以為首先選取第一個多維度數(shù)據(jù),其中第一個多維度數(shù)據(jù)包括一維度數(shù)據(jù)至最大維度的多維度數(shù)據(jù)。由于該多維度數(shù)據(jù)是第一個多維度數(shù)據(jù),所以保留該第一個多維度數(shù)據(jù)中的不同多維度數(shù)據(jù)至相對應(yīng)的集合中;其次,循環(huán)選取其他多維度數(shù)據(jù),判斷選取的多維度數(shù)據(jù)與上一次保留至集合中的相同維度的多維度數(shù)據(jù)是否相同,如果是,則執(zhí)行步驟104,如果否,則執(zhí)行步驟105。需要說明的是在任一維度值不為1,且維度小于任一維度值的多維度數(shù)據(jù)不包括所述劃分值的情況下,不包括劃分值的多維度數(shù)據(jù)的劃分過程與步驟102不同,具體請參閱圖3。圖3為本申請一種多維度數(shù)據(jù)去重方法實施例1的另一種流程圖,可以包括如下步驟步驟301 :依據(jù)網(wǎng)絡(luò)日志文件中任一維度值的多維度數(shù)據(jù)的屬性值確定劃分值,其中,任一維度值小于網(wǎng)絡(luò)日志文件中各個維度的多維度數(shù)據(jù)的最大維度。步驟302 :將網(wǎng)絡(luò)日志文件中包含相同的劃分值的不同多維度數(shù)據(jù)劃分至一個子日志文件,執(zhí)行步驟306。步驟303 :選取網(wǎng)絡(luò)日志文件中維度相同,且小于任一維度值的各個多維度數(shù)據(jù)。步驟304 :運用Hash算法對所選取的各個多維度數(shù)據(jù)進(jìn)行計算,得出所選取的各個多維度數(shù)據(jù)的關(guān)鍵字。步驟305 :將具有完全相同關(guān)鍵字的各個多維度數(shù)據(jù)劃分至一個子日志文件,執(zhí)行步驟306。
在本實施例中,圖3所示的多維度數(shù)據(jù)去重方法與圖1所示的多維度數(shù)據(jù)去重方法的不同之處在于在任一維度值不為1,且維度小于任一維度值的多維度數(shù)據(jù)不包括所述劃分值的情況下,不包括劃分值的多維度數(shù)據(jù)采用步驟303至步驟305提供的方式進(jìn)行劃分。而其他包括劃分值的多維度數(shù)據(jù)則使用步驟302提供的方式進(jìn)行劃分。步驟306 :對于所述子日志文件中的任一個多維度數(shù)據(jù),判斷是否存在與其屬性及屬性值都相同的多維度數(shù)據(jù),如果是,執(zhí)行步驟307 ;如果否,執(zhí)行步驟308。步驟307 :刪除與任一個多維度數(shù)據(jù)相同的多維度數(shù)據(jù)。
步驟308 :保留該任一個多維度數(shù)據(jù)。應(yīng)用本申請實施例提供的多維度數(shù)據(jù)去重方法,依據(jù)任一維度值小于最大維度的多維度數(shù)據(jù)的屬性值確定劃分值,因此在對多個維度的多維度數(shù)據(jù)劃分時,可以一次對多個維度的多維度數(shù)據(jù)進(jìn)行劃分,從而減少了劃分次數(shù),減少對網(wǎng)絡(luò)日志文件中所有維度的多維度數(shù)據(jù)的掃描時間,進(jìn)一步在去重的整體過程中,減少了多維度數(shù)據(jù)的去重時間,提高了去重效率。優(yōu)選地,在本申請實施例中,依據(jù)維度為I的一維度數(shù)據(jù)的屬性值確定劃分值,因此本申請可以一次劃分即可完成劃分所有多維度數(shù)據(jù),從而減少對網(wǎng)絡(luò)日志文件中所有維度的多維度數(shù)據(jù)的掃描時間,進(jìn)一步在去重的整體過程中,減少了多維度數(shù)據(jù)的去重時間,提聞了去重效率。更進(jìn)一步地,如果后續(xù)服務(wù)器還需要對該網(wǎng)絡(luò)日志文件中的多維度數(shù)據(jù)進(jìn)行分析,也會因為去重效率提高而加快分析過程。參考圖4,示出了本申請一種多維度數(shù)據(jù)去重方法實施例2的流程圖,本實施例可以理解為將本申請的多維度數(shù)據(jù)去重方法應(yīng)用于實際中的一個具體例子,可以包括以下步驟步驟401 :依據(jù)網(wǎng)絡(luò)日志文件中任一維度值的多維度數(shù)據(jù)的屬性值確定劃分值,其中,任一維度值小于網(wǎng)絡(luò)日志文件中各個維度的多維度數(shù)據(jù)的最大維度。步驟402 :將網(wǎng)絡(luò)日志文件中包含相同的劃分值的不同多維度數(shù)據(jù)劃分至一個子日志文件。在實際應(yīng)用場 景中,步驟402可以采用如下步驟
步驟4021 :依據(jù)所述網(wǎng)絡(luò)日志文件的大小,將所述網(wǎng)絡(luò)日志文件拆分為多個初始子文件。之所以依據(jù)網(wǎng)絡(luò)日志文件大小,將網(wǎng)絡(luò)日志文件拆分為多個初始子文件,是為了由不同的進(jìn)程處理不同的子文件,即由不同的服務(wù)器處理不同的子文件,從而可以避免使用一個服務(wù)器處理網(wǎng)絡(luò)日志文件時,導(dǎo)致服務(wù)器性能降低,甚至癱瘓。初始子文件個數(shù)的確定方式可以為,首先確定初始子文件的大小,其次依據(jù)網(wǎng)絡(luò)日志文件的大小與確定的初始子文件大小的比值,確定初始子文件個數(shù)。初始子文件個數(shù)的確定方式還可以為由操作人員預(yù)先確定。當(dāng)操作人員預(yù)先確定初始文件個數(shù)時,每個初始子文件的大小網(wǎng)絡(luò)日志文件的大小與初始子文件個數(shù)的比值。需要說明的是當(dāng)網(wǎng)絡(luò)日志文件的大小與初始子文件個數(shù)的比值不為整數(shù)時,可以將余數(shù)劃分至任一個初始子文件中。步驟4022 :將多個初始子文件中包含相同劃分值的多維度數(shù)據(jù)劃分至一個目標(biāo)子文件中,并將目標(biāo)子文件作為子日志文件,其中目標(biāo)子文件為多個初始子文件中的一個。如前所述,首先,運用Hash算法對各個多維度數(shù)據(jù)包含的劃分值進(jìn)行計算,得出關(guān)鍵字;其次,將具有完全相同關(guān)鍵字的各個多維度數(shù)據(jù)劃分至一個子日志文件的方式可以將網(wǎng)絡(luò)日志文件中同一用戶對應(yīng)的不同多維度數(shù)據(jù)劃分至同一個子日志文件,且不同子日志文件中的多維度數(shù)據(jù)相對平均。因此,在本實施例中優(yōu)選采用上述依據(jù)關(guān)鍵字劃分的方式。步驟403 :對于所述子日志文件中的任一個多維度數(shù)據(jù),判斷是否存在與其屬性及屬性值都相同的多維度數(shù)據(jù),如果是,執(zhí)行步驟404;如果否,執(zhí)行步驟405。步驟404 :刪除與任一個多維度數(shù)據(jù)相同的多維度數(shù)據(jù)。步驟405 :保留該任一個多維度數(shù)據(jù)。需要說明的是本實施例優(yōu)選將維度為I的一維度數(shù)據(jù)的屬性值確定為劃分值。當(dāng)本實施例存在任一維度值不為1,且維度小于任一維度值的多維度數(shù)據(jù)不包括所述劃分值的情況下,不包括劃分值的多維度數(shù)據(jù)采用圖3中的步驟303至步驟305提供的方式進(jìn)行劃分。在完成劃分后,執(zhí)行步驟403。下面以將網(wǎng)絡(luò)日志文件拆分為兩個初始子文件,將維度為I的一維度數(shù)據(jù)的屬性值作為劃分值,且在劃分過程中依據(jù)關(guān)鍵字對不同多維度數(shù)據(jù)進(jìn)行劃分為例對本實施例提供的多維度數(shù)據(jù)去重方法進(jìn)行說明。網(wǎng)絡(luò)日志文件被拆分成的初始子文件I包括一維度數(shù)據(jù){Mike},二維度數(shù)據(jù){Mike,浙江},三維度數(shù)據(jù){Mike,浙江,杭州},四維度數(shù)據(jù){Mike,浙江,杭州,www. taobao. com},五維度數(shù)據(jù){Mike,浙江,杭州,www.taobao. com, ie8}; 一維度數(shù)據(jù){Mike},二維度數(shù)據(jù){Mike,浙江},三維度數(shù)據(jù){Mike,浙江,杭州},四維度數(shù)據(jù){Mike,浙江,杭州,s. taobao. com},五維度數(shù)據(jù){Mike,浙江,杭州,s. taobao.com, ie8}; —維度數(shù)據(jù){Lucy}, 二維度數(shù)據(jù){Lucy,浙江},三維度數(shù)據(jù){Lucy,浙江,寧波},四維度數(shù)據(jù){Lucy,浙江,寧波,list, taobao. com},五維度數(shù)據(jù){Lucy,浙江,寧波,list,taobao. com, firefox};一維度數(shù)據(jù){Bell},二維度數(shù)據(jù){Bel I,浙江},三維度數(shù)據(jù){Bell,浙江,金華},四維度數(shù)據(jù){Bell,浙江,金華,list, taobao. com},五維度數(shù)據(jù){Bell,浙江,金華,list,taobao. com, ie8};一維度數(shù)據(jù){Bell},二維度數(shù)據(jù){Bel I,浙江},三維度數(shù)據(jù){Bell,浙江,臺州},四維度數(shù)據(jù){Bell,浙江,臺州,list, taobao. com},五維度數(shù)據(jù){Bell,浙江,臺州,list,taobao. com, ie8}。初始子文件2包括一維度數(shù)據(jù){Mike},二維度數(shù)據(jù){Mike,浙江},三維度數(shù)據(jù){Mike,浙江,杭州},四維度數(shù)據(jù){Mike,浙江,杭州,www. taobao. com},五維度數(shù)據(jù){Mike,浙江,杭州,www.taobao. com, ie8};—維度數(shù)據(jù){Lucy}, 二維度數(shù)據(jù){Lucy,浙江},三維度數(shù)據(jù){Lucy,浙江,寧波},四維度數(shù)據(jù){Lucy,浙江,寧波,list, taobao. com},五維度數(shù)據(jù){Lucy,浙江,寧波,list,taobao. com, firefox};—維度數(shù)據(jù){Lucy}, 二維度數(shù)據(jù){Lucy,浙江},三維度數(shù)據(jù){Lucy,浙江,寧波},四維度數(shù)據(jù){Lucy,浙江,寧波,list, taobao. com},五維度數(shù)據(jù){Lucy,浙江,寧波,list,taobao. com, ie8};—維度數(shù)據(jù){Nancy}, 二維度數(shù)據(jù){Nancy,浙江},三維度數(shù)據(jù){Nancy,浙江,金華},四維度數(shù)據(jù){Nancy,浙江,金華,www. taobao. com},五維度數(shù)據(jù){Nancy,浙江,金華,www. taobao. com, ie8};
—維度數(shù)據(jù){Nancy}, 二維度數(shù)據(jù){Nancy,浙江},三維度數(shù)據(jù){Nancy,浙江,金華},四維度數(shù)據(jù){Nancy,浙江,金華,list, taobao. com},五維度數(shù)據(jù){Nancy,浙江,金華,list.taobao. com, ie8};—維度數(shù)據(jù){Nancy}, 二維度數(shù)據(jù){Nancy,浙江},三維度數(shù)據(jù){Nancy,浙江,臺州},四維度數(shù)據(jù){Nancy,浙江,臺州,list, taobao. com},五維度數(shù)據(jù){Nancy,浙江,臺州,list.taobao. com, ie8}。確定的網(wǎng)絡(luò)日志文件的劃分值分別為Mike、Lucy、Bell和Nancy。運用Hash算法對各個多維度數(shù)據(jù)包含的劃分值進(jìn)行計算,在計算過程中選取特定的轉(zhuǎn)換方法將上述兩個初始子文件中的不同多維度數(shù)據(jù)劃分至兩個子日志文件中,每個子日志文件的不同多維度數(shù)據(jù)對應(yīng)兩個用戶。子日志文件A包括一維度數(shù)據(jù){Bell},二維度數(shù)據(jù){Bell,浙江},三維度數(shù)據(jù){Bell,浙江,金華},四維度數(shù)據(jù){Bell,浙江,金華,list, taobao. com},五維度數(shù)據(jù){Bell,浙江,金華,list, taobao. com, ie8};一維度數(shù)據(jù){Bell},二維度數(shù)據(jù){Bel I,浙江},三維度數(shù)據(jù){Bell,浙江,臺州},四維度數(shù)據(jù){Bell,浙江,臺州,list, taobao. com},五維度數(shù)據(jù){Bell,浙江,臺州,list,taobao. com, ie8};—維度數(shù)據(jù){Lucy}, 二維度數(shù)據(jù){Lucy,浙江},三維度數(shù)據(jù){Lucy,浙江,寧波},四維度數(shù)據(jù){Lucy,浙江,寧波,list, taobao. com},五維度數(shù)據(jù){Lucy,浙江,寧波,list,taobao. com, firefox};—維度數(shù)據(jù){Lucy}, 二維度數(shù)據(jù){Lucy,浙江},三維度數(shù)據(jù){Lucy,浙江,寧波},四維度數(shù)據(jù){Lucy,浙江,寧 波,list, taobao. com},五維度數(shù)據(jù){Lucy,浙江,寧波,list,taobao. com, firefox};—維度數(shù)據(jù){Lucy}, 二維度數(shù)據(jù){Lucy,浙江},三維度數(shù)據(jù){Lucy,浙江,寧波},四維度數(shù)據(jù){Lucy,浙江,寧波,list, taobao. com},五維度數(shù)據(jù){Lucy,浙江,寧波,list,taobao. com, ie8}。子日志文件B包括一維度數(shù)據(jù){Mike},二維度數(shù)據(jù){Mike,浙江},三維度數(shù)據(jù){Mike,浙江,杭州},四維度數(shù)據(jù){Mike,浙江,杭州,www. taobao. com},五維度數(shù)據(jù){Mike,浙江,杭州,www.taobao. com, ie8};一維度數(shù)據(jù){Mike},二維度數(shù)據(jù){Mike,浙江},三維度數(shù)據(jù){Mike,浙江,杭州},四維度數(shù)據(jù){Mike,浙江,杭州,s. taobao. com},五維度數(shù)據(jù){Mike,浙江,杭州,s. taobao.com, ie8};一維度數(shù)據(jù){Mike},二維度數(shù)據(jù){Mike,浙江},三維度數(shù)據(jù){Mike,浙江,杭州},四維度數(shù)據(jù){Mike,浙江,杭州,www. taobao. com},五維度數(shù)據(jù){Mike,浙江,杭州,www.taobao. com, ie8};一維度數(shù)據(jù){Nancy}, 二維度數(shù)據(jù){Nancy,浙江},三維度數(shù)據(jù){Nancy,浙江,金華},四維度數(shù)據(jù){Nancy,浙江,金華,list, taobao. com},五維度數(shù)據(jù){Nancy,浙江,金華,list.taobao. com, ie8};—維度數(shù)據(jù){Nancy}, 二維度數(shù)據(jù){Nancy,浙江},三維度數(shù)據(jù){Nancy,浙江,臺州},四維度數(shù)據(jù){Nancy,浙江,臺州,list, taobao. com},五維度數(shù)據(jù){Nancy,浙江,臺州,list.taobao. com, ie8}。對上述子日志文件A按照多維度數(shù)據(jù)順序依次掃描,對于第一個多維度數(shù)據(jù),直接保留Bell至一維度數(shù)據(jù)集合,保留Bell,浙江至二維度數(shù)據(jù)集合,Bell,浙江,金華至三維度數(shù)據(jù)集合,Bell,浙江,金華,list, taobao. com至四維度數(shù)據(jù)集合,Bell,浙江,金華,list, taobao. com, ie8至五維度數(shù)據(jù)集合。對于第二個多維度數(shù)據(jù)中不同維度的多維度數(shù)據(jù),分別與上一次保留至集合中對應(yīng)維度的多維度數(shù)據(jù)比較,判斷出第二個多維度數(shù)據(jù)為上一次保留至集合中的第一個多維度數(shù)據(jù)的相同的多維度數(shù)據(jù),因此刪除第二個多維度數(shù)據(jù)。對于第三個多維度數(shù)據(jù)中不同維度的多維度數(shù)據(jù),分別與上一次保留至集合中對應(yīng)維度的多維度數(shù)據(jù)比較,判斷出第二個多維度數(shù)據(jù)中不同維度的多維度數(shù)據(jù)與上一次保留至集合中對應(yīng)維度的多維度數(shù)據(jù)不相同,因此,保留Lucy至一維度數(shù)據(jù)集合,保留Lucy,浙江至二維度數(shù)據(jù)集合,Lucy,浙江,寧波至三維度數(shù)據(jù)集合,Lucy,浙江,寧波,list,taobao. com至四維度數(shù)據(jù)集合,Lucy,浙江,寧波,list, taobao. com, firefox至五維度數(shù)據(jù)集合。對于第四個多維度數(shù)據(jù)中不同維度的多維度數(shù)據(jù),分別與上一次保留至集合中對應(yīng)維度的多維度數(shù)據(jù)比較,判斷出第四個多維度數(shù)據(jù)中不同維度的多維度數(shù)據(jù)與上一次保留至集合中對應(yīng)維度的多維度數(shù)據(jù)相同,因此刪除第四個多維度數(shù)據(jù)。對于第五個多維度數(shù)據(jù)中不同維度的多維度數(shù)據(jù)與上一次保留至集合中對應(yīng)維度的多維度數(shù)據(jù),判斷出第五個多維度數(shù)據(jù)中維度為5的多維度數(shù)據(jù)與上一次保留至集合中對應(yīng)維度的多維度數(shù)據(jù)不相同,因此,保留Nancy,浙江,臺州,list, taobao. com, ie8至五維度數(shù)據(jù)集合。
`
至此,完成對子日志文件A的去重過程。同樣,子日志文件B按照上述比較判斷過程進(jìn)行去重。需要說明的是本申請的多維度數(shù)據(jù)去重方法可基于一個分布式系統(tǒng)基礎(chǔ)架構(gòu)——Hadoop架構(gòu)的一個應(yīng)用,在劃分之后,Hadoop架構(gòu)會對日志子文件中的多維度數(shù)據(jù)進(jìn)行排序,例如日志子文件包括多維度數(shù)據(jù){a, b}, {a, b, c}, {a, b, c, d}, {a, b, c, d, e},{a, b}, {a, b, d}, {a, b, d, e}, {a, b, d, e, c},則其排序過程為將{a, b}, {a, b, c}, {a, b, c,d}和{a, b, c, d, e}排在一組,而將{a, b}, {a, b, d}, {a, b, d, e}和{a, b, d, e, c}排在另一組。不同組的多維度數(shù)據(jù)分別進(jìn)行去重過程,且在去重過程中可以分別實現(xiàn)組中的三維度數(shù)據(jù)至五維度數(shù)據(jù)的一次去重。對于不同組中的二維度數(shù)據(jù){a,b},本系統(tǒng)只保留第一組中的二維度數(shù)據(jù){a,b}。其中,本系統(tǒng)為運行本申請的多維度數(shù)據(jù)去重方法的系統(tǒng)。在按照上述方式對網(wǎng)絡(luò)日志文件中的多維度數(shù)據(jù)去重時,假如該網(wǎng)絡(luò)日志文件中包含30億的多維度數(shù)據(jù),其存儲占用的空間為300G。服務(wù)器需要對網(wǎng)絡(luò)日志文件進(jìn)行5個維度的去重,發(fā)明人采用200臺服務(wù)器對30億的多維度數(shù)據(jù)進(jìn)行反復(fù)去重實驗,發(fā)現(xiàn)采用現(xiàn)有技術(shù)去重時,掃描的多維度數(shù)據(jù)個數(shù)約為30億*4 = 120億,存儲占用的空間為300G*4=1200G,去重時間為60分鐘左右。而采用本實施例提供的多維度數(shù)據(jù)去重方法,掃描的多維度數(shù)據(jù)個數(shù)為30億,存儲占用的空間為300G,去重時間為12分鐘,與現(xiàn)有技術(shù)所消耗的去重時間相比大大降低。
此外,本實施例可以將網(wǎng)絡(luò)日志文件拆分為多個初始子文件,由不同的服務(wù)器處理不同的子文件,從而可以避免使用一個服務(wù)器處理網(wǎng)絡(luò)日志文件時,導(dǎo)致服務(wù)器性能降低,甚至癱瘓。進(jìn)一步,本實施例可以采用Hash算法計算得出關(guān)鍵字,再依據(jù)關(guān)鍵字對網(wǎng)絡(luò)日志文件中的不同多維度數(shù)據(jù)進(jìn)行劃分,以保證不同子日志文件中的多維度數(shù)據(jù)個數(shù)相對平均,可以進(jìn)一步避免服務(wù)器性能降低,從而避免服務(wù)器癱瘓。對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請并不受所描述的動作順序的限制,因為依據(jù)本申請,某些步驟可以采用其他順序或者同時進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實·施例,所涉及的動作和模塊并不一定是本申請所必須的。與上述本申請一種多維度數(shù)據(jù)去重方法實施例1所提供的方法相對應(yīng),參見圖5,本申請還提供了一種多維度數(shù)據(jù)去重系統(tǒng)實施例1,在本實施例中,該系統(tǒng)可以包括劃分值確定模塊51、劃分模塊52、判斷模塊53和刪除模塊54。其中劃分值確定模塊51,用于依據(jù)網(wǎng)絡(luò)日志文件中任一維度值的多維度數(shù)據(jù)的屬性值確定劃分值,其中,所述任一維度值小于所述網(wǎng)絡(luò)日志文件中各個維度的多維度數(shù)據(jù)的最大維度。劃分值確定模塊51,具體用于將所述網(wǎng)絡(luò)日志文件中維度為I的一維度數(shù)據(jù)的屬性值確定為劃分值。當(dāng)維度為I時,一維度數(shù)據(jù)確定的劃分值可以與其屬性值相同,也可以為屬性值的范圍值。當(dāng)然,劃分值確定模塊51還可以具體用于依據(jù)維度大于1,且小于最大維度的多維度數(shù)據(jù)的屬性值確定劃分值。當(dāng)維度不為I時,該維度對應(yīng)的多維度數(shù)據(jù)確定的劃分值可以為多個屬性值的組合,也可以為多個屬性值中的一個屬性值,還可以為多個屬性值中一個屬性值的范圍值。劃分值和屬性值的對應(yīng)關(guān)系的舉例說明請參閱方法實施例1中的說明,對此不再加以具體闡述。劃分模塊52,用于將所述網(wǎng)絡(luò)日志文件中包含相同的所述劃分值的不同多維度數(shù)據(jù)劃分至一個子日志文件。在劃分值確定模塊51所依據(jù)的任一維度值為I和其他數(shù)值時,劃分值確定模塊51確定的劃分值的數(shù)值不同,進(jìn)一步劃分模塊52對網(wǎng)絡(luò)日志文件中不同多維度數(shù)據(jù)的劃分過程也不同,具體請參閱方法實施例1中的說明。劃分模塊52可以采用上述依據(jù)劃分值進(jìn)行劃分,其還可以運用Hash算法對劃分值進(jìn)行計算,得出關(guān)鍵字,再利用關(guān)鍵字進(jìn)行劃分。例如圖6所示的劃分模塊52的結(jié)構(gòu)框圖,該劃分模塊52則是利用關(guān)鍵字對不同多維度數(shù)據(jù)進(jìn)行劃分。劃分模塊52包括關(guān)鍵字計算單元521和第一劃分單元522。其中關(guān)鍵字計算單元521,用于運用Hash算法對各個多維度數(shù)據(jù)包含的所述劃分值進(jìn)行計算,得出關(guān)鍵字。第一劃分單元522,用于將具有完全相同關(guān)鍵字的各個多維度數(shù)據(jù)劃分至一個子日志文件。上述劃分模塊52依據(jù)關(guān)鍵字劃分時,可以將網(wǎng)絡(luò)日志文件中同一用戶對應(yīng)的不同多維度數(shù)據(jù)劃分至同一個子日志文件,且不同子日志文件中的多維度數(shù)據(jù)相對平均。因此,在本實施例中劃分模塊52優(yōu)選采用上述依據(jù)關(guān)鍵字劃分的方式。判斷模塊53,用于對于所述子日志文件中的任一個多維度數(shù)據(jù),判斷是否存在與其屬性及屬性值都相同的多維度數(shù)據(jù)。刪除模塊54,用于在所述判斷模塊的結(jié)果為是的情況下,刪除與所述任一個多維度數(shù)據(jù)相同的多維度數(shù)據(jù)。需要說明的是在任一維度值不為1,且維度小于任一維度值的多維度數(shù)據(jù)不包括所述劃分值的情況下,本優(yōu)選實施例1提供的多維度數(shù)據(jù)去重系統(tǒng)在圖1所示的基礎(chǔ)上,增加了數(shù)據(jù)選取模塊55,如圖7所示。圖7是本申請的一種多維度數(shù)據(jù)去重系統(tǒng)優(yōu)選實施例I的另一種結(jié)構(gòu)框圖,其中數(shù)據(jù)選取模塊55,用于選取所述網(wǎng)絡(luò)日志文件中維度相同,且小于所述任一維度值的各個多維度數(shù)據(jù)。劃分模塊52,還用于運用Hash算法對所選取的各個多維度數(shù)據(jù)進(jìn)行計算,得出所選取的各個多維度數(shù)據(jù)的關(guān)鍵字,將具有完全相同關(guān)鍵字的各個多維度數(shù)據(jù)劃分至一個子日志文件。本實施例所述的系統(tǒng)可以集成到搜索引擎的服務(wù)器上,也可以單獨作為一個實體與搜索引擎服務(wù)器相連,另外,需要說明的是,當(dāng)本申請所述的方法采用軟件實現(xiàn)時,可以作為搜索引擎的服務(wù)器新增的一個功能,也可以單獨編寫相應(yīng)的程序,本申請不限定所述方法或系統(tǒng)的實現(xiàn)方式。本實施例中,劃分值確定模塊51依據(jù)任一維度值小于最大維度的多維度數(shù)據(jù)的屬性值確定劃分值,因此劃分模塊52在對多個維度的多維度數(shù)據(jù)劃分時,可以一次對多個維度的多維度數(shù)據(jù)進(jìn)行劃分,從而減少了劃分次數(shù),減少對網(wǎng)絡(luò)日志文件中所有維度的多維度數(shù)據(jù)的掃描時間,進(jìn)一步 在去重的整體過程中,減少了多維度數(shù)據(jù)的去重時間,提高了
去重效率。優(yōu)選地,在本實施例中,劃分值確定模塊51依據(jù)維度為I的一維度數(shù)據(jù)的屬性值確定劃分值,因此劃分模塊52可以一次劃分即可完成劃分所有多維度數(shù)據(jù),從而減少對網(wǎng)絡(luò)日志文件中所有維度的多維度數(shù)據(jù)的掃描時間,進(jìn)一步在去重的整體過程中,減少了多維度數(shù)據(jù)的去重時間,提高了去重效率。更進(jìn)一步地,如果后續(xù)服務(wù)器還需要對該網(wǎng)絡(luò)日志文件中的多維度數(shù)據(jù)進(jìn)行分析,也會因為去重效率提高而加快分析過程。與上述本申請一種多維度數(shù)據(jù)去重方法實施例2所提供的方法相對應(yīng),參見圖8,本申請還提供了一種多維度數(shù)據(jù)去重系統(tǒng)的優(yōu)選實施例2,在本實施例中,該系統(tǒng)中的劃分模塊52具體可以包括拆分單元523和第二劃分單元524。其中拆分單元523,用于依據(jù)所述網(wǎng)絡(luò)日志文件的大小,將所述網(wǎng)絡(luò)日志文件拆分為多個初始子文件。拆分單元523之所以依據(jù)網(wǎng)絡(luò)日志文件大小,將網(wǎng)絡(luò)日志文件拆分為多個初始子文件,是為了由不同的進(jìn)程處理不同的子文件,即由不同的服務(wù)器處理不同的子文件,從而可以避免使用一個服務(wù)器處理網(wǎng)絡(luò)日志文件時,導(dǎo)致服務(wù)器性能降低,甚至癱瘓。第二劃分單元524,用于將所述多個初始子文件中包含相同劃分值的多維度數(shù)據(jù)劃分至一個目標(biāo)子文件中,并將所述目標(biāo)子文件作為子日志文件,其中所述目標(biāo)子文件為所述多個初始子文件中的一個。第二劃分單元524可以采用依據(jù)劃分值進(jìn)行劃分,其還可以運用Hash算法對劃分值進(jìn)行計算,得出關(guān)鍵字,再利用關(guān)鍵字進(jìn)行劃分。例如圖9所示的第二劃分單元524的結(jié)構(gòu)框圖,該第二劃分單元524則是利用關(guān)鍵字對不同多維度數(shù)據(jù)進(jìn)行劃分。第二劃分單元524包括關(guān)鍵字計算子單元5241和劃分子單元5242。其中關(guān)鍵字計算子單元5241,用于運用Hash算法對各個多維度數(shù)據(jù)包含的所述劃分值進(jìn)行計算,得出關(guān)鍵字。劃分子單元5242,用于將具有完全相同關(guān)鍵字的各個多維度數(shù)據(jù)劃分至一個目標(biāo)子文件,并將所述目標(biāo)子文件作為子日志文件。實際環(huán)境中,本實施例提供的多維度數(shù)據(jù)去重系統(tǒng)對網(wǎng)絡(luò)日志文件中不同多維度數(shù)據(jù)的去重過程可以參閱方法實施例2中的舉例說明,對此不再加以闡述。在本實施例中,劃分模塊52可以將網(wǎng)絡(luò)日志文件拆分為多個初始子文件,由不同的服務(wù)器處理不同的子文件,從而可以避免使用一個服務(wù)器處理網(wǎng)絡(luò)日志文件時,導(dǎo)致服務(wù)器性能降低,甚至癱瘓。進(jìn)一步,本實施例中,劃分模塊52的第二劃分單元524可以采用Hash算法計算得出關(guān)鍵字,再依據(jù)關(guān)鍵字對網(wǎng)絡(luò)日志文件中的不同多維度數(shù)據(jù)進(jìn)行劃分,以保證不同子日志文件中的多維度數(shù)據(jù)個數(shù)相對平均,可以進(jìn)一步避免服務(wù)器性能降低,從而避免服務(wù)器癱瘓。需要說明的 是,本說明書中的各個實施例均采用遞進(jìn)的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對于系統(tǒng)類實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或
者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個......”限定的要素,
并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。為了描述的方便,描述以上系統(tǒng)時以功能分為各種單元分別描述。當(dāng)然,在實施本申請時可以把各單元的功能在同一個或多個軟件和/或硬件中實現(xiàn)。通過以上的實施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請可借助軟件加必需的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本申請的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個實施例或者實施例的某些部分所述的方法。以上對本申請所提供的一種多維度數(shù)據(jù)去重方法及系統(tǒng)進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個例對本申請的原理及實施方式進(jìn)行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請的思想,在具體實施方式
及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本申請的限制.
權(quán)利要求
1.一種多維度數(shù)據(jù)去重方法,其特征在于,該方法包括 依據(jù)網(wǎng)絡(luò)日志文件中任一維度值的多維度數(shù)據(jù)的屬性值確定劃分值,其中,所述任一維度值小于所述網(wǎng)絡(luò)日志文件中各個維度的多維度數(shù)據(jù)的最大維度; 將所述網(wǎng)絡(luò)日志文件中包含相同的所述劃分值的不同多維度數(shù)據(jù)劃分至一個子日志文件; 對于所述子日志文件中的任一個多維度數(shù)據(jù),判斷是否存在與其屬性及屬性值都相同的多維度數(shù)據(jù),如果是,則刪除與所述任一個多維度數(shù)據(jù)相同的多維度數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述依據(jù)網(wǎng)絡(luò)日志文件中任一維度值的多維度數(shù)據(jù)的屬性值確定劃分值包括將網(wǎng)絡(luò)日志文件中維度為I的一維度數(shù)據(jù)的屬性值確定為劃分值。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述任一維度值不為1,且維度小于任一維度值的多維度數(shù)據(jù)不包括所述劃分值的情況下,所述方法還包括 選取所述網(wǎng)絡(luò)日志文件中維度相同,且小于所述任一維度值的各個多維度數(shù)據(jù); 運用Hash算法對所選取的各個多維度數(shù)據(jù)進(jìn)行計算,得出所選取的各個多維度數(shù)據(jù)的關(guān)鍵字; 將具有完全相同的關(guān)鍵字的各個多維度數(shù)據(jù)劃分至一個子日志文件。
4.根據(jù)權(quán)利要求1至3任意一項所述的方法,其特征在于,所述將所述網(wǎng)絡(luò)日志文件中包含有相同的所述劃分值的多維度數(shù)據(jù)劃分至一個子日志文件包括 運用Hash算法對各個多維度數(shù)據(jù)包含的所述劃分值進(jìn)行計算,得出關(guān)鍵字; 將具有完全相同關(guān)鍵字的各個多維度數(shù)據(jù)劃分至一個子日志文件。
5.根據(jù)權(quán)利要求1至3任意一項所述的方法,其特征在于,所述將所述網(wǎng)絡(luò)日志文件中包含相同的所述劃分值的不同多維度數(shù)據(jù)劃分至一個子日志文件包括 依據(jù)所述網(wǎng)絡(luò)日志文件的大小,將所述網(wǎng)絡(luò)日志文件拆分為多個初始子文件; 將所述多個初始子文件中包含相同劃分值的多維度數(shù)據(jù)劃分至一個目標(biāo)子文件中,并將所述目標(biāo)子文件作為子日志文件,其中所述目標(biāo)子文件為所述多個初始子文件中的一個。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述將所述多個初始子文件中包含相同劃分值的多維度數(shù)據(jù)劃分至一個目標(biāo)子文件中,并將所述目標(biāo)子文件作為子日志文件包括 運用Hash算法對各個多維度數(shù)據(jù)包含的所述劃分值進(jìn)行計算,得出關(guān)鍵字; 將具有完全相同的關(guān)鍵字的各個多維度數(shù)據(jù)劃分至一個目標(biāo)子文件,并將所述目標(biāo)子文件作為子日志文件。
7.—種多維度數(shù)據(jù)去重系統(tǒng),其特征在于,該系統(tǒng)包括 劃分值確定模塊,用于依據(jù)網(wǎng)絡(luò)日志文件中任一維度值的多維度數(shù)據(jù)的屬性值確定劃分值,其中,所述任一維度值小于所述網(wǎng)絡(luò)日志文件中各個維度的多維度數(shù)據(jù)的最大維度; 劃分模塊,用于將所述網(wǎng)絡(luò)日志文件中包含相同的所述劃分值的不同多維度數(shù)據(jù)劃分至一個子日志文件; 判斷模塊,用于對于所述子日志文件中的任一個多維度數(shù)據(jù),判斷是否存在與其屬性及屬性值都相同的多維度數(shù)據(jù); 刪除模塊,用于在所述判斷模塊的結(jié)果為是的情況下,刪除與所述任一個多維度數(shù)據(jù)相同的多維度數(shù)據(jù)。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述劃分值確定模塊,具體用于將所述網(wǎng)絡(luò)日志文件中維度為I的一維度數(shù)據(jù)的屬性值確定為劃分值。
9.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,在所述任一維度值不為1,且維度小于任一維度值的多維度數(shù)據(jù)不包括所述劃分值的情況下,所述系統(tǒng)還包括 數(shù)據(jù)選取模塊,用于選取所述網(wǎng)絡(luò)日志文件中維度相同,且小于所述任一維度值的各個多維度數(shù)據(jù); 所述劃分模塊,還用于運用Hash算法對所選取的各個多維度數(shù)據(jù)進(jìn)行計算,得出所選取的各個多維度數(shù)據(jù)的關(guān)鍵字,將具有完全相同關(guān)鍵字的各個多維度數(shù)據(jù)劃分至一個子日志文件。
10.根據(jù)權(quán)利要求7至9任意一項所述的系統(tǒng),其特征在于,所述劃分模塊包括 關(guān)鍵字計算單元,用于運用Hash算法對各個多維度數(shù)據(jù)包含的所述劃分值進(jìn)行計算,得出關(guān)鍵字; 第一劃分單元,用于將具有完全相同關(guān)鍵字的各個多維度數(shù)據(jù)劃分至一個子日志文件。
全文摘要
本申請?zhí)峁┝艘环N多維度數(shù)據(jù)去重方法及系統(tǒng),所述方法包括依據(jù)網(wǎng)絡(luò)日志文件中任一維度值的多維度數(shù)據(jù)的屬性值確定劃分值,其中,任一維度值小于網(wǎng)絡(luò)日志文件中各個維度的多維度數(shù)據(jù)的最大維度;將網(wǎng)絡(luò)日志文件中包含相同的劃分值的不同多維度數(shù)據(jù)劃分至一個子日志文件;對于子日志文件中的任一個多維度數(shù)據(jù),判斷是否存在與其屬性及屬性值都相同的多維度數(shù)據(jù),如果是,則刪除與任一個多維度數(shù)據(jù)相同的多維度數(shù)據(jù)。應(yīng)用本申請實施例提供的多維度數(shù)據(jù)去重方法,可以一次對多維度數(shù)據(jù)進(jìn)行劃分,從而減少了劃分次數(shù),減少對網(wǎng)絡(luò)日志文件中所有維度的多維度數(shù)據(jù)的掃描時間,進(jìn)一步在去重整體過程中,減少了多維度數(shù)據(jù)的去重時間,提高了去重效率。
文檔編號G06F17/30GK103036697SQ20111030184
公開日2013年4月10日 申請日期2011年10月8日 優(yōu)先權(quán)日2011年10月8日
發(fā)明者呂春建 申請人:阿里巴巴集團控股有限公司