對(duì)復(fù)雜事件處理(cep)中的新插入流(istream)操作的支持的制作方法
【專(zhuān)利摘要】本發(fā)明的一個(gè)實(shí)施例包括處理流式數(shù)據(jù)的方法。該方法包括初始化數(shù)據(jù)流,以及設(shè)置要應(yīng)用于數(shù)據(jù)流的時(shí)間間隔。時(shí)間間隔包括用于分析數(shù)據(jù)流內(nèi)的數(shù)據(jù)的窗口。該方法還包括標(biāo)識(shí)數(shù)據(jù)流內(nèi)的一個(gè)或多個(gè)列、指定要被監(jiān)測(cè)在所述時(shí)間間隔內(nèi)所述數(shù)據(jù)內(nèi)的差異的所述列中的一個(gè)或多個(gè),以及監(jiān)測(cè)在所述時(shí)間間隔內(nèi)所指定的列。進(jìn)一步地,該方法包括判斷所指定的列中的至少一個(gè)的至少一個(gè)值已經(jīng)變化,響應(yīng)于至少一個(gè)值變化,從所指定的列輸出變化的值。
【專(zhuān)利說(shuō)明】對(duì)復(fù)雜事件處理(CEP)中的新插入流(I STREAM)操作的支持
[0001]對(duì)相關(guān)申請(qǐng)的交叉引用
[0002]此“專(zhuān)利合作條約”申請(qǐng)要求2011年5月6日提交的標(biāo)題為“SUPPORT FOR A NEWINSERT STREAM (ISTREAM) OPERATION IN COMPLEX EVENT PROCESSING (CEP) ” 的美國(guó)非臨時(shí)專(zhuān)利申請(qǐng)N0.13/102,665的優(yōu)先權(quán),此處引用了其全部?jī)?nèi)容作為參考。
【背景技術(shù)】
[0003]通常,“復(fù)雜事件處理”(CEP)是實(shí)時(shí)地聚集來(lái)自分布式基于消息的系統(tǒng)、數(shù)據(jù)庫(kù)和應(yīng)用的信息并且動(dòng)態(tài)地應(yīng)用規(guī)則以辨別否則可能不被注意的模式和趨勢(shì)的方法。這可以給予公司跨高度復(fù)雜、分布式的,并且異種環(huán)境來(lái)識(shí)別并且甚至預(yù)期由表面上不相關(guān)的事件所表示的異常和機(jī)會(huì)的能力,CEP還被用來(lái)幾乎實(shí)時(shí)地關(guān)聯(lián)、聚集、豐富,以及檢測(cè)高速度流式數(shù)據(jù)中的模式。此外,CEP還通過(guò)流的概念來(lái)支持無(wú)限制的數(shù)據(jù)的成流。流是數(shù)據(jù)項(xiàng)的無(wú)限制的集合,最為對(duì)比,選擇是數(shù)據(jù)項(xiàng)的有限集合——非常像在傳統(tǒng)的數(shù)據(jù)庫(kù)系統(tǒng)中那樣。目前,存在各種從流轉(zhuǎn)換為關(guān)系以及執(zhí)行相反的操作的操作符。
[0004]此外,ISTREAM (或插入流)是操作符中的將關(guān)系轉(zhuǎn)換為流的ー個(gè)操作符。ISTREAM在考慮ー個(gè)關(guān)系的所有列的情況下根據(jù)時(shí)間R(t)和R(t-l)來(lái)計(jì)算ー個(gè)關(guān)系的多重集差異。如此,由于考慮了所有列,因此,輸出數(shù)據(jù)可能包括不必要的或不希望有的信息。因此,通過(guò)本發(fā)明來(lái)補(bǔ)救這些及其他缺點(diǎn)。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0005]結(jié)合附圖描述本發(fā)明:
[0006]圖1是示出了根據(jù)本發(fā)明的各實(shí)施例的對(duì)流式數(shù)據(jù)的處理的流程圖;
[0007]圖2是示出了根據(jù)本發(fā)明的進(jìn)ー步的實(shí)施例的對(duì)流式數(shù)據(jù)的處理的流程圖;
[0008]圖3是示出了根據(jù)本發(fā)明的各實(shí)施例的用于處理流式數(shù)據(jù)的系統(tǒng)的框圖;
[0009]圖4是示出了根據(jù)本發(fā)明的各實(shí)施例的與處理流式數(shù)據(jù)相關(guān)的表的圖示;
[0010]圖5是能夠用于本發(fā)明的設(shè)備或系統(tǒng)的至少某些部分中,或?qū)崿F(xiàn)本發(fā)明的方法的至少某些部分的示例性計(jì)算機(jī)系統(tǒng)的框圖;以及
[0011]圖6是示出了用于實(shí)現(xiàn)本發(fā)明的各實(shí)施例的示例性聯(lián)網(wǎng)系統(tǒng)的框圖。
[0012]在附圖中,類(lèi)似的組件和/或特征可以具有相同的數(shù)字附圖標(biāo)記。進(jìn)ー步地,相同類(lèi)型的各種組件可以通過(guò)在附圖標(biāo)記之后添加區(qū)別類(lèi)似的組件和/或特征的字母來(lái)區(qū)別。如果只有第一數(shù)字附圖標(biāo)記用于說(shuō)明書(shū)中,則描述適用于具有相同第一數(shù)字附圖標(biāo)記的類(lèi)似的組件和/或特征中的任何ー個(gè),不管字母后綴是什么。
【發(fā)明內(nèi)容】
[0013]本發(fā)明的一個(gè)實(shí)施例包括處理流式數(shù)據(jù)的方法。該方法包括初始化數(shù)據(jù)流,以及設(shè)置要應(yīng)用于數(shù)據(jù)流的時(shí)間間隔。該時(shí)間間隔包括用于分析數(shù)據(jù)流內(nèi)的數(shù)據(jù)的窗ロ。該方法還包括標(biāo)識(shí)數(shù)據(jù)流內(nèi)的ー個(gè)或多個(gè)列,指定要被監(jiān)測(cè)在所述時(shí)間間隔內(nèi)所述數(shù)據(jù)內(nèi)的差異的所述列中的ー個(gè)或多個(gè),以及,在所述時(shí)間間隔內(nèi)監(jiān)測(cè)所述指定的列。進(jìn)ー步地,該方法包括判斷所述指定的列中的至少ー個(gè)的至少ー個(gè)值已經(jīng)變化,并且響應(yīng)于至少ー個(gè)值變化,從所述指定的列輸出變化的值。
[0014]在再一個(gè)實(shí)施例中,描述了用于處理流式數(shù)據(jù)的系統(tǒng)。該系統(tǒng)包括在其上存儲(chǔ)了指令集的存儲(chǔ)器以及與存儲(chǔ)器耦合的處理器。指令集在由處理器執(zhí)行時(shí),使處理器:初始化數(shù)據(jù)流,以及,設(shè)置要應(yīng)用于數(shù)據(jù)流的時(shí)間間隔。該時(shí)間間隔包括用于分析數(shù)據(jù)流內(nèi)的數(shù)據(jù)的窗ロ。指令進(jìn)ー步使處理器標(biāo)識(shí)數(shù)據(jù)流內(nèi)的ー個(gè)或多個(gè)列,指定要被監(jiān)測(cè)在所述時(shí)間間隔內(nèi)所述數(shù)據(jù)內(nèi)的差異的所述列中的ー個(gè)或多個(gè),在所述時(shí)間間隔內(nèi)監(jiān)測(cè)所述指定的列,判斷所述指定的列中的至少ー個(gè)的至少ー個(gè)值已經(jīng)變化,以及,響應(yīng)于至少ー個(gè)值變化,從所述指定的列輸出變化的值。
[0015]本發(fā)明的進(jìn)ー步的實(shí)施例包括用于處理流式數(shù)據(jù)的計(jì)算機(jī)可讀介質(zhì)。該計(jì)算機(jī)可讀介質(zhì)包括用于初始化數(shù)據(jù)流,以及設(shè)置要應(yīng)用于數(shù)據(jù)流的時(shí)間間隔的指令。該時(shí)間間隔包括用于分析數(shù)據(jù)流內(nèi)的數(shù)據(jù)的窗ロ。該計(jì)算機(jī)可讀介質(zhì)還包括用于標(biāo)識(shí)數(shù)據(jù)流內(nèi)的ー個(gè)或多個(gè)列、指定要被監(jiān)測(cè)在所述時(shí)間間隔內(nèi)所述數(shù)據(jù)內(nèi)的差異的所述列中的ー個(gè)或多個(gè),以及在所述時(shí)間間隔內(nèi)監(jiān)測(cè)所述指定的列的指令。進(jìn)ー步地,該計(jì)算機(jī)可讀介質(zhì)包括用于判斷所述指定的列中的至少ー個(gè)的至少ー個(gè)值已經(jīng)變化,并且響應(yīng)于至少ー個(gè)值變化,從所述指定的列輸出變化的值的指令。
【具體實(shí)施方式】
[0016]下面的描述只提供示例性實(shí)施例,不打算限制本發(fā)明的范圍、適用性,或配置。相反,隨后的對(duì)示例性實(shí)施例的描述將為那些熟悉本領(lǐng)域技術(shù)人員提供用于實(shí)現(xiàn)ー個(gè)或多個(gè)示例性實(shí)施例的支持性描述,可以理解,在不偏離如在所附權(quán)利要求書(shū)中闡述的本發(fā)明的精神和范圍的情況下,可以對(duì)元件的功能和布局進(jìn)行各種更改。
[0017]在下面的描述中給出了具體細(xì)節(jié)以提供對(duì)各實(shí)施例的全面的理解。然而,本領(lǐng)域技術(shù)人員將理解,這些實(shí)施例也可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)施。例如,本發(fā)明中的電路、系統(tǒng)、網(wǎng)絡(luò)、進(jìn)程,及其他元素可以以框圖形式作為組件示出,以便不致以不必要的細(xì)節(jié)使各實(shí)施例模糊。在其他情況下,已知的電路、進(jìn)程、算法、結(jié)構(gòu),以及技術(shù)可以在沒(méi)有不必要的細(xì)節(jié)的情況下被示出,以便避免使各實(shí)施例模糊。
[0018]此外,還要注意,各個(gè)實(shí)施例可以描述為被描繪成流圖、流程圖、數(shù)據(jù)流程圖、結(jié)構(gòu)圖或框圖的進(jìn)程。雖然流圖可以將操作描述為順序進(jìn)程,但是,許多操作可以并行地或同時(shí)執(zhí)行。另外,還可以重新排列操作的順序。當(dāng)其操作完成時(shí),進(jìn)程可以結(jié)束,但是,可以具有圖中未討論或包括的額外的步驟。此外,并非任何具體描述的進(jìn)程中的所有的操作都可以在所有實(shí)施例中出現(xiàn)。進(jìn)程可以對(duì)應(yīng)于方法、函數(shù)、進(jìn)程、子例程、子程序等等。當(dāng)進(jìn)程對(duì)應(yīng)于函數(shù)時(shí),其結(jié)束對(duì)應(yīng)于函數(shù)返回到調(diào)用函數(shù)或主函數(shù)。
[0019]術(shù)語(yǔ)“機(jī)器可讀取的介質(zhì)”包括但不僅限干:便攜式或固定存儲(chǔ)器設(shè)備、光存儲(chǔ)設(shè)備、無(wú)線信道,以及能夠存儲(chǔ)、包含或攜帯指令和/或數(shù)據(jù)的各種其他介質(zhì)。代碼段或機(jī)器可執(zhí)行指令可以表示過(guò)程、函數(shù)、子程序、程序、例程、子例程、模塊、軟件程序包、類(lèi),或指令、數(shù)據(jù)結(jié)構(gòu),或程序語(yǔ)句的任何組合。代碼段可以通過(guò)傳遞和/或接收信息、數(shù)據(jù)、自變量、參數(shù)或存儲(chǔ)器內(nèi)容,耦合到另一代碼段或硬件電路??梢酝ㄟ^(guò)包括存儲(chǔ)器共享、消息傳遞、令牌傳遞、網(wǎng)絡(luò)傳輸?shù)鹊鹊娜魏魏线m的手段,傳遞、轉(zhuǎn)發(fā)或傳輸信息、自變量、參數(shù)、數(shù)據(jù)
坐坐寸寸O
[0020]此外,本發(fā)明的各實(shí)施例還可以至少部分地人工地或自動(dòng)地來(lái)實(shí)現(xiàn)。手動(dòng)或自動(dòng)實(shí)現(xiàn)可以通過(guò)使用機(jī)器、硬件、軟件、固件、中間件、微代碼、硬件描述語(yǔ)言,或其任何組合來(lái)執(zhí)行,或至少協(xié)助。當(dāng)以軟件、固件、中間件或微代碼來(lái)實(shí)現(xiàn)時(shí),執(zhí)行必要的任務(wù)的程序代碼或代碼段可以存儲(chǔ)在機(jī)器可讀的介質(zhì)中。處理器可以執(zhí)行必要的任務(wù)。
[0021]本發(fā)明的各方面涉及元組的某些列值(或派生值)經(jīng)常在兩個(gè)連續(xù)的時(shí)間實(shí)例(SP,t和t+1)之間變化而其他列值不變化的概念。可能有應(yīng)用關(guān)注只對(duì)列的子集的更改的情況;然而,ISTREAM當(dāng)前考慮所有列,甚至在所關(guān)注的列的值(或派生值)不變化的情況下,也報(bào)告元組。如此,可以輸出數(shù)據(jù)中的與應(yīng)用無(wú)關(guān)的變化。為此,本發(fā)明的各方面提供不僅考慮列的子集,而且還包括諸如NOT IN語(yǔ)義之類(lèi)的新的語(yǔ)義的ISTREAM。查詢可能十分復(fù)雜,并且由于ISTREAM實(shí)際處理從查詢的執(zhí)行實(shí)體化的關(guān)系,本發(fā)明的各方面還可以將如前所述的邏輯應(yīng)用到SELECT列表表達(dá)式,并將它應(yīng)用到其子集。對(duì)帶有NOT IN語(yǔ)義的列的子集應(yīng)用ISTREAM操作符提供了以簡(jiǎn)潔的方式來(lái)表達(dá)輸出的方便的句法符號(hào)。
[0022]現(xiàn)在,考慮下列查詢:
[0023]CREATE QUERY qOAS
[0024]ISTREAM
[0025](
[0026]SELECT*FR0M S[RANGE1NAN0SEC0NDS]
[0027])
[0028]DIFFERENCE USING (cl, c2)
[0029]這實(shí)際可能導(dǎo)致非確定性的輸出(即,挑選哪ー個(gè)元組(因而c3的列值)和不考慮哪ー個(gè))。另ー替代方案是只允許基于在USING子句中指定的列的列或表達(dá)式:
[0030]CREATE QUERY qOAS
[0031]ISTREAM
[0032](
[0033]SELECT cl, c2, func(cl, c2)FROM tkdatal_S[RANGE1NAN0SEC0NDS]
[0034])
[0035]DIFFERENCE USING (cl, c2)
[0036]或者
[0037]CREATE QUERY tkdatal_qlAS
[0038]ISTREAM
[0039](
[0040]SELECT func(cl, c2)FROM tkdatal_S[RANGE1NAN0SEC0NDS]
[0041])
[0042]DIFFERENCE USING (cl, c2)
[0043]然而,這些表達(dá)式限制性太強(qiáng),沒(méi)有用。因此,本發(fā)明的各方面可以使用NOT IN(這與MINUS語(yǔ)義相同,只是MINUS嚴(yán)格地對(duì)集合起作用,而本發(fā)明允許多重集/袋),這恰好導(dǎo)致所需行為,而沒(méi)有如前所述的任何ー個(gè)限制。相應(yīng)地,利用給定語(yǔ)義,對(duì)于下列查詢和給定輸入流,輸出可以如下所示:
【權(quán)利要求】
1.一種處理流式數(shù)據(jù)的方法,所述方法包括: 初始化數(shù)據(jù)流; 設(shè)置要應(yīng)用于所述數(shù)據(jù)流的時(shí)間間隔,其中,所述時(shí)間間隔包括用于分析所述數(shù)據(jù)流內(nèi)的數(shù)據(jù)的窗ロ; 標(biāo)識(shí)所述數(shù)據(jù)流內(nèi)的ー個(gè)或多個(gè)列; 指定所述列中的ー個(gè)或多個(gè)以監(jiān)測(cè)在所述時(shí)間間隔內(nèi)所述數(shù)據(jù)內(nèi)的差異; 在所述時(shí)間間隔內(nèi)監(jiān)測(cè)所指定的列; 判斷來(lái)自所指定的列中的至少ー個(gè)的至少ー個(gè)值已經(jīng)變化;以及 響應(yīng)于至少ー個(gè)值變化,從所指定的列輸出變化的值。
2.如權(quán)利要求1所述的處理流式數(shù)據(jù)的方法,進(jìn)ー步包括在下一時(shí)間間隔內(nèi)繼續(xù)從所述數(shù)據(jù)流接收數(shù)據(jù)。
3.如權(quán)利要求2所述的處理流式數(shù)據(jù)的方法,其中,所述從所述數(shù)據(jù)流接收數(shù)據(jù)基本上是實(shí)時(shí)的。
4.如權(quán)利要求1所述的處理流式數(shù)據(jù)的方法,其中,所述ー個(gè)或多個(gè)列被包括在ー個(gè)或多個(gè)表中,所述ー個(gè)或多個(gè)表是從所述時(shí)間間隔內(nèi)的所述數(shù)據(jù)流構(gòu)建的。
5.如權(quán)利要求1所述的處理流式數(shù)據(jù)方法,其中,所述輸出只包括所述數(shù)據(jù)流內(nèi)的變化。
6.如權(quán)利要求1所述的處理 流式數(shù)據(jù)的方法,其中,對(duì)所述流式數(shù)據(jù)的處理包括復(fù)雜事件處理CEP。
7.如權(quán)利要求1所述的處理流式數(shù)據(jù)的方法,其中,所述輸出包括所述流式數(shù)據(jù)內(nèi)的在所述時(shí)間間隔內(nèi)已經(jīng)變化的數(shù)據(jù)的子集。
8.一種在其上存儲(chǔ)了指令集的用于處理流式數(shù)據(jù)的非瞬時(shí)計(jì)算機(jī)可讀介質(zhì),該指令集當(dāng)由計(jì)算機(jī)執(zhí)行時(shí),使所述計(jì)算機(jī): 通過(guò)應(yīng)用istream操作符將關(guān)系數(shù)據(jù)轉(zhuǎn)換為流式數(shù)據(jù); 確定由限制約束應(yīng)用的所述流式數(shù)據(jù)內(nèi)的ー個(gè)或多個(gè)段,其中,所述限制約束指定段邊界; 從數(shù)據(jù)流標(biāo)識(shí)列; 選擇所確定的段上的所標(biāo)識(shí)的列; 選擇列以監(jiān)測(cè)所確定的段上的所述列內(nèi)的數(shù)據(jù)的變化; 對(duì)被應(yīng)用于所監(jiān)測(cè)的列的所確定的段上的所選擇的列執(zhí)行多重集istream操作;以及 從所述多重集istream操作輸出所產(chǎn)生的數(shù)據(jù)。
9.如權(quán)利要求8所述的用于處理流式數(shù)據(jù)的非瞬時(shí)計(jì)算機(jī)可讀介質(zhì),其中,所述指令集當(dāng)進(jìn)ー步由所述計(jì)算機(jī)執(zhí)行時(shí),使所述計(jì)算機(jī)將所述流式數(shù)據(jù)轉(zhuǎn)換回關(guān)系數(shù)據(jù)。
10.如權(quán)利要求8所述的用于處理流式數(shù)據(jù)的非瞬時(shí)計(jì)算機(jī)可讀介質(zhì),其中,所述段邊界包括時(shí)間間隔。
11.如權(quán)利要求10所述的用于處理流式數(shù)據(jù)的非瞬時(shí)計(jì)算機(jī)可讀介質(zhì),其中,所述時(shí)間間隔包括用于分析所指定的列數(shù)據(jù)內(nèi)的變化的時(shí)間窗ロ。
12.如權(quán)利要求10所述的用于處理流式數(shù)據(jù)的非瞬時(shí)計(jì)算機(jī)可讀介質(zhì),其中,所述輸出包括所述數(shù)據(jù)流內(nèi)的在所述段內(nèi)已經(jīng)變化的數(shù)據(jù)的子集。
13.一種用于處理流式數(shù)據(jù)的系統(tǒng),所述系統(tǒng)包括: 在其上存儲(chǔ)了指令集的存儲(chǔ)器;以及 與所述存儲(chǔ)器耦合的處理器,其中,所述指令集當(dāng)由所述處理器執(zhí)行時(shí),使所述處理器: 初始化數(shù)據(jù)流; 設(shè)置要應(yīng)用于所述數(shù)據(jù)流的時(shí)間間隔,其中,所述時(shí)間間隔包括用于分析所述數(shù)據(jù)流內(nèi)的數(shù)據(jù)的窗ロ; 標(biāo)識(shí)所述數(shù)據(jù)流內(nèi)的ー個(gè)或多個(gè)列; 指定所述列中的ー個(gè)或多個(gè)以監(jiān)測(cè)在所述時(shí)間間隔內(nèi)所述數(shù)據(jù)內(nèi)的差異; 在所述時(shí)間間隔內(nèi)監(jiān)測(cè)所指定的列; 判斷來(lái)自所指定的列中的至少ー個(gè)的至少ー個(gè)值已經(jīng)變化;以及 響應(yīng)于至少ー個(gè)值變化,從所指定的列輸出變化的值。
14.如權(quán)利要求13所述的用于處理流式數(shù)據(jù)的系統(tǒng),進(jìn)一歩包括數(shù)據(jù)庫(kù),其中,所述數(shù)據(jù)庫(kù)被配置成存儲(chǔ)所述數(shù)據(jù)流內(nèi)的數(shù)據(jù)。
15.如權(quán)利要求14所述的用于處理流式數(shù)據(jù)的系統(tǒng),其中,所述指令集進(jìn)ー步使所述處理器在下ー時(shí)間間隔內(nèi)繼續(xù)從所述數(shù)據(jù)流接收數(shù)據(jù)。
16.如權(quán)利要求15所述的用于處`理流式數(shù)據(jù)的系統(tǒng),其中,從所述數(shù)據(jù)流接收數(shù)據(jù)基本上是實(shí)時(shí)的。
17.如權(quán)利要求13所述的用于處理流式數(shù)據(jù)的系統(tǒng),其中,所述ー個(gè)或多個(gè)列被包括在ー個(gè)或多個(gè)表中,所述ー個(gè)或多個(gè)表是從所述時(shí)間間隔內(nèi)的所述數(shù)據(jù)流構(gòu)建的。
18.如權(quán)利要求13所述的用于處理流式數(shù)據(jù)的系統(tǒng),其中,所述輸出只包括在所述時(shí)間間隔內(nèi)所述數(shù)據(jù)流內(nèi)的變化。
19.如權(quán)利要求13所述的用于處理流式數(shù)據(jù)的系統(tǒng),其中,所述處理器被配置成實(shí)現(xiàn)監(jiān)測(cè)應(yīng)用,所述監(jiān)測(cè)應(yīng)用實(shí)現(xiàn)由所述處理器執(zhí)行的所述指令集。
20.如權(quán)利要求1所述用于處理流式數(shù)據(jù)的方法,其中,對(duì)所述流式數(shù)據(jù)的處理包括復(fù)雜事件處理CEP。
【文檔編號(hào)】G06F7/00GK103502930SQ201280022008
【公開(kāi)日】2014年1月8日 申請(qǐng)日期:2012年4月25日 優(yōu)先權(quán)日:2011年5月6日
【發(fā)明者】V·舒克拉, A·斯里尼瓦桑 申請(qǐng)人:甲骨文國(guó)際公司