本發(fā)明涉及信息處理領域,尤其涉及一種處理數(shù)據(jù)流的方法及裝置。
背景技術:隨著信息處理技術的發(fā)展,需要處理的數(shù)據(jù)量急劇增多,傳統(tǒng)的靜態(tài)數(shù)據(jù)處理設備已無法滿足需求,便產(chǎn)生了基于數(shù)據(jù)流的數(shù)據(jù)處理技術,數(shù)據(jù)流是指一串具有時序性的,連續(xù)動態(tài)生成的數(shù)據(jù),即數(shù)據(jù)流由一系列數(shù)據(jù)組成,且這些數(shù)據(jù)在時間上是連續(xù)的。CEP(ComplexEventProcessing,復雜事件處理)技術就是一種用于處理數(shù)據(jù)流的數(shù)據(jù)處理技術。CEP系統(tǒng)能夠通過分析數(shù)據(jù)流中的不同數(shù)據(jù),獲取數(shù)據(jù)之間的關系,再根據(jù)這些數(shù)據(jù)及數(shù)據(jù)間的關系獲得更高級的數(shù)據(jù)及商業(yè)流程。使用CEP系統(tǒng)進行數(shù)據(jù)處理時,往往需要定義一個窗口,該窗口根據(jù)篩選條件對某一條數(shù)據(jù)流中一段連續(xù)的數(shù)據(jù)進行篩選,并對篩選出的數(shù)據(jù)進行處理。例如:Esper是一種數(shù)據(jù)流處理程序引擎。Esper定義的窗口根據(jù)篩選條件篩選出某一條數(shù)據(jù)流中的一段連續(xù)的數(shù)據(jù),并將篩選出的數(shù)據(jù)進行保存,同時,窗口中的數(shù)據(jù)被進行指定的運算(分組、求和、求平均值等)。當數(shù)據(jù)流的屬性滿足過期條件時,則刪除窗口中保存的過期數(shù)據(jù)。上述的過期條件可以是窗口的時間(即超過指定時間的數(shù)據(jù)被釋放出窗口)、窗口的長度(即超過指定個數(shù)后,最先進來的事件被釋放出窗口)等。例如:對于股票價格的數(shù)據(jù)流,使用一個窗口篩選出最后一分鐘內所有股票的價格,并根據(jù)篩選出的價格統(tǒng)計最后一分鐘內所有股票的價格均值,所求出的價格均值可以用于其他數(shù)據(jù)處理,當時間超過了最后一分鐘,刪除窗口儲存的時間早于一分鐘的股票的價格。在實現(xiàn)上述發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術中至少存在如下問題:現(xiàn)有技術所定義的窗口功能較為簡單,無法實現(xiàn)根據(jù)需要對數(shù)據(jù)流進行有選擇的處理過程。
技術實現(xiàn)要素:本發(fā)明的實施例提供一種處理數(shù)據(jù)流的方法及裝置,能夠根據(jù)需要對數(shù)據(jù)流進行有選擇的處理過程。為達到上述目的,本發(fā)明的實施例采用如下技術方案:一方面,本發(fā)明的實施例提供一種處理數(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ù);如果所述指定數(shù)據(jù)流的屬性不滿足開啟該窗口的條件,則接收下一個數(shù)據(jù)流組。另一方面,本發(fā)明的實施例提供一種處理數(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ù)流的屬性滿足開啟該窗口的條件,則開啟該窗口,并通過該窗口處理所述數(shù)據(jù)流的數(shù)據(jù)。本發(fā)明實施例提供的方法及裝置,能夠根據(jù)數(shù)據(jù)流的屬性,定義窗口的開啟及關閉條件,實現(xiàn)窗口的開啟和關閉功能,實現(xiàn)根據(jù)需要對數(shù)據(jù)流進行有選擇的處理過程。與現(xiàn)有技術相比,本發(fā)明實施例能夠根據(jù)需要開啟或關閉窗口,從而能夠實現(xiàn)對數(shù)據(jù)流更為復雜的處理過程。附圖說明為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。圖1為本發(fā)明實施例1提供的處理數(shù)據(jù)流的方法的流程圖;圖2為本發(fā)明實施例2提供的處理數(shù)據(jù)流的方法的流程圖;圖3為本發(fā)明實施例2提供的處理數(shù)據(jù)流的方法的具體實例的流程圖;圖4為本發(fā)明實施例2提供的處理數(shù)據(jù)流的方法的具體實例的流程圖;圖5為本發(fā)明實施例3提供的處理數(shù)據(jù)流的裝置的結構示意圖;圖6為本發(fā)明實施例4提供的處理數(shù)據(jù)流的裝置的結構示意圖。具體實施方式下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。為使本發(fā)明技術方案的優(yōu)點更加清楚,下面結合附圖和實施例對本發(fā)明作 詳細說明。實施例1本發(fā)明實施例提供一種處理數(shù)據(jù)流的方法,如圖1所示,該方法包括:步驟101,接收數(shù)據(jù)流組。其中,所述數(shù)據(jù)流組中包括至少一個數(shù)據(jù)流。步驟102,檢測所述數(shù)據(jù)流所對應的窗口是否已開啟。步驟103,若所述數(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ù)流的屬性可以包括時間屬性,也可以包括時間屬性和價格屬性。更進一步的,所述指定數(shù)據(jù)流的屬性可以來自同一個數(shù)據(jù)流;或,所述指定數(shù)據(jù)流的屬性分別來自所述指定數(shù)據(jù)流中的至少二個不同的數(shù)據(jù)流,例如,如果指定數(shù)據(jù)流的屬性如果包括時間屬性和價格屬性,則時間屬性和所述價格屬性可以分別來自所述指定數(shù)據(jù)流中二個不同的數(shù)據(jù)流。步驟104,如果所述指定數(shù)據(jù)流的屬性滿足開啟該窗口的條件,則開啟該窗口,并通過該窗口處理所述數(shù)據(jù)流的數(shù)據(jù)。步驟105,如果所述指定數(shù)據(jù)流的屬性不滿足開啟該窗口的條件,則接收下一個數(shù)據(jù)流組。本發(fā)明實施例提供的方法,能夠根據(jù)數(shù)據(jù)流的屬性,定義窗口的開啟及關閉條件,實現(xiàn)窗口的開啟和關閉功能,使窗口能夠實現(xiàn)根據(jù)需要對數(shù)據(jù)流進行有選擇的處理過程。與現(xiàn)有技術相比,本發(fā)明實施例能夠根據(jù)需要開啟或關閉窗口,從而能夠實現(xiàn)對數(shù)據(jù)流更為復雜的處理過程。實施例2本發(fā)明實施例提供一種處理數(shù)據(jù)流的方法,如圖2所示,該方法包括:步驟201,定義可開關窗口。具體的,在本實施例中,數(shù)據(jù)處理設備根據(jù)CEP系統(tǒng)中的查詢語言定義具有開關功能的窗口。其中,經(jīng)過定義的窗口能夠根據(jù)本數(shù)據(jù)流的屬性,或其他數(shù)據(jù)流的屬性,開啟或關閉窗口。其中,窗口之間不存在有重疊的情況。當一個窗口開啟時,在沒有關閉的情況下,不會有下一個窗口的開啟。例如:使用CQL(ContinuousQueryLanguage,連續(xù)查詢語言)對一個窗口進行定義。其中,CQL為一種查詢語言,且已為本領域所熟知,在此不再贅述。具體的定義語句如下:[start_window_condition_expression,end_window_condition_expression]其中,在對窗口進行的條件定義中,start_window_condition_expression指明了窗口開啟的條件;end_window_condition_expression指明了窗口關閉的條件。即通過以上定義語句對窗口進行定義后,窗口能夠根據(jù)定義語句中所指明的條件開啟或關閉。再例如:如圖3所示,為使用流處理技術對通信技術中的乒乓切換現(xiàn)象進行過濾及提取,所述乒乓切換為:在移動通訊設備的一次通話過程中,信號會在固定兩個基站間發(fā)生5次以上切換,且每連續(xù)的兩次切換時間間隔小于7秒,則判定為乒乓切換。其中,切換的定義為:一個用戶由基站A切到基站B,是乒乓切換的單次切換,連續(xù)的A->B、B->A、A->B、B->A...切換稱為一次乒乓切換(連續(xù)5次以上切換,即連續(xù)的6次、7次或者更多次仍然是一次乒乓切換)。一次乒乓切換的結束為:在最后一個切換的時間間隔內7s內沒有再發(fā)生切換。同時,其他具有類似數(shù)據(jù)排列模式的數(shù)據(jù)流也可視為乒乓切換。使用數(shù)據(jù)處理引擎生成的窗口對具有乒乓切換模式的數(shù)據(jù)流進行數(shù)據(jù)處理,可以通過CQL對該窗口進行定義,定義語句如下:[time-previous(time)<=7second,time-previous(time)>7second]其中,定義語句中的time屬于數(shù)據(jù)流的屬性,表示數(shù)據(jù)流的時間截,即時間信息,previous(time)是一個函數(shù),可以獲得數(shù)據(jù)流中當前數(shù)據(jù)的前一個數(shù)據(jù)的時間截,即當前數(shù)據(jù)的前一個數(shù)據(jù)的time屬性值。該定義語句的含義為:判斷當前數(shù)據(jù)與前一個數(shù)據(jù)之間的時間差是否在7秒之內,如果是,則窗口開啟;當窗口開啟后,對于新到達的數(shù)據(jù),再判斷該數(shù)據(jù)與前一個數(shù)據(jù)之間的時間差不是大于7秒,如果是,則窗口關閉。經(jīng)過該定義語句定義的窗口,可以將所有滿足一次乒乓切換模式的所有切換記錄放入到同一個窗口內,并通過后續(xù)的計數(shù)運算,獲得每次乒乓切換的記錄數(shù),為后續(xù)的判斷、處理奠定基礎。步驟202,接收數(shù)據(jù)流組。其中,所述數(shù)據(jù)流組中包括至少一個數(shù)據(jù)流。具體的,在本實施例中,CEP系統(tǒng)中的數(shù)據(jù)處理設備在同一時間接收到一個 以上的數(shù)據(jù)流,并在步驟201中對需要進行處理的數(shù)據(jù)流定義了窗口,經(jīng)過定義的窗口能夠根據(jù)所對應的數(shù)據(jù)流的屬性開啟或關閉窗口。例如:如圖3所示,數(shù)據(jù)處理設備在接收到數(shù)據(jù)流組后,確定所述數(shù)據(jù)流組中具有乒乓切換的數(shù)據(jù)流,生成用于處理有乒乓切換模式的數(shù)據(jù)流的窗口,并使用窗口對有乒乓切換的數(shù)據(jù)流進行處理,該窗口能夠根據(jù)定義語句中使用的previous(time)函數(shù),獲取當前數(shù)據(jù)的前一個數(shù)據(jù)的時間截,從而得到相鄰兩個數(shù)據(jù)間的時間差,因此在窗口保留相鄰兩個數(shù)據(jù)(即保留當前數(shù)據(jù)以及其相鄰的前一個數(shù)據(jù)),窗口所保留的數(shù)據(jù)存儲在數(shù)據(jù)處理設備的存儲單元中。步驟203,檢測所述數(shù)據(jù)流所對應的窗口是否已開啟。具體的,在本實施例中,CEP系統(tǒng)中的數(shù)據(jù)處理設備檢測數(shù)據(jù)流所對應的窗口是否已經(jīng)開啟,例如:數(shù)據(jù)處理設備可以通過窗口管理模塊來檢測數(shù)據(jù)流所對應的窗口是否已經(jīng)開啟。其中,通過窗口管理模塊檢測數(shù)據(jù)流所對應的窗口是否已經(jīng)開啟的方法及步驟已為本領域所熟知,在此不再贅述。若所述數(shù)據(jù)流所對應的窗口沒有開啟,則執(zhí)行步驟204;若所述數(shù)據(jù)流所對應的窗口已經(jīng)開啟,則執(zhí)行步驟205。步驟204,若所述數(shù)據(jù)流所對應的窗口沒有開啟,判斷指定數(shù)據(jù)流的屬性是否滿足開啟該窗口的條件。其中,所述指定數(shù)據(jù)流為所述數(shù)據(jù)流組的所有數(shù)據(jù)流中的至少一個。如果滿足開啟該窗口的條件,則執(zhí)行步驟206;如果不滿足開啟該窗口的,則接收下一個數(shù)據(jù)流組。具體的,在本實施例中,指定數(shù)據(jù)流的屬性是指被用于作為判斷窗口開關與否的條件的數(shù)據(jù)流的屬性,可以是數(shù)據(jù)流的一項屬性,也可以是數(shù)據(jù)流的多 項屬性,數(shù)據(jù)處理設備通過經(jīng)過定義的窗口根據(jù)這些屬性及窗口的定義語句判斷所述指定數(shù)據(jù)流的屬性是否滿足開啟該窗口的條件。指定數(shù)據(jù)流的屬性可以來自同一個數(shù)據(jù)流,進一步的,指定數(shù)據(jù)流的屬性可以來自不同數(shù)據(jù)流,具體的,可以分為以下幾種情況:其一:指定數(shù)據(jù)流的屬性來自同一個數(shù)據(jù)流,并且指定數(shù)據(jù)流的屬性只有一項。例如:指定數(shù)據(jù)流的屬性具體為時間屬性。對于數(shù)據(jù)流a,窗口b是數(shù)據(jù)流a的窗口,窗口b能夠根據(jù)定義語句中使用的previous(time)函數(shù),獲取數(shù)據(jù)流a自身的當前數(shù)據(jù)的前一個數(shù)據(jù)的時間截,從而得到數(shù)據(jù)流a中相鄰兩個數(shù)據(jù)間的時間差值A,并根據(jù)定義語句:[time-previous(time)<=7second,time-previous(time)>7second]得到:如果A不大于7秒,則窗口b開啟,并開始對數(shù)據(jù)流a進行其他數(shù)據(jù)運算處理。如果A大于7秒,則不開啟窗口b,繼續(xù)接收下一個數(shù)據(jù)流組。在這里,指定數(shù)據(jù)流為數(shù)據(jù)流a。進一步的,也可以是,對于數(shù)據(jù)流a,窗口b能夠根據(jù)定義語句中使用的previous(time)函數(shù),獲取同一個數(shù)據(jù)流組中另外一個數(shù)據(jù)流b當前數(shù)據(jù)的前一個數(shù)據(jù)的時間截,即獲取除數(shù)據(jù)流a以外的其他數(shù)據(jù)流的屬性作為指定數(shù)據(jù)流(這里指定數(shù)據(jù)流為數(shù)據(jù)流b)的屬性,來判斷窗口b是否開啟。其二:指定數(shù)據(jù)流的屬性來自同一個數(shù)據(jù)流,并且指定數(shù)據(jù)流的屬性有至少兩項。例如:指定數(shù)據(jù)流的屬性來自同一個數(shù)據(jù)流,并且具體指定數(shù)據(jù)流的屬性是目標地屬性和來源地屬性。數(shù)據(jù)流a的屬性中有目標地屬性target和來源地屬性origin。窗口b能夠根據(jù)定義語句中使用的previous(target)函數(shù),得到數(shù)據(jù)流a中當前數(shù)據(jù)的前一個數(shù)據(jù)的目標地屬性target值,并根據(jù)定義語句[origin=privious(target),origin<>privious(target)]得到:如果當前數(shù)據(jù)的來源地屬性origin值等于前一個數(shù)據(jù)的目標地屬性target值,則窗口b開啟,并開始對其所對應的數(shù)據(jù)流進行數(shù)據(jù)處理。進一步的,也可以是,對于數(shù)據(jù)流a,窗口b能夠根據(jù)定義語句中使用的previous(target)函數(shù),獲取數(shù)據(jù)流b中當前數(shù)據(jù)的前一個數(shù)據(jù)的目標地屬性target值,并根據(jù)定義語句[origin=privious(target),origin<>privious(target)]得到:如果當前數(shù)據(jù)的來源地屬性origin值等于前一個數(shù)據(jù)的目標地屬性target值,則數(shù)據(jù)流a的窗口b開啟,并開始對其所對應的數(shù)據(jù)流進行數(shù)據(jù)處理。即獲取除數(shù)據(jù)流a以外的其他數(shù)據(jù)流的多個具體屬性值,來判斷窗口b是否開啟。其三:指定數(shù)據(jù)流的屬性來自不同數(shù)據(jù)流,指定數(shù)據(jù)流的屬性有至少兩項,其中,并且指定數(shù)據(jù)流的屬性可以來自具有窗口的數(shù)據(jù)流本身和其他不具有窗口的數(shù)據(jù)流,也可以全部來自其他不具有窗口的數(shù)據(jù)流,在此并不限定。例如:指定數(shù)據(jù)流的屬性有時間屬性和價格屬性,并且分別來自同一數(shù)據(jù)流組中不同的數(shù)據(jù)流。如圖4所示,數(shù)據(jù)流的屬性中的價格屬性,即price屬性值:[A.price>5,B.price>8],即在當前的數(shù)據(jù)流中(可以是數(shù)據(jù)流A,數(shù)據(jù)流B,或者是其他的數(shù)據(jù)流)進行窗口操作,當在數(shù)據(jù)流A中數(shù)據(jù)的price屬性值>5時,數(shù)據(jù)流W的窗口是窗口w;之后,當在數(shù)據(jù)流B中,到達某數(shù)據(jù)的price屬性值>8時,在當前流中關閉該窗口w。也可以是當在A流中數(shù)據(jù)的price屬性值>5時,在當前 流中打開窗口w;之后,當在B流中,到達某數(shù)據(jù)的time屬性值>8時,在當前流中關閉該窗口w,即用于判斷窗口開啟的屬性以及判斷窗口關閉的屬性可以不一樣。窗口實現(xiàn)流程與前述類似,在本節(jié)不做累述。綜上所述,數(shù)據(jù)處理設備能夠通過經(jīng)過定義的窗口根據(jù)不同數(shù)據(jù)流之間的關系開啟窗口,以滿足更復雜的業(yè)務場景。步驟205,判斷指定數(shù)據(jù)流的屬性是否滿足關閉該窗口的條件。如果指定數(shù)據(jù)流的屬性滿足關閉該窗口的條件,則執(zhí)行步驟207;如果指定數(shù)據(jù)流的屬性不滿足關閉該窗口的條件,則執(zhí)行步驟208。具體的,在本實施例中,指定數(shù)據(jù)流的屬性是指被用于作為判斷窗口開關與否的條件的數(shù)據(jù)流的屬性,可以是數(shù)據(jù)流的一項屬性,也可以是數(shù)據(jù)流的多項屬性,數(shù)據(jù)處理設備通過經(jīng)過定義的窗口根據(jù)這些屬性及窗口的定義語句判斷所述指定數(shù)據(jù)流的屬性是否滿足開啟該窗口的條件。指定數(shù)據(jù)流的屬性可以來自同一個數(shù)據(jù)流,進一步的,指定數(shù)據(jù)流的屬性可以來自不同數(shù)據(jù)流,具體的,可以分為以下幾種情況:其一:指定數(shù)據(jù)流的屬性來自同一個數(shù)據(jù)流,并且指定數(shù)據(jù)流的屬性只有一項。例如:指定數(shù)據(jù)流的屬性具體為時間屬性。對于數(shù)據(jù)流a,窗口b是數(shù)據(jù)流a的窗口,窗口b能夠根據(jù)定義語句中使用的previous(time)函數(shù),獲取數(shù)據(jù)流a自身的當前數(shù)據(jù)的前一個數(shù)據(jù)的時間截,從而得到數(shù)據(jù)流a中相鄰兩個數(shù)據(jù)間的時間差值A,并根據(jù)定義語句:[time-previous(time)<=7second,time-previous(time)>7second]得到:數(shù)據(jù)流a的窗口b開啟時,如果A大于7秒,則窗口b關閉。這個例子中,指定數(shù)據(jù)流為數(shù)據(jù)流a。進一步的,也可以是,對于數(shù)據(jù)流a,窗口b能夠根據(jù)定義語句中使用的previous(time)函數(shù),獲取同一個數(shù)據(jù)流組中另外一個數(shù)據(jù)流b當前數(shù)據(jù)的前一個數(shù)據(jù)的時間截,即獲取除數(shù)據(jù)流a以外的其他數(shù)據(jù)流的屬性作為指定數(shù)據(jù)流(這里指定數(shù)據(jù)流為數(shù)據(jù)流b)的屬性,來判斷已開啟的窗口b是否關閉。其二:指定數(shù)據(jù)流的屬性來自同一個數(shù)據(jù)流,并且指定數(shù)據(jù)流的屬性有至少兩項。例如:指定數(shù)據(jù)流的屬性來自同一個數(shù)據(jù)流,并且具體指定數(shù)據(jù)流的屬性是目標地屬性和來源地屬性。數(shù)據(jù)流a的屬性中有目標地屬性target和來源地屬性origin。窗口b能夠根據(jù)定義語句中使用的previous(target)函數(shù),得到數(shù)據(jù)流a中當前數(shù)據(jù)的前一個數(shù)據(jù)的目標地屬性target值,并根據(jù)定義語句[origin=privious(target),origin<>privious(target)]得到:如果窗口b開啟后,當前數(shù)據(jù)的origin值不等于前一個數(shù)據(jù)的target值,則關閉窗口b。進一步的,也可以是,對于數(shù)據(jù)流a,窗口b能夠根據(jù)定義語句中使用的previous(target)函數(shù),獲取數(shù)據(jù)流b中當前數(shù)據(jù)的前一個數(shù)據(jù)的目標地屬性target值,并根據(jù)定義語句[origin=privious(target),origin<>privious(target)]得到:如果窗口b開啟后,當前數(shù)據(jù)的origin值不等于前一個數(shù)據(jù)的target值,則關閉數(shù)據(jù)流a的窗口b。即獲取除數(shù)據(jù)流a以外的其他數(shù)據(jù)流的多個具體屬性值,來判斷窗口b是否開啟。其三:指定數(shù)據(jù)流的屬性來自不同數(shù)據(jù)流,指定數(shù)據(jù)流的屬性有至少兩項,其中,并且指定數(shù)據(jù)流的屬性可以來自具有窗口的數(shù)據(jù)流本身和其他不具有窗口的數(shù) 據(jù)流,也可以全部來自其他不具有窗口的數(shù)據(jù)流,在此并不限定。具體實例如步驟204中的其三所述。綜上所述,數(shù)據(jù)處理設備能夠通過經(jīng)過定義的窗口根據(jù)不同數(shù)據(jù)流之間的關系開啟窗口,以滿足更復雜的業(yè)務場景。從而,數(shù)據(jù)處理設備能夠通過經(jīng)過定義的窗口根據(jù)不同數(shù)據(jù)流之間的關系,對指定的數(shù)據(jù)流進行數(shù)據(jù)處理,實現(xiàn)更復雜的數(shù)據(jù)流處理。步驟206,開啟該窗口。通過該窗口處理所述數(shù)據(jù)流的數(shù)據(jù)。步驟207,關閉該窗口。其中,若關閉的窗口中留有未處理的數(shù)據(jù),則對這些進行處理。步驟208,處理窗口中保留的數(shù)據(jù)。具體的,在本實施例中,對窗口中保留的數(shù)據(jù)進行處理的方法包括:分組、求和、或求平均值等。對窗口中保留的數(shù)據(jù)進行處理的方法已為本領域所熟知,在此不再贅述。本發(fā)明實施例提供的方法,能夠根據(jù)數(shù)據(jù)流的屬性,定義窗口的開啟及關閉條件,實現(xiàn)窗口的開啟和關閉功能,使窗口能夠實現(xiàn)根據(jù)需要對數(shù)據(jù)流進行有選擇的處理過程。還能夠根據(jù)多個數(shù)據(jù)流中的數(shù)據(jù)流的屬性,定義窗口的開啟及關閉條件,實現(xiàn)窗口的開啟和關閉功能,使窗口能夠根據(jù)不同數(shù)據(jù)流之間的關系處理數(shù)據(jù)流。與現(xiàn)有技術相比,本發(fā)明實施例能夠根據(jù)需要對開啟或關閉窗口,從而能夠實現(xiàn)對數(shù)據(jù)流更為復雜的處理過程。實施例3本發(fā)明實施例提供一種處理數(shù)據(jù)流的裝置,如圖5所示,該裝置包括:接收模塊501、檢測模塊502、第一判斷模塊503、第一啟動模塊504。接收模塊501,用于接收數(shù)據(jù)流組。其中,如果指定數(shù)據(jù)流的屬性不滿足開啟該窗口的條件,則接收下一個數(shù)據(jù)流組,所述數(shù)據(jù)流組中包括至少一個數(shù)據(jù)流。檢測模塊502,用于檢測所述數(shù)據(jù)流所對應的窗口是否已開啟。第一判斷模塊503,用于若所述數(shù)據(jù)流所對應的窗口沒有開啟,則判斷所述指定數(shù)據(jù)流的屬性是否滿足開啟該窗口的條件,所述指定數(shù)據(jù)流為所述數(shù)據(jù)流組的所有數(shù)據(jù)流中的至少一個。第一啟動模塊504,用于如果所述指定數(shù)據(jù)流的屬性滿足開啟該窗口的條件,則開啟該窗口,并通過該窗口處理所述數(shù)據(jù)流的數(shù)據(jù)。其中,如果不滿足開啟該窗口的,則通過接收模塊501接收下一個數(shù)據(jù)流組。本發(fā)明實施例提供的裝置,能夠通過接收模塊接受數(shù)據(jù)流,并根據(jù)數(shù)據(jù)流的屬性,通過檢測模塊檢測窗口是否開啟,并通過第一判斷模塊判斷窗口是否滿足開啟的條件,再通過第一啟動模塊啟動窗口并實現(xiàn)根據(jù)需要對數(shù)據(jù)流進行有選擇的處理過程,從而實現(xiàn)窗口的開啟功能。同時還能夠根據(jù)其他數(shù)據(jù)流的屬性,定義窗口的開啟條件,實現(xiàn)窗口的開啟功能,使窗口能夠根據(jù)不同數(shù)據(jù)流之間的關系處理數(shù)據(jù)。與現(xiàn)有技術相比,本發(fā)明實施例能夠根據(jù)需要對開啟窗口,從而能夠實現(xiàn)對數(shù)據(jù)流更為復雜的處理過程。實施例4本發(fā)明實施例提供一種處理數(shù)據(jù)流的裝置,如圖6所示,該裝置包括:接收模塊501、檢測模塊502、第一判斷模塊503、第一啟動模塊504、定義模塊505、第二判斷模塊506、關閉模塊507、第二啟動模塊508、數(shù)據(jù)處理模塊509。定義模塊505,用于定義可開關窗口。接收模塊501,用于接收數(shù)據(jù)流組。其中,所述數(shù)據(jù)流組中包括至少一個數(shù)據(jù)流,所述指定數(shù)據(jù)流的屬性來自同一個數(shù)據(jù)流,或所述指定數(shù)據(jù)流的屬性分別來自所述指定數(shù)據(jù)流中的至少二個不同的數(shù)據(jù)流。進一步的,如果指定數(shù)據(jù)流的屬性不滿足開啟該窗口的條件,則接收下一個數(shù)據(jù)流組,所述數(shù)據(jù)流組中包括至少一個數(shù)據(jù)流。檢測模塊502,用于檢測所述數(shù)據(jù)流所對應的窗口是否已開啟。第一判斷模塊503,用于若所述數(shù)據(jù)流所對應的窗口沒有開啟,則判斷所述指定數(shù)據(jù)流的屬性是否滿足開啟該窗口的條件。其中,所述指定數(shù)據(jù)流為所述數(shù)據(jù)流組的所有數(shù)據(jù)流中的至少一個。進一步的,所述指定數(shù)據(jù)流的屬性分別來自所述指定數(shù)據(jù)流中的至少二個不同的數(shù)據(jù)流,所述第一判斷模塊,具體用于根據(jù)時間屬性和價格屬性中的至少一項判斷是否滿足開啟該窗口的條件。第二判斷模塊506,用于若所述數(shù)據(jù)流所對應的窗口已經(jīng)開啟,則判斷指定數(shù)據(jù)流的屬性是否滿足關閉該窗口的條件。其中,所述指定數(shù)據(jù)流為所述數(shù)據(jù)流組的所有數(shù)據(jù)流中的至少一個。進一步的,所述指定數(shù)據(jù)流的屬性分別來自所述指定數(shù)據(jù)流中的至少二個不同的數(shù)據(jù)流,所述第一判斷模塊,具體用于根據(jù)時間屬性和價格屬性中的至少一項判斷是否滿足開啟該窗口的條件。第一啟動模塊504,用于如果所述指定數(shù)據(jù)流的屬性滿足開啟該窗口的條件,則開啟該窗口,并通過該窗口處理所述數(shù)據(jù)流的數(shù)據(jù)。其中,如果不滿足開啟該窗口的條件,則通過接收模塊501接收下一個數(shù)據(jù)流組。關閉模塊507,用于如果滿足關閉該窗口的條件,則關閉該窗口。其中,若關閉的窗口中留有未處理的數(shù)據(jù),則通過數(shù)據(jù)處理模塊509對這些進行處理。第二啟動模塊508,用于如果指定數(shù)據(jù)流的屬性不滿足關閉該窗口的條件,則通過數(shù)據(jù)處理模塊509處理所述數(shù)據(jù)流的數(shù)據(jù)。數(shù)據(jù)處理模塊509,用于處理窗口中保留的數(shù)據(jù)。具體的,在本實施例中,對窗口中保留的數(shù)據(jù)進行處理的方法可以是:分組、求和、或求平均值等。對窗口中保留的數(shù)據(jù)進行處理的方法已為本領域所熟知,在此不再贅述。該處理數(shù)據(jù)流的裝置具體的操作方法已在方法實施例中詳細描述,這里不做贅述。本發(fā)明實施例提供的裝置,能夠通過接收模塊接受數(shù)據(jù)流,并根據(jù)數(shù)據(jù)流的屬性,通過檢測模塊檢測窗口是否開啟,并通過第一判斷模塊判斷窗口是否滿足開啟的條件,以及通過第二判斷模塊判斷窗口是否滿足關閉的條件,再通過第一啟動模塊啟動窗口并實現(xiàn)根據(jù)需要對數(shù)據(jù)流進行有選擇的處理過程,或通過關閉模塊關閉滿足關閉條件的窗口,從而實現(xiàn)窗口的開啟和關閉功能。同時,還能夠根據(jù)其他數(shù)據(jù)流的屬性,定義窗口的開啟及關閉條件,實現(xiàn)窗口的開啟和關閉功能,使窗口能夠根據(jù)不同數(shù)據(jù)流之間的關系處理數(shù)據(jù)。與現(xiàn)有技術相比,本發(fā)明實施例能夠根據(jù)需要對開啟或關閉窗口,從而能夠實現(xiàn)對數(shù)據(jù)流更為復雜的處理過程。本領域普通技術人員可以理解實現(xiàn)上述實施例裝置中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,可包括如上述各裝置的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-OnlyMemory, ROM)或隨機存儲記憶體(RandomAccessMemory,RAM)等。以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內,可輕易想到的變化或替換,都應涵蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應該以權利要求的保護范圍為準。