一種通用網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)查詢方法及系統(tǒng)的制作方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及數(shù)據(jù)查詢
技術(shù)領(lǐng)域:
,具體是一種通用網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)查詢方法及系統(tǒng),此方法及系統(tǒng)可在任意時間段查詢?nèi)我饨Y(jié)構(gòu)體的網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)?!?br>背景技術(shù):
】[0002]網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)是網(wǎng)絡(luò)分析的主要依據(jù),網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)主要包括網(wǎng)絡(luò)應(yīng)用、ip地址、物理地址、ip會話、tcp會話、Udp會話、網(wǎng)段等等。針對這些不同類型的網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù),一般采用不同的結(jié)構(gòu)體進(jìn)行存儲。現(xiàn)有技術(shù)中針對不同的結(jié)構(gòu)體需要采用不同的查詢方式,導(dǎo)致每次只能查詢一種類型的網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù),很顯然難以滿足用戶的需要。[0003]CN201310075693.6公開了一種結(jié)構(gòu)體定義和結(jié)構(gòu)輸出的方法及裝置,本發(fā)明涉及自動代碼生成技術(shù)。本發(fā)明根據(jù)使用者需求在Excel模板文件中配置用戶自定義結(jié)構(gòu)的各種屬性,產(chǎn)生出一個完整的結(jié)構(gòu)體描述配置文件;從所述配置文件中分析提取出結(jié)構(gòu)體之間的嵌套和復(fù)用關(guān)系,將結(jié)構(gòu)體屬性,結(jié)構(gòu)體之間的關(guān)系相結(jié)合,生成結(jié)構(gòu)體配置的配置數(shù)據(jù)存儲單元;遍歷所述配置數(shù)據(jù)存儲單元中結(jié)構(gòu)體屬性表,找到每個結(jié)構(gòu)體屬性,按照程序語言規(guī)范產(chǎn)生出結(jié)構(gòu)體定義文件,根據(jù)數(shù)據(jù)存儲單元存儲的結(jié)構(gòu)體之間的關(guān)系,通過迭代方法生成結(jié)構(gòu)體結(jié)構(gòu)內(nèi)容打印文件。本發(fā)明同時公開了一種實(shí)施上述方法的裝置,應(yīng)用該方法和裝置極大的提高了在過程控制系統(tǒng)開發(fā)中用戶自定義結(jié)構(gòu)體定義和維護(hù)的效率。從上述的描述可以看出,每一種結(jié)構(gòu)體的屬性是不相同,現(xiàn)有技術(shù)中沒有一種通用的方法,使得可以查詢到通用網(wǎng)絡(luò)中任意時間段的所有網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)。【
發(fā)明內(nèi)容】[0004]針對現(xiàn)有技術(shù)中沒有一種通用的方法,使得可以查詢到通用網(wǎng)絡(luò)中任意時間段的所有網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)的技術(shù)問題,本發(fā)明公開了一種通用網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)查詢方法及系統(tǒng)。[0005]本發(fā)明的技術(shù)方案如下:一種通用網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)查詢方法,其具體包括以下的步驟:步驟一、獲取網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù),將不同類型的網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)采用不同的結(jié)構(gòu)體進(jìn)行存儲;步驟二、將每種類型的結(jié)構(gòu)體都抽象成查詢表,不同類型的網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)對應(yīng)一張查詢表,查詢表包括表id和表字段,每個表字段對應(yīng)一個結(jié)構(gòu)體成員;步驟三、根據(jù)需要,發(fā)送查詢命令給查詢表,并接收查詢表的查詢結(jié)果,最后將查詢結(jié)果進(jìn)行顯示。通過將每種類型的結(jié)構(gòu)體都抽象成查詢表,在查詢表中進(jìn)行查詢,使得查詢解析接口統(tǒng)一,查詢過程與具體統(tǒng)計(jì)數(shù)據(jù)類型無關(guān),支持任意時間段統(tǒng)計(jì)數(shù)據(jù)查詢。[0006]更進(jìn)一步地,上述方法還包括在查詢過程中設(shè)置查詢關(guān)鍵字字段。通過指定關(guān)鍵字字段,即使查詢同一張查詢表也可以返回不同的結(jié)果記錄集,但是存儲的只有一份數(shù)據(jù),避免了傳統(tǒng)方式中,不同的關(guān)鍵字需要對應(yīng)不同的二維表。[0007]更進(jìn)一步地,上述步驟三中的查詢結(jié)果為二進(jìn)制數(shù)據(jù),根據(jù)查詢的字段將二進(jìn)制數(shù)據(jù)分隔為一條一條的記錄,然后顯示。采用二進(jìn)制數(shù)據(jù)的方式在網(wǎng)絡(luò)分析領(lǐng)域解決了對分析結(jié)果結(jié)構(gòu)體的依賴。[0008]更進(jìn)一步地,上述方法還包括將查詢結(jié)果進(jìn)行排序。從而方便用戶查看。[0009]本發(fā)明還公開了一種通用網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)查詢系統(tǒng),其具體包括:網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)獲取單元、數(shù)據(jù)存儲單元、結(jié)構(gòu)體抽象單元、查詢單元和顯示單元;所述網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)獲取單元用于獲取網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù),將不同類型的網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)采用不同的結(jié)構(gòu)體進(jìn)行存儲;所述結(jié)構(gòu)體抽象單元用于將每種類型的結(jié)構(gòu)體都抽象成查詢表,不同類型的網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)對應(yīng)一張查詢表,查詢表包括表ID和表字段,每個表字段指定數(shù)據(jù)長度,表字段有一個數(shù)據(jù)長度,不是無法分析二進(jìn)制數(shù)據(jù)多長屬于這個字段的,每個表字段對應(yīng)一個結(jié)構(gòu)體成員;所述查詢單元用于根據(jù)查詢命令在查詢表中進(jìn)行查詢,并將查詢結(jié)果發(fā)送給顯示單元進(jìn)行顯示。通過將每種類型的結(jié)構(gòu)體都抽象成一張查詢表,在查詢表中進(jìn)行數(shù)據(jù)的查詢,使得查詢解析接口統(tǒng)一,查詢過程與具體統(tǒng)計(jì)數(shù)據(jù)類型無關(guān),可以支持任意時間段統(tǒng)計(jì)數(shù)據(jù)查詢。[0010]更進(jìn)一步地,上述系統(tǒng)還包括查詢關(guān)鍵字字段設(shè)置單元,將查詢表中的其中一個或者多個字段設(shè)置為關(guān)鍵字字段。通過指定關(guān)鍵字字段,即使查詢同一張查詢表也可以返回不同的結(jié)果記錄集,但是存儲的只有一份數(shù)據(jù),避免了傳統(tǒng)方式中,不同的關(guān)鍵字需要對應(yīng)不同的二維表。[0011]更進(jìn)一步地,上述系統(tǒng)還包括數(shù)據(jù)分隔單元,所述數(shù)據(jù)分隔單元用于將二進(jìn)制的查詢結(jié)果分隔為一條一條的記錄,然后顯示。采用二進(jìn)制數(shù)據(jù)并分割的方式在網(wǎng)絡(luò)分析領(lǐng)域解決了對分析結(jié)果結(jié)構(gòu)體的依賴。[0012]更進(jìn)一步地,上述系統(tǒng)還包括排序單元,所述排序單元用于將查詢結(jié)果進(jìn)行排序,方便用戶查看。所述排序是對查詢字段中某一個指定字段進(jìn)行升序或者降序排序。[0013]通過采用以上的技術(shù)方案,本發(fā)明的有益效果為:可以通過任意時間段查詢網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù),查詢不同類型的網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)查詢接口統(tǒng)一,解析數(shù)據(jù)接口統(tǒng)一,查詢與具體的統(tǒng)計(jì)數(shù)據(jù)結(jié)構(gòu)無關(guān),從而方便用戶使用?!揪唧w實(shí)施方式】[0014]下面結(jié)合實(shí)施例,詳細(xì)說明本發(fā)明的【具體實(shí)施方式】。[0015]本發(fā)明公開了一種通用網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)查詢方法,其具體包括以下的步驟:步驟一、獲取網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù),將不同類型的網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)采用不同的結(jié)構(gòu)體進(jìn)行存儲;步驟二、將每種類型的結(jié)構(gòu)體都抽象成查詢表;比如,tcp會話統(tǒng)計(jì)數(shù)據(jù)I,定義存儲結(jié)構(gòu)體。如:tcp會話的結(jié)構(gòu)體structtcp—flow—record{uint32_tsrc_ip_addr;//在結(jié)構(gòu)體中偏移0uintl6_tsrc—port;//在結(jié)構(gòu)體中偏移4uint32_tdst—ip—addr;//在結(jié)構(gòu)體中偏移6uintl6_tdst—port;//在結(jié)構(gòu)體中偏移10uint64_ttotal—byte;//在結(jié)構(gòu)體中偏移12uint64_ttotal—packet;//在結(jié)構(gòu)體中偏移20}2,定義查詢表,關(guān)聯(lián)字段與結(jié)構(gòu)體成員。如..tcp會話查詢表表id:tcp_flow—table,表字段:src_ip_addr,src_port,dst_ip—addr,dst_port,total_byte,total_packet表定義:CTCPF1wTabIe(tcp_f1w_tabIe){AddFieId(src_ip_addr,tcp_flow_record,0)AddField(src_port,tcp_flow_record,4)AddField(dst_ip_addr,tcp_flow_record,6)AddField(dst_port,tcp_flow_record,10)AddField(total_byte,tcp_flow_record,12)AddField(total_packet,tcp_flow_record,20)}同類型的網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)各自對應(yīng)一張查詢表,查詢表包括表id、表字段等,每個表字段通過偏移關(guān)聯(lián)對應(yīng)一個結(jié)構(gòu)體成員;步驟三、根據(jù)需要,發(fā)送查詢命令給查詢表,并接收查詢表的查詢結(jié)果,最后將查詢結(jié)果進(jìn)行顯示。通過將每種類型的結(jié)構(gòu)體都抽象成查詢表,在查詢表中進(jìn)行查詢,使得查詢解析接口統(tǒng)一,查詢過程與具體統(tǒng)計(jì)數(shù)據(jù)類型無關(guān)當(dāng)前第1頁1 2