一種基于大數(shù)據(jù)量的五元組查詢方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)查詢技術(shù)領(lǐng)域,具體是一種基于大數(shù)據(jù)量的五元組查詢方法及裝置,此方法及裝置可有效提高查詢效率,降低系統(tǒng)開銷。
【背景技術(shù)】
[0002]五元組,通常是指源IP地址,源端口,目的IP地址,目的端口和傳輸層協(xié)議,五元組能夠區(qū)分不同會(huì)話,并且對(duì)應(yīng)的會(huì)話是唯一的。例如:192.168.1.1 10000 TCP121.14.88.76 80就構(gòu)成了一個(gè)五元組。其含義是,一個(gè)IP地址為192.168.1.1的終端通過端口 10000,利用TCP協(xié)議,和IP地址為121.14.88.76,端口為80的終端進(jìn)行通信連接。在進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)分析時(shí),通常需要對(duì)一個(gè)出入口的數(shù)據(jù)做記錄檢索,但目前的互聯(lián)網(wǎng)數(shù)據(jù)通常都是TB或者PB以上級(jí)別,其中l(wèi)PB(Petabyte千萬億字節(jié)拍字節(jié)) = 1024TB。如此大的數(shù)據(jù)量要實(shí)現(xiàn)五元組信息的查詢需要的時(shí)間較長,比如萬兆網(wǎng)1分鐘滿度網(wǎng)絡(luò)數(shù)據(jù)大概有70G,以目前的查詢方法進(jìn)行查詢,查詢一分鐘的數(shù)據(jù)10個(gè)線程需要10秒鐘左右,這樣的數(shù)據(jù)響應(yīng)速度難以滿足用戶的需要。
【發(fā)明內(nèi)容】
[0003]針對(duì)現(xiàn)有技術(shù)中的五元組查詢方法存在查詢效率低的技術(shù)問題,本發(fā)明公開了一種基于大數(shù)據(jù)量的五元組查詢方法,本發(fā)明還公開了基于大數(shù)據(jù)量的五元組查詢裝置。
[0004]本發(fā)明的技術(shù)方案如下:
本發(fā)明公開了一種基于大數(shù)據(jù)量的五元組查詢方法,其具體包括以下的步驟:步驟一、以時(shí)間為刻度,建立天時(shí)分的五元組索引;步驟二、輸入需要查詢的五元組,將該五元組與步驟一中建立的五元組索引進(jìn)行匹配,輸出匹配成功的所有時(shí)間區(qū)間;步驟三、在步驟二輸出的時(shí)間區(qū)間內(nèi)查詢五元組,從而得到最終的查詢結(jié)果。先查詢索引,只在符合條件的時(shí)間區(qū)間內(nèi)進(jìn)行五元組查詢,提高了查詢效率。
[0005]更進(jìn)一步地,上述建立五元組索引的過程具體為:在時(shí)間區(qū)間內(nèi)根據(jù)五元組信息內(nèi)容進(jìn)行信息占位,將其對(duì)應(yīng)位置1來表示此數(shù)字出現(xiàn)過。采用對(duì)應(yīng)位置1的方式進(jìn)行信息占位,便于實(shí)現(xiàn)且便于提高查詢效率。
[0006]更進(jìn)一步地,上述建立五元組索引的過程具體包括以下的步驟:步驟S1、將時(shí)間劃分為時(shí)間區(qū)間,每個(gè)時(shí)間區(qū)間內(nèi)自定義8個(gè)256位的變量,其中4個(gè)256位的變量分別對(duì)應(yīng)表示五元組中IP地址的4段,2個(gè)256位的變量表示端口,2個(gè)256位的變量表示通信協(xié)議;步驟S2、當(dāng)該時(shí)間區(qū)間內(nèi)的IP地址、端口或者通信協(xié)議中某一個(gè)值出現(xiàn)時(shí),將其對(duì)應(yīng)的256位的變量的對(duì)應(yīng)位置1,其余位不變。當(dāng)然,如果要區(qū)分源和目的地址的時(shí)候就需要再多用6個(gè)256位的變量進(jìn)行表示,這里的方式是不區(qū)分。
[0007]更進(jìn)一步地,上述劃分時(shí)間區(qū)間的依據(jù)為會(huì)話時(shí)間戳,一年的時(shí)間最小劃分為每10秒為一個(gè)時(shí)間區(qū)間。一般來講,一年的時(shí)間區(qū)間到最小10秒的話則大概有如此多個(gè)區(qū)間:366*10105*256(1天=24小時(shí)=24*60分=24*60*6個(gè)10秒《 10105個(gè)區(qū)間)大概900M左右的數(shù)據(jù),在數(shù)據(jù)重疊不明顯(即離散率較高的情況),加速效果尤為明顯。
[0008]更進(jìn)一步地,上述方法還包括把256位的變量分為4個(gè)64位的數(shù)組進(jìn)行表示。便于在64位機(jī)上實(shí)現(xiàn)。
[0009]更進(jìn)一步地,上述把256位的變量X分為4個(gè)64位的數(shù)組進(jìn)行表示的過程具體如下:將X除以64后得到的整數(shù)表示第幾個(gè)64位的數(shù)組,余數(shù)表示對(duì)應(yīng)數(shù)組的第幾位置1,其余位置不變。該方法使得實(shí)現(xiàn)快速置1,實(shí)現(xiàn)高效的信息占位。
[0010]更進(jìn)一步地,上述方法還包括依照時(shí)間順序?qū)⒕W(wǎng)絡(luò)數(shù)據(jù)進(jìn)行存儲(chǔ),依照時(shí)間進(jìn)行存儲(chǔ),便于后續(xù)查詢,提高查詢效率。
[0011 ] 更進(jìn)一步地,上述方法還包括將五元組索引進(jìn)行序列化后進(jìn)行存儲(chǔ)。
[0012]本發(fā)明還公開了一種基于大數(shù)據(jù)量的五元組查詢裝置,其具體包括五元組索引建立單元、五元組匹配單元和五元組查詢單元,所述五元組索引建立單元用于以時(shí)間為刻度,建立天時(shí)分的五元組索引;所述五元組匹配單元用于將待查詢的五元組信息與五元組索引進(jìn)行匹配,輸出匹配成功的所有時(shí)間區(qū)間;所述五元組查詢單元用于在匹配成功的時(shí)間區(qū)間內(nèi)的查詢五元組信息,從而得到最終的輸出結(jié)構(gòu)。
[0013]更進(jìn)一步地,上述五元組索引建立單元還包括時(shí)間區(qū)間劃分單元、變量設(shè)置單元、五元組信息獲取單元和變量改變單元;所述時(shí)間區(qū)間劃分單元用于將時(shí)間劃分為多個(gè)時(shí)間區(qū)間;所述變量設(shè)置單元用于在每個(gè)時(shí)間區(qū)間內(nèi)自定義8個(gè)256位的變量,其中4個(gè)256位的變量分別對(duì)應(yīng)表示五元組中IP地址的4段,2個(gè)256位的變量表示端口,2個(gè)256位的變量表示通信協(xié)議;所述五元組信息獲取單元用于獲取該時(shí)間區(qū)間內(nèi)的IP地址、端口和通信協(xié)議的值;所述變量改變單元用于將其對(duì)應(yīng)的256位的變量的對(duì)應(yīng)位置1。
[0014]通過采用以上的技術(shù)方案,本發(fā)明的有益效果為:通過設(shè)置五元組索引建立單元、五元組匹配單元,使得首先將待查詢的五元組數(shù)據(jù)與五元組索引進(jìn)行匹配,只剩下包括這些待查詢的五元組信息的時(shí)間區(qū)間,從而一次性縮小了查詢的范圍,提高了查詢的效率。采用本發(fā)明的方法使得查詢效率至少能提高10倍,具體倍數(shù)與五元組數(shù)據(jù)的離散率相關(guān),一般來講,原數(shù)據(jù)的離散率越高則效果越好。
【具體實(shí)施方式】
[0015]下面結(jié)合實(shí)施例,詳細(xì)說明本發(fā)明的【具體實(shí)施方式】。
[0016]本發(fā)明公開了一種基于大數(shù)據(jù)量的五元組查詢方法,其具體包括以下的步驟:步驟一、依照時(shí)間順序?qū)⒕W(wǎng)絡(luò)數(shù)據(jù)進(jìn)行存儲(chǔ),然后以一年為刻度,建立天時(shí)分的五元組索引,并將該五元組索引進(jìn)行序列化后存儲(chǔ)到硬盤;步驟二、輸入需要查詢的五元組,將該五元組與步驟一中建立的五元組索引進(jìn)行匹配,輸出匹配成功的所有時(shí)間區(qū)間;步驟三、在步驟二輸出的時(shí)間區(qū)間內(nèi)查詢五元組,從而得到最終的查詢結(jié)果。其中,序列化是指將對(duì)象的狀態(tài)信息轉(zhuǎn)換為可以存儲(chǔ)或傳輸?shù)男问降倪^程。在序列化期間,對(duì)象將其當(dāng)前狀態(tài)寫入到臨時(shí)或持久性存儲(chǔ)區(qū)。以后,可以通過從存儲(chǔ)區(qū)中讀取或反序列化對(duì)象的狀態(tài),重新創(chuàng)建該對(duì)象。本發(fā)明的方法通過將時(shí)間進(jìn)行區(qū)間劃分(比如一天的時(shí)間區(qū)間為00點(diǎn)到23點(diǎn)59分59秒,一個(gè)小時(shí)的時(shí)間區(qū)間為某點(diǎn)0分0秒到其59分59秒,比如12點(diǎn)0分0秒到12點(diǎn)59分59秒),確定好時(shí)間區(qū)間后,將此時(shí)間段的五元組信息抽取到索引上面。具體如下:IP信息分為4個(gè)段,均是0到255的值,那么我們定義一個(gè)256位的變量,當(dāng)IP地址中的某一段自然數(shù)為5時(shí),則在此變量第5位占1,表示這個(gè)時(shí)間段的此段出現(xiàn)過5;其他段以及端口和協(xié)議均可以用這種方式建立一個(gè)壓縮后的索引(不壓縮的索引數(shù)據(jù)將會(huì)海量,檢索索引的時(shí)間消耗都不低,與初衷不符)。利用這樣的方法就建立了時(shí)間與五元組信息的關(guān)系。通過這樣的方法進(jìn)行匹配查詢,縮小時(shí)間范圍,提高查詢效率。通過對(duì)IP會(huì)話等做分析,發(fā)現(xiàn)IP等五元組信息的在時(shí)間段的分布是有限且分散的,那么對(duì)IP等信息進(jìn)行檢索歸類則越發(fā)重要,而本發(fā)明要闡述的則是在索引時(shí)針對(duì)大數(shù)據(jù)的五元組信息建立索引,同時(shí)非具體索引,而是一個(gè)有損壓縮的索引。此發(fā)明的方法能大幅度提高查詢速度,亦能盡可能節(jié)省索引數(shù)據(jù)的存儲(chǔ)