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