亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種基于網(wǎng)絡數(shù)據(jù)的通用查詢系統(tǒng)及查詢方法

文檔序號:9754311閱讀:1779來源:國知局
一種基于網(wǎng)絡數(shù)據(jù)的通用查詢系統(tǒng)及查詢方法
【技術領域】
[0001]本發(fā)明涉及一種基于網(wǎng)絡數(shù)據(jù)的通用查詢系統(tǒng)及查詢方法,特別是涉及一種適用于提供海量網(wǎng)絡數(shù)據(jù)查詢服務和檢索服務的,基于網(wǎng)絡數(shù)據(jù)的通用查詢系統(tǒng)及查詢方法。
【背景技術】
[0002]網(wǎng)絡流量分析系統(tǒng)主要針對的是海量的數(shù)據(jù),其步驟是采集,分析,存儲。能夠準確,快速的從海量的存儲中檢索數(shù)據(jù),并能夠快速的將數(shù)據(jù)返回給查詢終端,是系統(tǒng)的核心功能。
[0003]傳統(tǒng)的分析方法主要通過數(shù)據(jù)庫進行數(shù)據(jù)存儲,查詢模塊采用結構化語言進行查詢。其存儲效率低,查詢速度慢,且系統(tǒng)支持的網(wǎng)絡流量也十分偏低,系統(tǒng)瓶頸十分明顯。
[0004]傳統(tǒng)的數(shù)據(jù)采集系統(tǒng),采用客戶端+服務器的模式。數(shù)據(jù)庫采用單服務器或集群模式。服務器采用數(shù)據(jù)庫進行存儲,查詢采用結構化語言進行查詢。查詢模塊通過在數(shù)據(jù)庫生成若干個表和表字段,根據(jù)分析的網(wǎng)絡流量,將最新的統(tǒng)計數(shù)據(jù)更新到數(shù)據(jù)庫中。如果需要保存歷史數(shù)據(jù),隨著分析的時間越來越長,數(shù)據(jù)表的記錄會呈現(xiàn)指數(shù)級的增長。
[0005]傳統(tǒng)的數(shù)據(jù)采集系統(tǒng),查詢歷史數(shù)據(jù)需要存儲歷史數(shù)據(jù),存儲歷史數(shù)據(jù)需要保存每秒的統(tǒng)計數(shù)據(jù),這樣,分析的時間越久,表的記錄越多。假如系統(tǒng)每秒能夠分析20萬條會話,那么一天的記錄將達到17.28億條,一周的記錄將達到120.96億條,時間越長,記錄越大,且記錄數(shù)更是一個天文數(shù)字。這對于無論是關系數(shù)據(jù)庫還是非關系數(shù)據(jù)庫都是難以完成的任務。
[0006]傳統(tǒng)的數(shù)據(jù)采集系統(tǒng),數(shù)據(jù)庫的成本非常昂貴,抬高了整個系統(tǒng)的成本,同時,分析服務器和數(shù)據(jù)庫之間的帶寬成為系統(tǒng)的主要瓶頸;并且,只能查詢到最新的統(tǒng)計數(shù)據(jù),不能查看歷史的統(tǒng)計數(shù)據(jù),即使支持查詢歷史,也會導致在分析時間,分析流量的等級上會大幅度下降。

【發(fā)明內(nèi)容】

[0007]本發(fā)明要解決的技術問題是提供一種采集,分析,存儲海量數(shù)據(jù),針對多個查詢終端的數(shù)據(jù)查詢或檢索請求,系統(tǒng)能夠快速,準確,均衡的將數(shù)據(jù)返回給查詢終端想要檢索的數(shù)據(jù)的,基于網(wǎng)絡數(shù)據(jù)的通用查詢系統(tǒng)及查詢方法。
[0008]本發(fā)明采用的技術方案如下:一種基于網(wǎng)絡數(shù)據(jù)的通用查詢系統(tǒng),其特征在于:包括分析服務器;所述分析服務器包括,
采集網(wǎng)絡所有出口數(shù)據(jù)的數(shù)據(jù)流采集模塊;
對數(shù)據(jù)包進行分析的分析模塊;
對分析后的數(shù)據(jù)包進行存儲的存儲模塊;
對存儲的數(shù)據(jù)包進行查詢的查詢模塊。
[0009]數(shù)據(jù)流是指滿足某一特征的一組數(shù)據(jù)包(比如數(shù)據(jù)包的源IP地址和目的IP地址分別是A和B,那么所有具有該特征的數(shù)據(jù)包叫做數(shù)據(jù)流,也叫IP會話流)。
[0010]原始數(shù)據(jù)包是二進制數(shù)據(jù),識別就是按照OSI七層協(xié)議模型來解釋數(shù)據(jù)包的二進制數(shù)據(jù)。比如一個TCP數(shù)據(jù)包,從物理層,數(shù)據(jù)鏈路層,網(wǎng)絡層到傳輸層,依次識別其二進制數(shù)據(jù)為其對應的協(xié)議和字段,并將協(xié)議和字段保存到識別結果中。識別是分析的基礎,識別后,知道每個數(shù)據(jù)包屬于什么協(xié)議。分析時,根據(jù)協(xié)議來進行數(shù)據(jù)統(tǒng)計。
[0011]統(tǒng)計數(shù)據(jù)是指在某個時間范圍內(nèi),針對數(shù)據(jù)流的一些字段(總數(shù)據(jù)包數(shù),總字節(jié)數(shù))進行統(tǒng)計。
[0012]所述數(shù)據(jù)包分析模塊,包括,
數(shù)據(jù)包識別模塊,識別數(shù)據(jù)包二進制數(shù)據(jù)所對應的協(xié)議和字段作為識別結果;
分析線程池調(diào)度模塊,調(diào)度一個分析線程對所述識別結果和原始數(shù)據(jù)包進行分析; 數(shù)據(jù)分析模塊,將數(shù)據(jù)包按照不同的協(xié)議進行數(shù)據(jù)包統(tǒng)計。
[0013]數(shù)據(jù)分析主要是將數(shù)據(jù)按不同的協(xié)議進行數(shù)據(jù)統(tǒng)計,比如:IP協(xié)議統(tǒng)計總字節(jié)數(shù),TCP協(xié)議統(tǒng)計重傳次數(shù)。
[0014]所述數(shù)據(jù)包分析模塊還包括數(shù)據(jù)包緩存模塊,用于存放數(shù)據(jù)包識別后的識別結果和原始數(shù)據(jù)包;
跨秒檢測模塊,檢查數(shù)據(jù)包收集一旦跨秒,則提交當前緩存數(shù)據(jù)到分析線程池。
[0015]數(shù)據(jù)包的時間戳精度為納秒,每收集完I秒的數(shù)據(jù)包,就進行后面的分析流程,2015/11/25 23:05:01:999999999 到 2015/11/25 23:05:02:111111111 便是跨秒。
[0016]所述存儲模塊包括,
合并線程模塊,根據(jù)所要查詢的數(shù)據(jù)的時間范圍,確定所要用的時間桶和時間桶的個數(shù);
時間桶間隔時間判斷模塊,計算當前時間是否滿足各個時間桶的時間間隔;
時間桶合并模塊,將滿足各個時間桶時間間隔的對應的時間桶進行合并;
數(shù)據(jù)壓縮存儲模塊,合并線程在合并完成后,將合并結果提交給存儲線程,存儲線程將數(shù)據(jù)壓縮后寫入磁盤。
[0017]所述查詢模塊包括,
查詢監(jiān)聽模塊,監(jiān)聽客戶端的查詢請求;
查詢線程啟動模塊,啟動查詢線程開始查詢流程;
查詢時間校正模塊,對查詢時間進行校正,計算要查詢的時間桶和時間桶的點數(shù); 查詢條件設置模塊,設置要用于檢索數(shù)據(jù)的查詢條件;
記錄合并模塊,將查詢到的各個時間桶的點多數(shù)據(jù)進行合并;
查詢數(shù)據(jù)返回模塊,將查詢到的數(shù)據(jù)返回給客戶端。
[0018]所述查詢模塊還包括壓縮模塊,對查詢到的數(shù)據(jù)進行壓縮后返回給客戶端。
[0019]所述查詢線程啟動模塊有兩個以上的查詢線程與兩個以上的查詢客戶端一一對應。
[0020]一種基于網(wǎng)絡數(shù)據(jù)的通用查詢方法,具體方法步驟為:
一、采集網(wǎng)絡所有出口數(shù)據(jù)的數(shù)據(jù)流(如網(wǎng)絡中出口交換機的數(shù)據(jù)流);
二、對數(shù)據(jù)包進行分析;
三、對分析后的數(shù)據(jù)包進行存儲;
四、對存儲的數(shù)據(jù)包進行查詢。[0021 ]其中,所述步驟二的具體方法步驟為:
2.1、識別數(shù)據(jù)包二進制數(shù)據(jù)所對應的協(xié)議和字段作為識別結果;
2.2、調(diào)度一個分析線程對所述識別結果和原始數(shù)據(jù)包進行分析;
2.3、將數(shù)據(jù)包按照不同的協(xié)議進行數(shù)據(jù)包統(tǒng)計。
[0022]所述步驟2.1和步驟2.2之間的步驟還包括,將數(shù)據(jù)包識別后的識別結果和原始數(shù)據(jù)包存入數(shù)據(jù)包緩存中;檢查數(shù)據(jù)包收集一旦跨秒,則提交當前緩存數(shù)據(jù)到分析線程池。
[0023]所述步驟三的具體方法步驟為:
3.1、合并線程,根據(jù)所要查詢的數(shù)據(jù)的時間范圍,確定所要用的時間桶和時間桶的個數(shù);
3.2、計算當前時間是否滿足各個時間桶的時間間隔,是則進入下一步,否則繼續(xù)等待;
3.3、將滿足各個時間桶時間間隔的對應的時間桶進行合并;
3.4、合并線程在合并完成后,將合并結果提交給存儲線程,存儲線程將數(shù)據(jù)壓縮后寫入磁盤。
[0024]如果查詢I天的數(shù)據(jù),查詢I秒桶,需要查詢3600*24個點(I個點為I秒)的數(shù)據(jù);如果查詢I小時桶,需要查詢24個點的數(shù)據(jù)(I個點I小時),這就是合并的意義:快速提高查詢效率。合并線程通過計算當前時間是否滿足各個桶的間隔時間(比如:從2015/11/25 00:00:00開始,00:00:10時,合并第一個10秒點,00:00: 20時,合并第二個10秒點,其余類似,00:01:00時,合并第一個I分鐘點,00:10:00時,合并第一個10分鐘點,01:00:00時,合并第一個I小時點,2015/11/26 00:00:00時,合并第一個I天點),若滿足,則合并對應桶。一共6個時間桶(時間間隔:I秒,10秒,I分,10分,I小時,I天)。
[0025]所述步驟四的具體方法步驟包括:
4.1、監(jiān)聽客戶端的查詢請求,判斷是否有查詢請求,是則進入下一步,否則繼續(xù)監(jiān)聽;
4.2、啟動并分配查詢線程開始查詢流程;
4.3、結合服務器最新分析時間和最早分析時間,對查詢時間進行校正,計算要查詢的時間桶和時間桶的點數(shù);
4.4、根據(jù)檢索數(shù)據(jù)過濾條件,找出所有請求字段的依賴字段,并將請求字段和依賴字段作為要查詢的字段;
4.5、將校正后的查詢時間、要查詢的時間桶、要查詢的時間桶的點數(shù)和查詢的字段傳給存儲模塊;
4.6、存儲模塊每讀完一個點的數(shù)據(jù),就回調(diào)給查詢模塊的數(shù)據(jù)解析函數(shù),根據(jù)過濾條件中的鍵值字段進行第一次過濾;
4.7、將查詢到的時間桶的多個點的數(shù)據(jù)進行合并;
4.8、根據(jù)過濾條件中的非鍵值字段進行二次過濾;
4.9、將查詢到的數(shù)據(jù)進行壓縮后返回給客戶端。
[0026]回溯分析服務器監(jiān)聽到客戶端的查詢請求,線程池啟動新查詢線程開始查詢流程;校正查詢時間,計算要查詢的桶和查詢的點數(shù)(共6個時間桶,I秒,10秒,I分,10分,I小時,I天,表示每個點的時間單位);根據(jù)查詢的開始時間和結束時間(該開始時間和結束時間是查詢請求終端傳給服務器的參數(shù),然后結合服務器分析最新時間和服務器最早分析時間,來校正查詢時間:max(開始時間,服務器最早分析時間,min(結束時間,服務器最新分析時間))),計算需要查詢桶的組合,比如需要查詢70分鐘數(shù)據(jù),需要查詢一個小時桶加上一個10分鐘桶。
[0027]針對過濾條件,解析出請求的字段;根據(jù)請求的字段,找出所有字段的依賴字段(在查詢該字段時,需要先查詢出的字段。比如:每秒字節(jié)數(shù)的依賴字段是總字節(jié)數(shù),因為每秒字節(jié)數(shù)=總字節(jié)數(shù)/查詢時間段),并將兩者(請求字段,依賴字段)作為要查詢的字段;
過濾條件(其作用主要用于檢索數(shù)據(jù),比如:我想查詢一個時間段總字節(jié)數(shù)大于100字節(jié)的數(shù)據(jù),這時就需要過濾器。過濾器是基于字段的。系統(tǒng)內(nèi)部內(nèi)置了大量字段,過濾器將字段用&&,I I,and,o
當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1