本發(fā)明涉及網(wǎng)絡安全領域,具體而言,涉及一種會話分割方法及裝置。
背景技術:
::目前針對數(shù)據(jù)流的會話分割,例如http流量數(shù)據(jù),目前主要有兩種實現(xiàn)方法:其中,一種方法是使用多次sql查詢和中間表存儲的方法來實現(xiàn)會話分割的能力;另一種方法是使用sqludf函數(shù)編程來實現(xiàn),無論哪種方法,在工程師的開發(fā)量、運行效率以及后期代碼的維護成本上都是不太高效的方法,具體存在以下問題:(1)無論是多次sql查詢和中間表存儲還是sqludf函數(shù)編程,都需要開發(fā)比較多的代碼,udf函數(shù)更是需要使用sql或者非sql程序語言如python等進行函數(shù)開發(fā)。(2)運行效率不高,多次sql查詢和中間表存儲方法需要查詢多次,另外用戶自定義udf函數(shù)的方法,因為函數(shù)是用戶自定義函數(shù),所以在性能調(diào)優(yōu)上很難做到最優(yōu),直接影響整體sql查詢的執(zhí)行效率。(3)代碼后期的維護工作量大,兩種方法都需要編寫比較多的代碼,所以后期維護成本比較高。針對上述的問題,目前尚未提出有效的解決方案。技術實現(xiàn)要素:根據(jù)本申請實施例的一個方面,提供了一種會話分割方法,包括:獲取客戶端設備和服務器之間的網(wǎng)絡流量;對所述網(wǎng)絡流量按照以下信息進行分組,得到數(shù)據(jù)分組:所述客戶端設備的ip地址和所述客戶端設備所訪問的所述服務器的服務器標識;其中,每個數(shù)據(jù)分組內(nèi)的各個數(shù)據(jù)記錄具有不同的訪問時間;將從每個所述數(shù)據(jù)分組中選擇的兩個數(shù)據(jù)記錄的訪問時間進行取差運算,得到差值;并在所述差值大于預設閾值時,將所述兩個數(shù)據(jù)記錄的訪問時間作為一個會話的起始時間和結束時間。根據(jù)本申請實施例的另一方面,還提供了一種會話分割裝置,包括:獲取模塊,用于獲取客戶端設備和服務器之間的網(wǎng)絡流量;分組模塊,用于對所述網(wǎng)絡流量按照以下信息進行分組,得到數(shù)據(jù)分組:所述客戶端設備的ip地址和所述客戶端設備所訪 問的所述服務器的服務器標識;其中,每個數(shù)據(jù)分組內(nèi)的各個數(shù)據(jù)記錄具有不同的訪問時間;分割模塊,用于將從每個所述數(shù)據(jù)記錄列表中選擇的兩個數(shù)據(jù)記錄的訪問時間進行取差運算,得到差值;并在所述差值大于預設閾值時,將所述兩個數(shù)據(jù)記錄的訪問時間作為一個會話的起始時間和結束時間。在本申請實施例中,采用按照客戶端設備的ip地址和服務器標識對接收的數(shù)據(jù)流進行分組,并將每個數(shù)據(jù)分組內(nèi)兩個數(shù)據(jù)記錄之間的訪問時間之差與預設閾值進行比較,在得到的差值大于預設閾值時,將該兩個數(shù)據(jù)記錄的訪問時間作為一個會話的開始時間和結束時間,以實現(xiàn)對會話的分割,因此可以利用已有的分析函數(shù)來實現(xiàn),從而減少開發(fā)工作量和維護工作量,并且,由于上述方法主要是利用數(shù)據(jù)記錄的訪問時間差實現(xiàn)會話分割,因此,可以利用相關技術中的已有方式獲取上述訪問時間(例如分析函數(shù)獲取),可以對會話分割過程進行性能優(yōu)化,進而解決了運行效率不高、開發(fā)工作量和維護工作量較大的技術問題。附圖說明此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:圖1是本申請實施例的一種會話分割方法的計算機終端的硬件結構框圖。;圖2是根據(jù)本申請實施例的一種可選的會話分割方法的流程圖;圖3是根據(jù)本申請實施例的一種可選的會話分割原理示意圖;圖4是根據(jù)本申請實施例的另一種可選的會話分割流程示意圖;圖5是根據(jù)本申請實施例的一種可選的會話分割裝置的結構框圖;圖6是根據(jù)本申請實施例的一種可選的計算機終端的結構框圖。具體實施方式為了使本
技術領域:
:的人員更好地理解本發(fā)明方案,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本發(fā)明保護的范圍。需要說明的是,本申請的說明書和權利要求書及上述附圖中的術語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數(shù)據(jù)在適當情況下可以互換,以便這里描述的本申請的實施例能夠以除了在這里圖示或描述的那些以外的順序實施。此外,術語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對于這些過程、方法、產(chǎn)品或設備固有的其它步驟或單元。為便于理解,現(xiàn)將本申請實施例中所涉及到的術語解釋如下:sql:是一種特殊目的的編程語言,是一種數(shù)據(jù)庫查詢和程序設計語言,用于存取數(shù)據(jù)以及查詢、更新和管理關系數(shù)據(jù)庫系統(tǒng);結構化查詢語言是高級的非過程化編程語言,允許用戶在高層數(shù)據(jù)結構上工作。它不要求用戶指定對數(shù)據(jù)的存放方法,也不需要用戶了解具體的數(shù)據(jù)存放方式,所以具有完全不同底層結構的不同數(shù)據(jù)庫系統(tǒng),可以使用相同的結構化查詢語言作為數(shù)據(jù)輸入與管理的接口。結構化查詢語言語句可以嵌套,這使它具有極大的靈活性和強大的功能。結構化查詢語言包含6個部分:一:數(shù)據(jù)查詢語言(dql:dataquerylanguage):其語句,也稱為“數(shù)據(jù)檢索語句”,用以從表中獲得數(shù)據(jù),確定數(shù)據(jù)怎樣在應用程序給出。保留字select是dql(也是所有sql)用得最多的動詞,其他dql常用的保留字有where,orderby,groupby和having。這些dql保留字常與其他類型的sql語句一起使用。二:數(shù)據(jù)操作語言(dml:datamanipulationlanguage):其語句包括動詞insert,update和delete。它們分別用于添加,修改和刪除表中的行。也稱為動作查詢語言。三:事務處理語言(tpl):它的語句能確保被dml語句影響的表的所有行及時得以更新。tpl語句包括begintransaction,commit和rollback。四:數(shù)據(jù)控制語言(dcl):它的語句通過grant或revoke獲得許可,確定單個用戶和用戶組對數(shù)據(jù)庫對象的 訪問。某些rdbms可用grant或revoke控制對表單個列的訪問。五:數(shù)據(jù)定義語言(ddl):其語句包括動詞create和drop。在數(shù)據(jù)庫中創(chuàng)建新表或刪除表(creattable或droptable);為表加入索引等。ddl包括許多與人數(shù)據(jù)庫目錄中獲得數(shù)據(jù)有關的保留字。它也是動作查詢的一部分。六:指針控制語言(ccl):它的語句,像declarecursor,fetchinto和updatewherecurrent用于對一個或多個表單獨行的操作。分析函數(shù):分析函數(shù)用來計算一組行的聚合值,與聚集函數(shù)不同的是分析函數(shù)為每組返回多條記錄。這個由分析函數(shù)定義的行集就叫做窗口。對于每一行而言,在行上的滑動窗口是已定義的,窗口決定了對當前行而言進行計算的行的范圍。窗口的大小則可能基于物理的行數(shù)或者邏輯間隔。普通的聚合函數(shù)用groupby分組,每個分組返回一個統(tǒng)計值,而分析函數(shù)采用partitionby分組,并且每組每行都可以返回一個統(tǒng)計值。開窗函數(shù):開窗函數(shù)就是over([partition_by_clase]order_by_clause)。比如說,我采用sum求和,rank排序等等,但是我根據(jù)什么來呢?over提供一個窗口,可以根據(jù)什么分組,就用partitionby,然后在組內(nèi)根據(jù)什么進行內(nèi)部排序,就用orderby。會話:在多次http連接間維護用戶與同一用戶發(fā)出的不同請求之間關聯(lián)的情況稱為維護一個會話(session)。會話能夠把用戶與同一用戶發(fā)出的不同請求之間關聯(lián)起來。不同用戶的會話應當是相互獨立的。會話一旦建立就應當一直存在,直到用戶空閑時間超過了某一個時間界限,容器才應當釋放該會話資源。在會話的存活期間,用戶可能給服務器發(fā)送了很多請求,該用戶的這些請求信息都可以存儲在會話中。實施例1根據(jù)本申請實施例,還提供了一種會話分割方法的方法實施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。本申請實施例1所提供的方法實施例可以在移動終端、計算機終端或者類似的運算裝置中執(zhí)行。以運行在計算機終端上為例,圖1是本申請實施例的一種會話分割方法的計算機終端的硬件結構框圖。如圖1所示,計算機終端10可以包括一個或多個(圖中僅示出一個)處理器102(處理器102可以包括但不限于微處理器mcu或可編程邏輯器件fpga等的處理裝置)、用于存儲數(shù)據(jù)的存儲器104、以及用于通信功能的傳輸裝置106。本領域普通技術人員可以理解,圖1所示的結構僅為示意,其并不對上述電子裝置的結構造成限定。例如,計算機終端10還可包括比圖1中所示更多或者更少的組件,或者具有與圖1所示不同的配置。存儲器104可用于存儲應用軟件的軟件程序以及模塊,如本申請實施例中的會話分割方法對應的程序指令/模塊,處理器102通過運行存儲在存儲器104內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應用以及數(shù)據(jù)處理,即實現(xiàn)上述的方法。存儲器104可包括高速隨機存儲器,還可包括非易失性存儲器,如一個或者多個磁性存儲裝置、閃存、或者其他非易失性固態(tài)存儲器。在一些實例中,存儲器104可進一步包括相對于處理器102遠程設置的存儲器,這些遠程存儲器可以通過網(wǎng)絡連接至計算機終端10。上述網(wǎng)絡的實例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動通信網(wǎng)及其組合。傳輸裝置106用于經(jīng)由一個網(wǎng)絡接收或者發(fā)送數(shù)據(jù)。上述的網(wǎng)絡具體實例可包括計算機終端10的通信供應商提供的無線網(wǎng)絡。在一個實例中,傳輸裝置106包括一個網(wǎng)絡適配器(networkinterfacecontroller,nic),其可通過基站與其他網(wǎng)絡設備相連從而可與互聯(lián)網(wǎng)進行通訊。在一個實例中,傳輸裝置106可以為射頻(radiofrequency,rf)模塊,其用于通過無線方式與互聯(lián)網(wǎng)進行通訊。在上述運行環(huán)境下,本申請?zhí)峁┝巳鐖D2所示的會話分割方法。圖2是根據(jù)本申請實施例1的會話分割方法的流程圖。如圖2所示,該方法包括:步驟s202,獲取客戶端設備和服務器之間的網(wǎng)絡流量;步驟s204,對所述網(wǎng)絡流量按照以下信息進行分組,得到數(shù)據(jù)分組:上述客戶端設備的ip地址和上述客戶端設備所訪問的上述服務器的服務器標識;其中,每個數(shù)據(jù)分組內(nèi)的各個數(shù)據(jù)記錄具有不同的訪問時間。在本申請的一個可選實施例中,上述服務器又稱為主機(host)。此時,由步驟s202-s204中的特征可以看出,本申請實施例是以host和源ip地址(即客戶端設備的ip地址)為分割維度,對源ip訪問相同主機的流量數(shù)據(jù)進行會話分割,可選地,可以每隔30分鐘設置一個開始時間,結束時間以及會話標識,即將30分鐘作為會話分割的最小時間單元。需要說明的是,步驟s202中的網(wǎng)絡流量可以為超文本傳輸協(xié)議(hypertexttransferprotocol,簡稱為http)數(shù)據(jù)流。此時,接收的數(shù)據(jù)流的數(shù)據(jù)結構如表1所示:表1輸入數(shù)據(jù)-原始流量數(shù)據(jù)http_flow表字段名類型含義hoststring主機src_ipstring源ipreqtimedate訪問時間urlstring訪問url步驟s206,將從每個數(shù)據(jù)分組中選擇的兩個數(shù)據(jù)記錄的訪問時間進行取差運算,得到差值;并在上述差值大于預設閾值時,將上述兩個數(shù)據(jù)記錄的訪問時間作為一個會話的起始時間和結束時間。其中,上述“取差運算”的過程可以表現(xiàn)為以下實現(xiàn)形式,但不限于此:對于每個上述數(shù)據(jù)分組,將上述數(shù)據(jù)分組內(nèi)的數(shù)據(jù)記錄按照上述訪問時間的先后順序進行排序,得到數(shù)據(jù)記錄列表;在所述數(shù)據(jù)記錄列表內(nèi)選擇指定數(shù)據(jù)記錄的上一條數(shù)據(jù)記錄和下一條數(shù)據(jù)記錄進行取差運算,得到所述差值。需要說明的是,上述指定數(shù)據(jù)記錄可以為訪問時間為系統(tǒng)當前時間時所對應的數(shù)據(jù)記錄,但不限于此。需要注意的是,對于每個數(shù)據(jù)分組內(nèi)的所有數(shù)據(jù)記錄而言,由于所有數(shù)據(jù)記錄均具有相同的服務器標識和源ip地址,但是具有不同的訪問時間,因此,可以按照訪問時間不同對數(shù)據(jù)分組內(nèi)的數(shù)據(jù)記錄進行排序。可選地,上述下一條數(shù)據(jù)記錄可以為與上述指定數(shù)據(jù)記錄的訪問時間相鄰的數(shù)據(jù)記錄,可以為從所述指定數(shù)據(jù)記錄的后面數(shù)據(jù)記錄中選擇的一條數(shù)據(jù)記錄,對于后者,可以通過以下方式確定:將上述上一條數(shù)據(jù)記錄的訪問時間與剩余數(shù)據(jù)記錄的訪問時間依次進行取差運算,將首次出現(xiàn)的大于上述預設閾值的差值所對應的剩余數(shù)據(jù)記錄作為上述下一條數(shù)據(jù)記錄,其中,上述剩余數(shù)據(jù)記錄為上述數(shù)據(jù)記錄列表中排在上述指定數(shù)據(jù)記錄后的數(shù)據(jù)記錄。也就是說,在計算上述差值的過程中,可以從上到下依次進行取差計算,如果與上述指定數(shù)據(jù)記錄相鄰的數(shù)據(jù)記錄的訪問時間與上述指定數(shù)據(jù)記錄的訪問時間之差大于預設閾值,則認定與上述指定數(shù)據(jù)記錄相鄰的數(shù)據(jù)記錄為 上述下一條數(shù)據(jù)記錄,如果小于預設閾值,則在數(shù)據(jù)記錄列表中繼續(xù)選擇下一數(shù)據(jù)記錄所對應的訪問時間與上述指定數(shù)據(jù)記錄的訪問時間進行取差運算。需要說明的是,對于上述會話的起始時間的確定,在上述指定數(shù)據(jù)記錄為數(shù)據(jù)記錄列表中的排名首位的數(shù)據(jù)記錄時,需要將上述指定數(shù)據(jù)記錄的訪問時間作為上述起始時間,具體地,可以通過以下處理過程實現(xiàn):判斷上述指定數(shù)據(jù)記錄是否為上述數(shù)據(jù)記錄列表中的第一條數(shù)據(jù)記錄,其中,在判斷結果為是時,將上述指定數(shù)據(jù)記錄的訪問時間作為一個會話的起始時間。在本申請的一個可選實施例中,對數(shù)據(jù)流進行分組后得到的輸出數(shù)據(jù)的數(shù)據(jù)結構如表2所示。需要說明的是,表2中的數(shù)據(jù)結構是基于具有表1所示數(shù)據(jù)結構的數(shù)據(jù)流得到的。表2輸出數(shù)據(jù)-會話分割數(shù)據(jù)http_session表字段名類型含義hoststring主機src_ipstring源ipstarttimedate開始訪問時間endtimedate結束訪問時間sidstring會話標識id本申請實施例中的上述處理過程,可以基于相關技術中的分析函數(shù)(例如lag分析函數(shù)和lead分析函數(shù))實現(xiàn),這樣,便可以使用分析函數(shù)在一個sql語句中實現(xiàn),減少程序開發(fā)的工作量。其中,lag(expression<,offset><,default>)分析函數(shù)可以訪問組內(nèi)當前行之前的行,而lead(expression<,offset><,default>)分析函數(shù)則正相反,可以反問組內(nèi)當前行之后的行。參數(shù)offset是正整數(shù),默認為1。因為在分組內(nèi)第一條記錄之前是沒有數(shù)據(jù)的,最后一條記錄之后也是沒有數(shù)據(jù)的,所以參數(shù)default就是用于處理這樣的情況,默認為空,即沒有數(shù)據(jù)的時候默認取空值。本申請的可選實施例中,可以利用這兩個lag和lead分析函數(shù)實現(xiàn)流量數(shù)據(jù)的會話分割,這樣使用lag和lead兩種分析函數(shù)便可以在一個sql語句內(nèi)實現(xiàn)流量數(shù)據(jù)的任意長度會話分割。并且,上述分析函數(shù)是可以運行于相關技術中提供的數(shù)據(jù)平臺的,例如oracle database(又稱為oraclerdbms,或簡稱oracle)平臺。是甲骨文公司的一款關系數(shù)據(jù)庫管理系統(tǒng),oracle數(shù)據(jù)庫系統(tǒng)是目前世界上流行的關系數(shù)據(jù)庫管理系統(tǒng),系統(tǒng)可移植性好、使用方便、功能強,適用于各類大、中、小、微機環(huán)境。它是一種高效率、可靠性好的適應高吞吐量的數(shù)據(jù)庫解決方案。該數(shù)據(jù)平臺可以支持分析函數(shù)運算,利用分析函數(shù)的強大功能和靈活可編程特性,來解決數(shù)據(jù)分析工作中遇到的各種復雜的分析需求,比如上面所提到的會話分割的問題就可以巧妙的使用分析函數(shù)來實現(xiàn)。以下結合一個可選實施例詳細說明會話分割的原理。如圖3所示,會話分割原理如下:(1)數(shù)據(jù)分組,按照host和src_ip字段對流量數(shù)據(jù)(即數(shù)據(jù)流)進行分組,并按照請求時間(即訪問時間,reqtime)進行排序;(2)會話分割,基于(1)中的數(shù)據(jù)分組,獲取分組內(nèi)按請求時間reqtime排序的當前數(shù)據(jù)行請求時間starttime,上一數(shù)據(jù)行請求時間lasttime以及最大的請求時間maxtime(即上述預設閾值,具體可以根據(jù)實際情況靈活設置);計算分組內(nèi)當前數(shù)據(jù)行請求時間reqtime(starttime)與上一數(shù)據(jù)行請求時間lasttime的差值,即會話分割時長,通過過濾會話分割時長獲取會話分割結束時間endtime。其中,分組后的輸入數(shù)據(jù)的數(shù)據(jù)結構如表3所示,進行會話分割后的數(shù)據(jù)結構如表4所示。表3表4hostsrc_ipstarttimeendtimea192.168.0.12016.01.2516:21:002016.01.2516:21:16a192.168.0.22016.01.2516:21:242016.01.2516:21:24b192.168.0.12016.01.2516:21:002016.01.2516:21:04由此可見,綜合使用分析函數(shù)lag和lead,能夠更高效的完成功能開發(fā),同時減少開發(fā)工作量,提高sql代碼的可維護性。為便于理解,以下結合圖4所示流程,對會話分割流程進一步說明。圖4是根據(jù)本申請實施例的另一種可選的會話分割流程示意圖;如圖4所示,該流程包括:步驟s402,首先使用分析函數(shù)lag獲取reqtime訪問時間對應的上一條訪問時間lasttime,partitionbyhost,src_ip的作用是確保是源ip訪問相同主機,orderbyreqtime確保訪問按照時間序列排序。步驟s404,再進一步獲取lasttime對應的下一條訪問時間endtime,下一條訪問時間之所以就是endtime是因為做了datediff(reqtime,lasttime,'mi')>30的過濾條件。其中,需要添加一些附加的判斷過程,如lasttimeisnull,以及計算會話標識id的代碼unique_id()assid。步驟s406,完成源ip訪問相同主機對應的starttime,endtime,sid的會話分割計算,得到分割后的會話(http_session)。由此可見,整個會話分割流程可以通過一條sql查詢語句實現(xiàn),在odps或者oracle中都可以正常高效的運行。綜上所述,本申請實施例可以實現(xiàn)以下效果:開發(fā)量很小,因為可以使用分析函數(shù)實現(xiàn),所以只需要一個sql查詢語句就可以完成會話分割的問題,工程師的代碼開發(fā)量是很小的;運行效率高,由于可以使用分析函數(shù),而分析函數(shù)可以是oracle數(shù)據(jù)庫中內(nèi)置的sql函數(shù),其運行機制在平臺內(nèi)部做了充分的優(yōu)化,尤其是涉及到會話分割這種數(shù)據(jù)縱向分析問題時,分析函數(shù)尤為高效;維護工作量小,因為可以只有一條sql語句,所以工程師容易理解,因此,后期代碼維護工作量較小。需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本申請并不受所描述的動作順序的限 制,因為依據(jù)本申請,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本申請所必須的。通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到根據(jù)上述實施例的方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述的方法。實施例2根據(jù)本申請實施例,還提供了一種用于實施上述會話分割方法的裝置,如圖5所示所示,該裝置包括:獲取模塊50,用于獲取客戶端設備和服務器之間的網(wǎng)絡流量;可選地,該網(wǎng)絡流量可以為在客戶端設備訪問服務器的過程中,采集的來自上述客戶端設備的數(shù)據(jù)流量,但不限于此。分組模塊52,用于對所述網(wǎng)絡流量按照以下信息進行分組,得到數(shù)據(jù)分組:上述客戶端設備的ip地址和上述客戶端設備所訪問的上述服務器的服務器標識;其中,每個數(shù)據(jù)分組內(nèi)的各個數(shù)據(jù)記錄具有不同的訪問時間;分割模塊54,連接至分組模塊52,用于將從每個數(shù)據(jù)分組中選擇的兩個數(shù)據(jù)記錄的訪問時間進行取差運算,得到差值;并在上述差值大于預設閾值時,將上述兩個數(shù)據(jù)記錄的訪問時間作為一個會話的起始時間和結束時間。在本申請的一個可選實施例中,分割模塊54,還用于對于每個上述數(shù)據(jù)分組,將上述數(shù)據(jù)分組內(nèi)的數(shù)據(jù)記錄按照上述訪問時間的先后順序進行排序,得到數(shù)據(jù)記錄列表;在上述數(shù)據(jù)記錄列表內(nèi)選擇指定數(shù)據(jù)記錄的上一條數(shù)據(jù)記錄和下一條數(shù)據(jù)記錄進行取差運算,得到上述差值??蛇x地,上述下一條數(shù)據(jù)記錄為從上述指定數(shù)據(jù)記錄的后面數(shù)據(jù)記錄中選擇的一條數(shù)據(jù)記錄。需要說明的是,對于每個數(shù)據(jù)分組內(nèi)的所有數(shù)據(jù)記錄而言,所有數(shù)據(jù)記錄均具有相同的服務器標識和源ip地址,但是具有不同的訪問時間,因此,可以按照訪問時間 不同對數(shù)據(jù)分組內(nèi)的數(shù)據(jù)記錄進行排序??蛇x地,分割模塊54,用于按照以下方式選擇上述下一條數(shù)據(jù)記錄:將上述上一條數(shù)據(jù)記錄的訪問時間與剩余數(shù)據(jù)記錄的訪問時間依次進行取差運算,將首次出現(xiàn)的大于上述預設閾值的差值所對應的剩余數(shù)據(jù)記錄作為上述下一條數(shù)據(jù)記錄,其中,上述剩余數(shù)據(jù)記錄為上述數(shù)據(jù)記錄列表中排在上述指定數(shù)據(jù)記錄后的數(shù)據(jù)記錄。可選地,分割模塊54,還用于在將上述兩個數(shù)據(jù)記錄的訪問時間作為一個會話的起始時間和結束時間之前,判斷上述指定數(shù)據(jù)記錄是否為上述數(shù)據(jù)記錄列表中的第一條數(shù)據(jù)記錄,其中,在判斷結果為是時,將上述指定數(shù)據(jù)記錄的訪問時間作為一個會話的起始時間。另外,本申請實施例中分組模塊52和分割模塊54所實現(xiàn)的功能,可以基于相關技術中的分析函數(shù)(例如lag分析函數(shù)和lead分析函數(shù))實現(xiàn),這樣,便可以使用分析函數(shù)在一個sql語句中實現(xiàn),減少程序開發(fā)的工作量。例如,lag(expression<,offset><,default>)分析函數(shù)可以訪問組內(nèi)當前行之前的行,而lead(expression<,offset><,default>)分析函數(shù)則正相反,可以反問組內(nèi)當前行之后的行。參數(shù)offset是正整數(shù),默認為1。因為在分組內(nèi)第一條記錄之前是沒有數(shù)據(jù)的,最后一條記錄之后也是沒有數(shù)據(jù)的,所以參數(shù)default就是用于處理這樣的情況,默認為空,即沒有數(shù)據(jù)的時候默認取空值。本申請的可選實施例中,可以利用這兩個lag和lead分析函數(shù)實現(xiàn)流量數(shù)據(jù)的會話分割,這樣使用lag和lead兩種分析函數(shù)便可以在一個sql語句內(nèi)實現(xiàn)流量數(shù)據(jù)的任意長度會話分割。需要說明的是,上述各個模塊是可以通過軟件或硬件來實現(xiàn)的,其中,對于后者,可以通過以下方式實現(xiàn),但不限于此:上述各個模塊位于同一處理器中,上述各個模塊以任意組合的形式位于不同的處理器中。需要說明的是,本實施例中的優(yōu)選實施方式可以參見實施例1中的相關描述,此處不再贅述。實施例3本申請的實施例可以提供一種計算機終端,該計算機終端可以是計算機終端群中的任意一個計算機終端設備??蛇x地,在本實施例中,上述計算機終端也可以替換為移動終端等終端設備??蛇x地,在本實施例中,上述計算機終端可以位于計算機網(wǎng)絡的多個網(wǎng)絡設備中 的至少一個網(wǎng)絡設備。在本實施例中,上述計算機終端可以執(zhí)行會話分割方法中以下步驟的程序代碼:在客戶端設備訪問服務器的過程中,對來自上述客戶端設備的數(shù)據(jù)流按照以下信息進行分組,得到數(shù)據(jù)分組:上述客戶端設備的ip地址和上述客戶端設備所訪問的上述服務器的服務器標識;其中,每個數(shù)據(jù)分組內(nèi)的各個數(shù)據(jù)記錄具有不同的訪問時間;對于每個上述數(shù)據(jù)分組,將上述數(shù)據(jù)分組內(nèi)的數(shù)據(jù)記錄按照上述訪問時間的先后順序進行排序,得到數(shù)據(jù)記錄列表;將上述數(shù)據(jù)記錄列表中選擇的兩個數(shù)據(jù)記錄的訪問時間進行取差運算,得到差值;并在上述差值大于預設閾值時,將上述兩個數(shù)據(jù)記錄的訪問時間作為一個會話的起始時間和結束時間??蛇x地,圖6是根據(jù)本申請實施例的一種計算機終端的結構框圖。如圖6所示,該計算機終端a可以包括:一個或多個(圖中僅示出一個)處理器61、存儲器63、以及與網(wǎng)站服務器連接的傳輸裝置65。其中,存儲器63可用于存儲軟件程序以及模塊,如本申請實施例中的方法和裝置對應的程序指令/模塊,處理器61通過運行存儲在存儲器63內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應用以及數(shù)據(jù)處理,即實現(xiàn)上述的會話分割方法。存儲器63可包括高速隨機存儲器,還可以包括非易失性存儲器,如一個或者多個磁性存儲裝置、閃存、或者其他非易失性固態(tài)存儲器。在一些實例中,存儲器63可進一步包括相對于處理器61遠程設置的存儲器,這些遠程存儲器可以通過網(wǎng)絡連接至終端a。上述網(wǎng)絡的實例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動通信網(wǎng)及其組合。上述的傳輸裝置65用于經(jīng)由一個網(wǎng)絡接收或者發(fā)送數(shù)據(jù)。上述的網(wǎng)絡具體實例可包括有線網(wǎng)絡及無線網(wǎng)絡。在一個實例中,傳輸裝置65包括一個網(wǎng)絡適配器(networkinterfacecontroller,nic),其可通過網(wǎng)線與其他網(wǎng)絡設備與路由器相連從而可與互聯(lián)網(wǎng)或局域網(wǎng)進行通訊。在一個實例中,傳輸裝置65為射頻(radiofrequency,rf)模塊,其用于通過無線方式與互聯(lián)網(wǎng)進行通訊。其中,具體地,存儲器63用于存儲預設動作條件和預設權限用戶的信息、以及應用程序。處理器61可以通過傳輸裝置調(diào)用存儲器63存儲的信息及應用程序,以執(zhí)行下述步驟:在上述數(shù)據(jù)記錄列表內(nèi)選擇指定數(shù)據(jù)記錄的上一條數(shù)據(jù)記錄和下一條數(shù)據(jù)記錄進行取差運算,得到上述差值??蛇x的,上述處理器61還可以執(zhí)行如下步驟的程序代碼:將上述上一條數(shù)據(jù)記錄的訪問時間與剩余數(shù)據(jù)記錄的訪問時間依次進行取差運算,將首次出現(xiàn)的大于上述預 設閾值的差值所對應的剩余數(shù)據(jù)記錄作為上述下一條數(shù)據(jù)記錄,其中,上述剩余數(shù)據(jù)記錄為上述數(shù)據(jù)記錄列表中排在上述指定數(shù)據(jù)記錄后的數(shù)據(jù)記錄??蛇x的,上述處理器61還可以執(zhí)行如下步驟的程序代碼:判斷上述指定數(shù)據(jù)記錄是否為上述數(shù)據(jù)記錄列表中的第一條數(shù)據(jù)記錄,其中,在判斷結果為是時,將上述指定數(shù)據(jù)記錄的訪問時間作為一個會話的起始時間。本領域普通技術人員可以理解,圖6所示的結構僅為示意,計算機終端也可以是智能手機(如android手機、ios手機等)、平板電腦、掌聲電腦以及移動互聯(lián)網(wǎng)設備(mobileinternetdevices,mid)、pad等終端設備。圖6其并不對上述電子裝置的結構造成限定。例如,計算機終端a還可包括比圖6中所示更多或者更少的組件(如網(wǎng)絡接口、顯示裝置等),或者具有與圖6所示不同的配置。本領域普通技術人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令終端設備相關的硬件來完成,該程序可以存儲于一計算機可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:閃存盤、只讀存儲器(read-onlymemory,rom)、隨機存取器(randomaccessmemory,ram)、磁盤或光盤等。實施例4本申請的實施例還提供了一種存儲介質(zhì)??蛇x地,在本實施例中,上述存儲介質(zhì)可以用于保存上述實施例1所提供的會話分割方法所執(zhí)行的程序代碼??蛇x地,在本實施例中,上述存儲介質(zhì)可以位于計算機網(wǎng)絡中計算機終端群中的任意一個計算機終端中,或者位于移動終端群中的任意一個移動終端中??蛇x地,在本實施例中,存儲介質(zhì)被設置為存儲用于執(zhí)行以下步驟的程序代碼:在客戶端設備訪問服務器的過程中,對來自上述客戶端設備的數(shù)據(jù)流按照以下信息進行分組,得到數(shù)據(jù)分組:上述客戶端設備的ip地址和上述客戶端設備所訪問的上述服務器的服務器標識;其中,每個數(shù)據(jù)分組內(nèi)的各個數(shù)據(jù)記錄具有不同的訪問時間;對于每個上述數(shù)據(jù)分組,將上述數(shù)據(jù)分組內(nèi)的數(shù)據(jù)記錄按照上述訪問時間的先后順序進行排序,得到數(shù)據(jù)記錄列表;將上述數(shù)據(jù)記錄列表中選擇的兩個數(shù)據(jù)記錄的訪問時間進行取差運算,得到差值;并在上述差值大于預設閾值時,將上述兩個數(shù)據(jù)記錄的訪問時間作為一個會話的起始時間和結束時間。此處需要說明的是,上述計算機終端群中的任意一個可以與網(wǎng)站服務器和掃描器建立通信關系,掃描器可以掃描計算機終端上php執(zhí)行的web應用程序的值命令。上述本申請實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。在本申請的上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。在本申請所提供的幾個實施例中,應該理解到,所揭露的客戶端,可通過其它的方式實現(xiàn)。其中,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上。可以根據(jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設備(可為個人計算機、服務器或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:u盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本
技術領域:
:的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。當前第1頁12當前第1頁12