可變持續(xù)時間非事件模式匹配的制作方法
【專利說明】
[0001] 相關(guān)申請的交叉引用
[0002] 本申請要求2013年1月15日提交的美國臨時申請No.61/752,855,"VARIABLE DURATIONNONEVENTPATTERNMATCHING"的優(yōu)先權(quán)。本申請還要求2013年3月15日提交 的美國非臨時申請No. 13/839, 288,"VARIABLEDURATIONNON-EVENTPATTERNMATCHING" 的優(yōu)先權(quán),該申請要求美國臨時申請No. 61/752, 855的優(yōu)先權(quán)。61/752, 855和13/839,288 的全部內(nèi)容通過引用包含于此。
技術(shù)領(lǐng)域
[0003] 公開的實施例涉及數(shù)據(jù)處理系統(tǒng),更具體地,涉及利用可變持續(xù)時間功能,對連續(xù) 的事件流進(jìn)行非事件模式匹配的技術(shù)。
【背景技術(shù)】
[0004] 在傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)被保存在通常呈表格形式的一個或多個數(shù)據(jù)庫中。 隨后利用諸如SQL之類的數(shù)據(jù)管理語言,查詢和處理保存的數(shù)據(jù)。例如,可以定義和執(zhí)行 SQL查詢,以從保存在數(shù)據(jù)庫中的數(shù)據(jù)中識別有關(guān)的數(shù)據(jù)。從而對保存在數(shù)據(jù)庫中的一組有 限的數(shù)據(jù)執(zhí)行SQL查詢。此外,當(dāng)執(zhí)行SQL查詢時,對有限的數(shù)據(jù)集執(zhí)行一次SQL查詢,并 產(chǎn)生有限的靜態(tài)結(jié)果。數(shù)據(jù)庫從而最好被配備成在保存的有限數(shù)據(jù)集上進(jìn)行查詢。
[0005] 不過,許多現(xiàn)代的應(yīng)用和系統(tǒng)以連續(xù)數(shù)據(jù)或事件流(而不是有限數(shù)據(jù)集)的形式, 生成數(shù)據(jù)。這種應(yīng)用的例子包括(但不限于)傳感器數(shù)據(jù)應(yīng)用,金融報價機(jī),網(wǎng)絡(luò)性能監(jiān)測 工具(例如,網(wǎng)絡(luò)監(jiān)測和流量管理應(yīng)用),點擊流分析工具,汽車交通量監(jiān)測等。例如,溫度 傳感器可被配置成發(fā)送溫度讀數(shù)。這種應(yīng)用已導(dǎo)致對能夠處理數(shù)據(jù)流的新型應(yīng)用的需求。
[0006] 為這些類型的基于事件流的應(yīng)用管理和處理數(shù)據(jù)涉及建立具有強(qiáng)時間關(guān)注的 數(shù)據(jù)管理和查詢能力。需要一種不同類型的查詢機(jī)制,所述查詢機(jī)制包含在連續(xù)的無限 (unbounded)數(shù)據(jù)集內(nèi)的長時間查詢。盡管一些廠商現(xiàn)在提供適合于事件流處理的產(chǎn)品套 件,不過,這些產(chǎn)品仍然缺乏處理現(xiàn)今的事件處理需求所需的處理靈活性。
【發(fā)明內(nèi)容】
[0007] 公開了利用可變持續(xù)時間,對連續(xù)事件流進(jìn)行非事件模式匹配的一些實施例。實 施例可以利用各種技術(shù),例如,利用作用于事件數(shù)據(jù)流的計算機(jī)實現(xiàn)的方法,處理事件數(shù)據(jù) 流的計算裝置、系統(tǒng)或設(shè)備,保存可由一個或多個處理單元執(zhí)行的多個指令的計算機(jī)可讀 存儲器,等等實現(xiàn)的技術(shù)。
[0008] 在事件處理引擎的模式匹配功能的上下文中,非事件檢測指的是當(dāng)應(yīng)在特定時間 范圍中發(fā)生的某個事件未在該時間范圍中發(fā)生時的情形的檢測。例如,在當(dāng)事件按特定順 序發(fā)生時的情況下,非事件檢測可用于檢測其中在特定時間范圍中,按照所述順序接下來 應(yīng)該發(fā)生的特定事件在所述時間范圍內(nèi)未發(fā)生的情形。
[0009] 在基于非事件的模式匹配中,事件的到來會導(dǎo)致模式匹配候選者(有時稱為綁 定)被啟動。計算持續(xù)時間,并使之與新創(chuàng)建的綁定關(guān)聯(lián),其中所述持續(xù)時間識別在其之后 所述綁定滿期的時期。在非事件模式匹配的上下文中,例如,所述持續(xù)時間可識別應(yīng)該發(fā)生 預(yù)期的下一個事件的時間范圍。本發(fā)明的一些實施例允許所述持續(xù)時間對于不同的綁定是 可變的。
[0010] 例如,經(jīng)由事件流接收的第一事件可使第一模式匹配候選者(即,第一綁定)被啟 動。經(jīng)由相同的事件流接收的第二事件可使第二模式匹配候選者(即,第二綁定)被啟動。 按照本發(fā)明的實施例,第一綁定的持續(xù)時間可不同于第二綁定的持續(xù)時間。按照這種方式, 在非事件模式匹配的上下文中使用的不同綁定可具有與之相關(guān)的不同或可變的持續(xù)時間。
[0011] 在一些實施例中,綁定的持續(xù)時間可基于啟動所述綁定的事件的屬性的值。例如, 持續(xù)時間可用數(shù)學(xué)表達(dá)式表示,其中所述表達(dá)式基于導(dǎo)致所述綁定被啟動的事件的一個或 多個事件屬性值。由于對不同的事件來說,屬性的值可不同,因此對于由不同事件啟動的綁 定計算的持續(xù)時間可不同。這在進(jìn)行非事件模式匹配方面提供更大的靈活性,使處理能夠 適用于幾種不同的現(xiàn)實生活情形,在所有綁定都具有固定或不變的持續(xù)時間的過去,這是 不可能的。
[0012] 在一些實施例中,可經(jīng)由事件流,接收第一事件和第二事件。第一事件可導(dǎo)致對于 模式,啟動第一模式匹配候選者。第二事件可導(dǎo)致對于所述模式,啟動第二模式匹配候選 者??蓪τ诘谝荒J狡ヅ浜蜻x者,計算第一持續(xù)時間,對于第二模式匹配候選者,計算第二 持續(xù)時間,其中第二持續(xù)時間不同于第一持續(xù)時間。按照這種方式,不同的事件可具有與之 關(guān)聯(lián)的不同的持續(xù)時間。
[0013] 在某個實施例中,可根據(jù)事件的屬性的值,計算在第一和第二事件啟動的模式匹 配的持續(xù)時間。例如,可確定第一事件的第一屬性的第一值,可確定第二事件的第一屬性的 第二值,第二值不同于第一值。隨后可利用第一值計算歸因于第一事件而被啟動的模式匹 配的持續(xù)時間,可利用第二值計算因第二事件而被啟動的模式匹配的持續(xù)時間。
[0014] 在一些實施例中,可根據(jù)表達(dá)式(例如,算術(shù)表達(dá)式)的評估,計算在第一和第二 事件啟動的模式匹配的持續(xù)時間。例如,可確定第一事件的第一屬性的第一值,可確定第二 事件的第一屬性的第二值,第二值不同于第一值。隨后可利用第一值評估算術(shù)表達(dá)式,以計 算由第一事件產(chǎn)生的模式匹配的持續(xù)時間,可利用第二值評估所述算術(shù)表達(dá)式,以計算由 第二事件產(chǎn)生的模式匹配的第二持續(xù)時間。
[0015] 在一些實施例中,在第一模式匹配候選者的第一持續(xù)時間過去之后,可判定第一 模式匹配候選者是否匹配模式。當(dāng)判定第一模式匹配候選者匹配模式時,可輸出表示與第 一模式匹配候選者對應(yīng)的非事件發(fā)生的信息。
[0016] 在一些實施例中,可根據(jù)與第一事件相關(guān)的事件時間戳,和計算的第一持續(xù)時間, 對于第一模式匹配候選者確定滿期時間。隨后可使該滿期時間與第一模式匹配候選者關(guān) 聯(lián)。可根據(jù)與第二事件相關(guān)的事件時間戳,和計算的第二持續(xù)時間,對于第二模式匹配候選 者確定滿期時間。隨后可使該滿期時間與第二模式匹配候選者關(guān)聯(lián)。在一個實施例中,通 過相加對于模式匹配候選者計算的持續(xù)時間,和與啟動所述模式匹配候選者的事件相關(guān)的 事件時間戳,確定所述模式匹配候選者的滿期時間。
[0017] 在一些實施例中,在確定了滿期時間,并使之與模式匹配候選者關(guān)聯(lián)之后,在與所 述模式匹配候選者相關(guān)的滿期時間之際或之后,可判定模式匹配候選者是否匹配模式。當(dāng) 判定模式匹配候選者匹配模式時,可輸出表示與模式匹配候選者對應(yīng)的非事件發(fā)生的信 息。
[0018] 按照本公開的一個方面,提供一種計算設(shè)備。所述計算設(shè)備包括第一確定單元,所 述第一確定單元被配置成確定計算設(shè)備經(jīng)由事件流接收的第一事件導(dǎo)致對于模式啟動第 一模式匹配候選者,第一計算單元,所述第一計算單元被配置成對于第一模式匹配候選者, 計算第一持續(xù)時間,第二確定單元,所述第二確定單元被配置成確定經(jīng)由事件流接收的第 二事件導(dǎo)致對于所述模式啟動第二模式匹配候選者,和第二計算單元,所述第二計算單元 被配置成對于第二模式匹配候選者,計算第二持續(xù)時間。第二持續(xù)時間不同于第一持續(xù)時 間。
[0019] 在一些實施例中,第一確定單元被配置成確定第一事件的屬性的第一值。第一計 算單元被配置成利用第一值計算第一持續(xù)時間。第二確定單元被配置成確定第二事件的屬 性的第二值。第二值不同于第一值。第二計算單元被配置成利用第二值計算第二持續(xù)時間。
[0020] 在一些實施例中,計算設(shè)備還包括第一評估單元和第二評估單元。第一確定單元 被配置成確定第一事件的屬性的第一值。第一評估單元被配置成利用第一值評估表達(dá)式, 以計算第一持續(xù)時間。第二確定單元被配置成確定第二事件的屬性的第二值。第二值不同 于第一值。第二評估單元被配置成利用第二值評估表達(dá)式,以計算第二持續(xù)時間。
[0021] 在一些實施例中,計算設(shè)備還包括輸出單元。第一確定單元被配置成在第一事件 的第一持續(xù)時間過去之后,判定第一模式匹配候選者是否匹配模式。當(dāng)判定第一模式匹配 候選者匹配模式時,輸出單元被配置成輸出表示與第一模式匹配候選者對應(yīng)的非事件發(fā)生 的信息。
[0022] 在一些實施例中,計算設(shè)備還包括第一關(guān)聯(lián)單元和第二關(guān)聯(lián)單元。第一確定單元 被配置成根據(jù)與第一事件相關(guān)的第一時間,和第一持續(xù)時間,對于第一模式匹配候選者確 定第一滿期時間。第一關(guān)聯(lián)單元被配置成使第一滿期時間與第一模式匹配候選者關(guān)聯(lián)。第 二確定單元被配置成根據(jù)與第二事件相關(guān)的第二時間,和第二持續(xù)時間,對于第二模式匹 配候選者確定第二滿期時間。第二關(guān)聯(lián)單元被配置成使第二滿期時間與第二模式匹配候選 者關(guān)聯(lián)。
[0023] 在一些實施例中,第一確定單元被配置成通過相加第一持續(xù)時間和與第一事件相 關(guān)的第一時間,確定第一滿期時間。第二確定單元被配置成通過相加第二持續(xù)時間和與第 二事件相關(guān)的第二時間,確定第二滿期時間。
[0024] 在一些實施例中,計算設(shè)備還包括輸出單元。第一確定單元被配置成在與第一模 式匹配候選者相關(guān)的第一滿期時間之際或之后,判定第一模式匹配候選者是否匹配模式。 當(dāng)判定第一模式匹配候選者匹配模式時,輸出單元被配置成輸出表示與第一模式匹配候選 者對應(yīng)的非事件發(fā)生的信息。
[0025] 按照本公開的一個方面,可提供一種系統(tǒng)或設(shè)備。所述系統(tǒng)或設(shè)備可包括:確定計 算設(shè)備經(jīng)由事件流接收的第一事件導(dǎo)致對于模式啟動第一模式匹配候選者的裝置;對于第 一模式匹配候選者,計算第一持續(xù)時間的裝置;確定經(jīng)由事件流接收的第二事件導(dǎo)致對于 所述模式啟動第二模式匹配候選者的裝置;和對于第二模式匹配候選者,計算第二持續(xù)時 間的裝置,第二持續(xù)時間不同于第一持續(xù)時間。
[0026] 在一些實施例中,第一事件和第二事件包括屬性。計算第一持續(xù)時間的裝置包括: 確定第一事件的屬性的第一值的裝置;和利用第一值計算第一持續(xù)時間的裝置。計算第二 持續(xù)時間的裝置包括:確定第二事件的屬性的第二值的裝置,第二值不同于第一值;和利 用第二值計算第二持續(xù)時間的裝置。
[0027] 在一些實施例中,第一事件和第二事件包括屬性。計算第一持續(xù)時間的裝置包括: 確定第一事件的屬性的第一值的裝置;和利用第一值評估表達(dá)式,以計算第一持續(xù)時間的 裝置。計算第二持續(xù)時間的裝置包括:確定第二事件的屬性的第二值的裝置,第二值不同于 第一值;和利用第二值評估表達(dá)式,以計算第二持續(xù)時間的裝置。
[0028] 在一些實施例中,系統(tǒng)或設(shè)備還包括:在第一事件的第一持續(xù)時間過去之后,判定 第一模式匹配候選者是否匹配模式的裝置;和當(dāng)判定第一模式匹配候選者匹配模式時,輸 出表示與第一模式匹配候選者對應(yīng)的非事件發(fā)生的信息的裝置。
[0029] 在一些實施例中,系統(tǒng)或設(shè)備還包括:根據(jù)與第一事件相關(guān)的第一時間,和第一持 續(xù)時間,對于第一模式匹配候選者確定第一滿期時間的裝置;使第一滿期時間與第一模式 匹配候選者關(guān)聯(lián)的裝置;根據(jù)與第二事件相關(guān)的第二時間,和第二持續(xù)時間,對于第二模式 匹配候選者確定第二滿期時間的裝置;和使第二滿期時間與第二模式匹配候選者關(guān)聯(lián)的裝 置。
[0030] 在一些實施例中,系統(tǒng)或設(shè)備還包括:在與第一模式匹配候選者相關(guān)的第一滿期 時間之際或之后,判定第一模式匹配候選者是否匹配模式的裝置;和當(dāng)判定第一模式匹配 候選者匹配模式時,輸出表示與第一模式匹配候選者對應(yīng)的非事件發(fā)生的信息的裝置。
【附圖說明】
[0031]圖1是可具體體現(xiàn)本發(fā)明的實施例的事件處理系統(tǒng)的簡化高級示圖;
[0032] 圖2是描述按照本發(fā)明的實施例,當(dāng)收到事件時進(jìn)行的處理的簡化流程圖;
[0033] 圖3是描述按照本發(fā)明的實施例,當(dāng)收到關(guān)于現(xiàn)有綁定的事件時進(jìn)行的處理的簡 化流程圖;
[0034] 圖4描述按照本公開的實施例,可用于利用可變持續(xù)時間窗口,實現(xiàn)非事件檢測 的模塊和數(shù)據(jù)結(jié)構(gòu);
[0035] 圖5描述按照本發(fā)明的實施例,當(dāng)指定ALLMATCHES語句時會發(fā)生的可能情形;
[0036] 圖6描述按照本發(fā)明的實施例,當(dāng)指定分區(qū)和SKIPPASTLASTROW語句時會發(fā)生 的可能情形;
[0037]圖7是圖解說明按照本發(fā)明的實施例,可使用的系統(tǒng)環(huán)境的組件的簡化方框圖;
[0038] 圖8是按照本發(fā)明的一些實施例,可使用的計算機(jī)系統(tǒng)的簡化方框圖;
[0039] 圖9是按照本發(fā)明的一些實施例,可使用的計算設(shè)備的簡化方框圖。
【具體實施方式】
[0040] 在下面的說明中,為了解釋起見,記載了具體細(xì)節(jié),以便透徹理解本發(fā)明的實施 例。然而,顯然可在沒有這些具體細(xì)節(jié)的情況下實踐本發(fā)明。附圖和說明并不是限制性的。
[0041] 公開了利用可變持續(xù)時間,對連續(xù)的事件流進(jìn)行非事件模式匹配的一些實施例。
[0042] 在事件處理引擎的模式匹配功能的上下文中,非事件檢測指的是當(dāng)應(yīng)在特定時間 范圍中發(fā)生的某個事件未在該時間范圍中發(fā)生時的情形的檢測。例如,在當(dāng)事件按特定順 序發(fā)生時的情況下,非事件檢測可用于檢測其中在特定時間范圍中,按照所述順序接下來 應(yīng)該發(fā)生的特定事件在所述時間范圍內(nèi)未發(fā)生的情形。
[0043]在基于事件的模式匹配中,事件的到來會導(dǎo)致模式匹配候選者(有時稱為綁定) 被啟動。計算持續(xù)時間,并使之與新創(chuàng)建的綁定關(guān)聯(lián),其中所述持續(xù)時間識別在其之后所述 綁定滿期的一段時間。在非事件模式匹配的上下文中,例如,所述持續(xù)時間可識別應(yīng)該發(fā)生 預(yù)期的下一個事件的時間范圍。
[0044]過去,與歸因于模式匹配而啟動的各個綁定相關(guān)的持續(xù)時間總是不變或者固定 的。例如,用于指定綁定的持續(xù)時間的DURATION語句僅僅取不變或固定值作為參數(shù),例如 "DURATION10"。利用這種語句,每次新的模式匹配綁定啟動時,該綁定的持續(xù)時間總是被 設(shè)定為10個時間單位(10秒),并且對所有綁定來說都相同。這大大限制了利用非事件模 式匹配模擬現(xiàn)實生活情形的能力。
[0045] 本發(fā)明的一些實施例提供允許與綁定相關(guān)的持續(xù)時間對不同綁定來說可變的所 需靈活性。例如,經(jīng)由事件流接收的第一事件可導(dǎo)致第一模式匹配候選者(即,第一綁定) 被啟動,經(jīng)由事件流接收的第二事件可導(dǎo)致第二模式匹配候選者(即,第二綁定)被啟動。 按照本發(fā)明的一些實施例,第一綁定的持續(xù)時間不同于第二綁定的持續(xù)時間。按照這種方 式,一個綁定的持續(xù)時間可不同于另一個綁定的持續(xù)時間。在非事件模式匹配的上下文中 使用的不同綁定從而可具有與之相關(guān)的不同或可變的持續(xù)時間。
[0046] 在一些實施例中,綁定的持續(xù)時間可基于啟動所述綁定的事件的屬性的值。例如, 持續(xù)時間可用數(shù)學(xué)表達(dá)式表示,其中所述表達(dá)式基于導(dǎo)致所述綁定被啟動的事件的一個或 多個事件屬性值。由于對不同事件來說,屬性的值可不同,因此對于由不同事件啟動的綁定 計算的持續(xù)時間可不同。這在進(jìn)行非事件模式匹配方面提供更大的靈活性,使處理能夠適 用于幾種不同的現(xiàn)實生活情形,在所有綁定都具有固定或不變的持續(xù)時間的過去,這是不 可能的。
[0047] 如上所述,本發(fā)明的實施例可適用于事件流(也稱為連續(xù)數(shù)據(jù)流)的處理。連續(xù) 數(shù)據(jù)流或事件流(或事件數(shù)據(jù)流)是無明確結(jié)尾的在本質(zhì)上連續(xù)或無限的一連串?dāng)?shù)據(jù)或事 件。邏輯上,事件或數(shù)據(jù)流是一連串的數(shù)據(jù)元素(也稱為事件),每個數(shù)據(jù)元件具有相關(guān)的 時間戳。連續(xù)事件流可被邏輯地表示成一包或一組元素(s,T),其中"s"表示數(shù)據(jù)部分,"T" 在時間域中。"s"部分通常被稱為元組或事件。事件流從而是一連串帶時間戳記的元組或 事件。
[0048] 在一些實施例中,與流中的事件相關(guān)的時間戳可等同于時鐘時間。不過,在其它實 施例中,與事件流中的事件相關(guān)的時間可由應(yīng)用域定義,并可不對應(yīng)于時鐘時間,而是改為 用序列號表示。從而,與事件流中的事件相關(guān)的時間信息可用數(shù)字、時間戳、或者表示時序 概念的任何其它信息表示。對接收輸入的事件流的系統(tǒng)來說,事件按照遞增的時間戳的順 序到達(dá)所述系統(tǒng)。具有相同時間戳的事件可不止一個。
[0049] 在一些實施例中,事件流中的事件可表示某個世俗事件的發(fā)生(例如,當(dāng)溫度傳 感器把值改變成新的值時,當(dāng)股票代碼的價格變動時),與事件相關(guān)的時間信息可指示由數(shù) 據(jù)流事件表示的世俗事件發(fā)生的時間。
[0050] 對于經(jīng)由事件流接收的事件,與事件相關(guān)的時間信息用于確保事件流中的事件按 照遞增的時間戳值的順序到達(dá)。這使得能夠根據(jù)其相關(guān)的時間信息,排序和處理在事件流 中接收的事件。為了能夠?qū)崿F(xiàn)這種排序,按稍后生成的事件具有晚于較早生成的事件的時 間戳的非遞減方式,關(guān)聯(lián)時間戳和事件流中的事件。再例如,如果利用序列號作為時間信 息,那么與稍后生成的事件相關(guān)的序列號大于與較早生成的事件相關(guān)的序列號。通常按照 利用相關(guān)的時間信息施加于事件的順序,處理屬于相同事件流的事件,較早的事件在稍后 的事件之前被處理。在一些實施例中,多個事件可與相同的時間戳或序列號關(guān)聯(lián),例如,當(dāng) 在相同時間發(fā)生由數(shù)據(jù)流事件表示的世俗事件時。在這些情況下,按照接收順序,處理事 件。
[0051] 與事件流中的事件關(guān)聯(lián)的時間信息(時間戳)可由所述流的來源設(shè)定,或者可由 接收所述流的系統(tǒng)設(shè)定。例如,在一些實施例中,可在接收事件流的系統(tǒng)上維持心跳,與事 件相關(guān)的時間可以基于利用心跳測量的事件到達(dá)系統(tǒng)的時間。事件流中的兩個事件可能具 有相同的時間信息。注意,盡管時間戳排序要求特定于一個事件流,不過,不同流的事件可 被任意交織。
[0052] 事件流具有相關(guān)的方案(schema) "S",所述方案包含時間信息和一組一個或 多個指定的屬性。屬于特定事件流的所有事件遵守與該特定事件流相關(guān)的方案。從而, 對于事件流(s,T),事件流可具有如(<time_stamp>,〈attribute(s)>)的方案"S",其中 〈attributes〉