跨多個(gè)輸入數(shù)據(jù)流的樣式匹配的制作方法
【專利摘要】公開(kāi)了用于跨與一個(gè)或多個(gè)應(yīng)用相關(guān)的多個(gè)輸入數(shù)據(jù)流檢測(cè)樣式的方法。該方法包括接收多個(gè)輸入數(shù)據(jù)流并為輸入數(shù)據(jù)流的一個(gè)或多個(gè)屬性生成一個(gè)或多個(gè)動(dòng)態(tài)數(shù)據(jù)類型。在一些實(shí)施例中,該方法可以包括基于動(dòng)態(tài)數(shù)據(jù)類型組合輸入數(shù)據(jù)流以生成組合輸入數(shù)據(jù)流并且處理對(duì)組合數(shù)據(jù)流的連續(xù)查詢以檢測(cè)樣式。
【專利說(shuō)明】跨多個(gè)輸入數(shù)據(jù)流的樣式匹配
[0001] 對(duì)相關(guān)申請(qǐng)的交叉引用
[0002] 本申請(qǐng)要求于2014年12月3日提交的、標(biāo)題為"PATTERN MATCHING ACROSS MULTIPLE INPUT DATA STREAMS"的美國(guó)專利申請(qǐng)14/559,550和于2013年12月5日提交的、 標(biāo)題為"PATT邸N MATCHING ACROSS MULTIPLE INPUT DATA STREAMS"的美國(guó)臨時(shí)專利申請(qǐng) No.61/912,344的優(yōu)先權(quán),其全部?jī)?nèi)容通過(guò)引用被結(jié)合于此,就好像在本文被完全闡述一 樣。
【背景技術(shù)】
[0003] 在傳統(tǒng)的數(shù)據(jù)庫(kù)技術(shù)中,數(shù)據(jù)通常W表的形式存儲(chǔ)在一個(gè)或多個(gè)數(shù)據(jù)庫(kù)中。然后, 所存儲(chǔ)的數(shù)據(jù)利用諸如結(jié)構(gòu)化查詢語(yǔ)言(S化)的數(shù)據(jù)管理語(yǔ)言被查詢和操縱。例如,S化查 詢可被定義并執(zhí)行,W便從存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)識(shí)別相關(guān)的數(shù)據(jù)。因此,S化查詢對(duì)存儲(chǔ) 在數(shù)據(jù)庫(kù)中的有限數(shù)據(jù)集執(zhí)行。另外,當(dāng)SQL查詢被執(zhí)行時(shí),它對(duì)有限數(shù)據(jù)集執(zhí)行一次并且 產(chǎn)生有限的靜態(tài)結(jié)果。因此,數(shù)據(jù)庫(kù)最佳配備為在有限存儲(chǔ)的數(shù)據(jù)集上運(yùn)行。
[0004] 但是,眾多的現(xiàn)代應(yīng)用和系統(tǒng)W連續(xù)數(shù)據(jù)或事件流而不是有限數(shù)據(jù)集的形式生成 數(shù)據(jù)。運(yùn)種應(yīng)用的例子包括但不限于傳感器數(shù)據(jù)應(yīng)用、金融行情(financial tickers)、網(wǎng) 絡(luò)性能測(cè)量工具(例如,網(wǎng)絡(luò)監(jiān)視和流量管理應(yīng)用)、點(diǎn)擊流分析工具、汽車交通監(jiān)視,等等。 運(yùn)種應(yīng)用已經(jīng)引起了對(duì)可W處理數(shù)據(jù)流的新型應(yīng)用的需求。例如,溫度傳感器可被配置為 持續(xù)地發(fā)出溫度讀數(shù)。
[0005] 管理和處理用于運(yùn)些類型的基于事件流的應(yīng)用的數(shù)據(jù)設(shè)及利用強(qiáng)時(shí)間焦點(diǎn)建立 數(shù)據(jù)管理和查詢能力。需要包括對(duì)連續(xù)無(wú)界限數(shù)據(jù)集進(jìn)行長(zhǎng)期運(yùn)行查詢的不同種類的查詢 機(jī)制。雖然一些廠商現(xiàn)在提供針對(duì)事件流處理的產(chǎn)品套件,但是運(yùn)些產(chǎn)品供應(yīng)仍然缺乏處 理如今的事件處理需求所需要的處理靈活性。
【發(fā)明內(nèi)容】
[0006] 在某些實(shí)施例中,提供了用于跨與一個(gè)或多個(gè)應(yīng)用相關(guān)的多個(gè)輸入數(shù)據(jù)流檢測(cè)樣 式(pattern)的技術(shù)(例如,方法、系統(tǒng)、存儲(chǔ)可由一個(gè)或多個(gè)處理器執(zhí)行的代碼或指令的非 暫態(tài)計(jì)算機(jī)可讀介質(zhì))。
[0007] 根據(jù)一種實(shí)施例,公開(kāi)了用于跨與一個(gè)或多個(gè)應(yīng)用相關(guān)的多個(gè)輸入數(shù)據(jù)流檢測(cè)樣 式的方法。該方法包括接收包括第一輸入數(shù)據(jù)流和第二輸入數(shù)據(jù)流的多個(gè)輸入數(shù)據(jù)流。該 方法還包括生成用于第一輸入數(shù)據(jù)流的第一動(dòng)態(tài)數(shù)據(jù)類型并生成用于第二輸入數(shù)據(jù)流的 第二動(dòng)態(tài)數(shù)據(jù)類型。在一些實(shí)施例中,第一動(dòng)態(tài)數(shù)據(jù)類型可W通過(guò)識(shí)別第一輸入數(shù)據(jù)流的 第一屬性不存在于第二數(shù)據(jù)流中而生成。于是,第一動(dòng)態(tài)數(shù)據(jù)類型是為第一屬性生成的。第 二動(dòng)態(tài)數(shù)據(jù)類型可W通過(guò)識(shí)別第二輸入數(shù)據(jù)流的第二屬性不存在于第一數(shù)據(jù)流中而生成。 于是,第二動(dòng)態(tài)數(shù)據(jù)類型是為第二屬性生成的。在實(shí)施例中,第一動(dòng)態(tài)數(shù)據(jù)類型可被配置為 存儲(chǔ)對(duì)應(yīng)于第一輸入數(shù)據(jù)流的第一屬性的第一數(shù)據(jù)值,并且第二動(dòng)態(tài)數(shù)據(jù)類型可被配置為 存儲(chǔ)對(duì)應(yīng)于第二輸入數(shù)據(jù)流的第二屬性的第二數(shù)據(jù)值。
[0008] 在一些實(shí)施例中,該方法可W包括基于第一動(dòng)態(tài)數(shù)據(jù)類型和第二動(dòng)態(tài)數(shù)據(jù)類型組 合第一輸入數(shù)據(jù)流和第二輸入數(shù)據(jù)流,W生成組合數(shù)據(jù)流。在實(shí)施例中,該方法然后可W包 括處理對(duì)組合數(shù)據(jù)流的連續(xù)查詢,W檢測(cè)樣式。在一些實(shí)施例中,"樣式"可W構(gòu)成第一數(shù)據(jù) 流中第一事件的發(fā)生,然后是第二數(shù)據(jù)流中另一事件的發(fā)生。
[0009] 根據(jù)另一實(shí)施例,公開(kāi)了用于跨與一個(gè)或多個(gè)應(yīng)用相關(guān)的多個(gè)輸入數(shù)據(jù)流檢測(cè)樣 式的系統(tǒng)。該系統(tǒng)包括用于存儲(chǔ)多條指令的存儲(chǔ)器和被配置為訪問(wèn)該存儲(chǔ)器的處理器。在 實(shí)施例中,處理器被配置為執(zhí)行接收識(shí)別第一輸入數(shù)據(jù)流和第二輸入數(shù)據(jù)流的連續(xù)查詢的 指令。處理器還被配置為執(zhí)行識(shí)別用于第一輸入數(shù)據(jù)流的第一屬性的第一動(dòng)態(tài)數(shù)據(jù)類型和 用于第二輸入數(shù)據(jù)流的第二屬性的第二動(dòng)態(tài)數(shù)據(jù)類型的指令。在一些實(shí)施例中,處理器被 配置為基于第一動(dòng)態(tài)數(shù)據(jù)類型和第二動(dòng)態(tài)數(shù)據(jù)類型生成組合數(shù)據(jù)流并執(zhí)行對(duì)組合數(shù)據(jù)流 的連續(xù)查詢W檢測(cè)樣式。
[0010] 根據(jù)一些實(shí)施例,公開(kāi)了存儲(chǔ)可由一個(gè)或多個(gè)處理器執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的 非暫態(tài)計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可執(zhí)行指令包括使一個(gè)或多個(gè)處理器接收包括至少第一輸 入數(shù)據(jù)流和第二輸入數(shù)據(jù)流的多個(gè)輸入數(shù)據(jù)流的指令。計(jì)算機(jī)可執(zhí)行指令還包括使一個(gè)或 多個(gè)處理器生成用于第一輸入數(shù)據(jù)流的第一動(dòng)態(tài)數(shù)據(jù)類型和用于第二輸入數(shù)據(jù)流的第二 動(dòng)態(tài)數(shù)據(jù)類型的指令。在一些實(shí)施例中,計(jì)算機(jī)可執(zhí)行指令包括基于第一動(dòng)態(tài)數(shù)據(jù)類型和 第二動(dòng)態(tài)數(shù)據(jù)類型組合第一輸入數(shù)據(jù)流和第二輸入數(shù)據(jù)流W生成組合數(shù)據(jù)流并且處理對(duì) 組合數(shù)據(jù)流的連續(xù)查詢W檢測(cè)樣式的指令。
[0011] 根據(jù)一些實(shí)施例,公開(kāi)了一種方法,包括:接收包括至少第一輸入數(shù)據(jù)流和第二輸 入數(shù)據(jù)流的多個(gè)輸入數(shù)據(jù)流;生成用于第一輸入數(shù)據(jù)流的第一動(dòng)態(tài)數(shù)據(jù)類型;生成用于第 二輸入數(shù)據(jù)流的第二動(dòng)態(tài)數(shù)據(jù)類型;至少部分地基于第一動(dòng)態(tài)數(shù)據(jù)類型和第二動(dòng)態(tài)數(shù)據(jù)類 型組合第一輸入數(shù)據(jù)流和第二輸入數(shù)據(jù)流W生成組合數(shù)據(jù)流;W及處理對(duì)組合數(shù)據(jù)流的連 續(xù)查詢,W檢測(cè)樣式。
[0012] 在一些實(shí)施例中,生成第一動(dòng)態(tài)數(shù)據(jù)類型的步驟還包括識(shí)別第一輸入數(shù)據(jù)流的第 一屬性不存在于第二數(shù)據(jù)流中;并且生成用于第一屬性的第一動(dòng)態(tài)數(shù)據(jù)類型,第一動(dòng)態(tài)數(shù) 據(jù)類型被配置為存儲(chǔ)對(duì)應(yīng)于第一輸入數(shù)據(jù)流的第一屬性的第一數(shù)據(jù)值。
[0013] 在一些實(shí)施例中,生成第二動(dòng)態(tài)數(shù)據(jù)類型的步驟還包括識(shí)別第二輸入數(shù)據(jù)流的第 二屬性不存在于第一數(shù)據(jù)流中;并且生成用于第二屬性的第二動(dòng)態(tài)數(shù)據(jù)類型,第二動(dòng)態(tài)數(shù) 據(jù)類型被配置為存儲(chǔ)對(duì)應(yīng)于第二輸入數(shù)據(jù)流的第二屬性的第二數(shù)據(jù)值。
[0014] 在一些實(shí)施例中,該方法還包括識(shí)別共同屬性,該共同屬性被識(shí)別為在第一輸入 數(shù)據(jù)流中存在并在第二輸入數(shù)據(jù)流中存在;生成同質(zhì)模式(schema),該同質(zhì)模式包括第一 輸入數(shù)據(jù)流和第二輸入數(shù)據(jù)流的一個(gè)或多個(gè)屬性的表示,該表示包括至少共同屬性、第一 動(dòng)態(tài)數(shù)據(jù)類型和第二動(dòng)態(tài)數(shù)據(jù)類型;W及至少部分地基于同質(zhì)模式生成組合數(shù)據(jù)流。
[0015] 在一些實(shí)施例中,該方法還包括至少部分地基于分析組合數(shù)據(jù)流來(lái)檢測(cè)樣式,其 中樣式識(shí)別第一輸入數(shù)據(jù)流中的第一事件,后面跟著第二輸入數(shù)據(jù)流中的第二事件。
[0016] 根據(jù)一些實(shí)施例,提供了服務(wù)提供商設(shè)備。該服務(wù)提供商設(shè)備可包括輸入數(shù)據(jù)流 接收單元,被配置為接收包括至少第一輸入數(shù)據(jù)流和第二輸入數(shù)據(jù)流的多個(gè)輸入數(shù)據(jù)流; 第一動(dòng)態(tài)數(shù)據(jù)類型生成單元,被配置為生成用于第一輸入數(shù)據(jù)流的第一動(dòng)態(tài)數(shù)據(jù)類型;第 二動(dòng)態(tài)數(shù)據(jù)類型生成單元,被配置為生成用于第二輸入數(shù)據(jù)流的第二動(dòng)態(tài)數(shù)據(jù)類型;組合 數(shù)據(jù)流生成單元,被配置為至少部分地基于第一動(dòng)態(tài)數(shù)據(jù)類型和第二動(dòng)態(tài)數(shù)據(jù)類型組合第 一輸入數(shù)據(jù)流和第二輸入數(shù)據(jù)流,W生成組合數(shù)據(jù)流;W及樣式檢測(cè)單元,被配置為處理對(duì) 組合數(shù)據(jù)流的連續(xù)查詢,W檢測(cè)樣式。
[0017] 在一些實(shí)施例中,第一動(dòng)態(tài)數(shù)據(jù)類型生成單元還被配置為:識(shí)別第一輸入數(shù)據(jù)流 的第一屬性不存在于第二數(shù)據(jù)流中;W及生成用于第一屬性的第一動(dòng)態(tài)數(shù)據(jù)類型。
[0018] 在一些實(shí)施例中,第一動(dòng)態(tài)數(shù)據(jù)類型被配置為存儲(chǔ)對(duì)應(yīng)于第一輸入數(shù)據(jù)流的第一 屬性的第一數(shù)據(jù)值。
[0019] 在一些實(shí)施例中,第二動(dòng)態(tài)數(shù)據(jù)類型生成單元還被配置為識(shí)別第二輸入數(shù)據(jù)流的 第二屬性不在第一數(shù)據(jù)流中存在;W及生成用于第二屬性的第二動(dòng)態(tài)數(shù)據(jù)類型,第二動(dòng)態(tài) 數(shù)據(jù)類型被配置為存儲(chǔ)對(duì)應(yīng)于第二輸入數(shù)據(jù)流的第二屬性的第二數(shù)據(jù)值。
[0020] 在一些實(shí)施例中,服務(wù)提供商設(shè)備還可W包括共同屬性識(shí)別單元,被配置為識(shí)別 共同屬性,該共同屬性被識(shí)別為在第一輸入數(shù)據(jù)流中存在并在第二輸入數(shù)據(jù)流中存在;W 及同質(zhì)模式生成單元,被配置為生成同質(zhì)模式,該同質(zhì)模式包括第一輸入數(shù)據(jù)流和第二輸 入數(shù)據(jù)流的一個(gè)或多個(gè)屬性的表示,該表示包括至少公共屬性、第一動(dòng)態(tài)數(shù)據(jù)類型和第二 動(dòng)態(tài)數(shù)據(jù)類型。
[0021] 在一些實(shí)施例中,同質(zhì)模式包括流名稱標(biāo)識(shí)符屬性、與第一輸入數(shù)據(jù)流關(guān)聯(lián)的第 一時(shí)間戳屬性或者與第二輸入數(shù)據(jù)流關(guān)聯(lián)的第二時(shí)間戳屬性當(dāng)中至少一個(gè)。
[0022] 在一些實(shí)施例中,組合數(shù)據(jù)流生成單元還可被配置為從第一輸入數(shù)據(jù)流選擇第一 組元組,第一輸入數(shù)據(jù)流由同質(zhì)模式識(shí)別;從第二輸入數(shù)據(jù)流選擇第二組元組,第二輸入數(shù) 據(jù)流由同質(zhì)模式識(shí)別;W及處理對(duì)第一組元組和第二組元組的子查詢,W生成組合數(shù)據(jù)流。
[0023] 在一些實(shí)施例中,樣式可W至少部分地基于分析述組合數(shù)據(jù)流來(lái)檢測(cè),其中樣式 識(shí)別第一輸入數(shù)據(jù)流中的第一事件,后面跟著第二輸入數(shù)據(jù)流中的第二事件。
【附圖說(shuō)明】
[0024] 詳細(xì)描述參考附圖進(jìn)行闡述。在圖中,標(biāo)號(hào)最左邊的(一個(gè)或多個(gè))數(shù)字識(shí)別其中 該標(biāo)號(hào)首先出現(xiàn)的圖。在不同的圖中使用相同的標(biāo)號(hào)指示相似或完全相同的條目。
[0025] 圖1繪出了用于跨多個(gè)輸入數(shù)據(jù)流識(shí)別樣式的技術(shù)可W在其中實(shí)現(xiàn)的簡(jiǎn)化示例系 統(tǒng)或體系模式。
[0026] 圖2示出了可W利用其描述用于跨多個(gè)輸入數(shù)據(jù)流的樣式檢測(cè)的特征的簡(jiǎn)化框 圖。
[0027] 圖3是根據(jù)本公開(kāi)內(nèi)容的一種實(shí)施例、利用識(shí)別多個(gè)輸入數(shù)據(jù)流的CQL查詢執(zhí)行樣 式識(shí)別的示例性說(shuō)明。
[0028] 圖4是根據(jù)本公開(kāi)內(nèi)容的另一種實(shí)施例、利用識(shí)別多個(gè)輸入數(shù)據(jù)流的C化查詢執(zhí)行 樣式識(shí)別的示例性說(shuō)明。
[0029] 圖5是繪出根據(jù)本公開(kāi)內(nèi)容的一種實(shí)施例、用于跨多個(gè)輸入數(shù)據(jù)流檢測(cè)樣式的過(guò) 程的高級(jí)流程圖。
[0030] 圖6是繪出根據(jù)本公開(kāi)內(nèi)容的一種實(shí)施例、用于生成同質(zhì)模式的過(guò)程的高級(jí)流程 圖。
[0031] 圖7繪出了可W結(jié)合本公開(kāi)內(nèi)容的實(shí)施例的事件處理系統(tǒng)的簡(jiǎn)化高級(jí)圖。
[0032] 圖8繪出了用于實(shí)現(xiàn)其中一種實(shí)施例的分布式系統(tǒng)的簡(jiǎn)化圖。
[0033] 圖9是根據(jù)本公開(kāi)內(nèi)容的實(shí)施例、由實(shí)施例系統(tǒng)的一個(gè)或多個(gè)組件提供的服務(wù)可 W通過(guò)其作為云服務(wù)被提供的系統(tǒng)環(huán)境的一個(gè)或多個(gè)組件的簡(jiǎn)化框圖。
[0034] 圖10示出了本發(fā)明的各種實(shí)施例可W在其中實(shí)現(xiàn)的示例性計(jì)算機(jī)系統(tǒng)。
[0035] 圖11示出了本發(fā)明的各種實(shí)施例可W在其中實(shí)現(xiàn)的示例性服務(wù)提供商設(shè)備的簡(jiǎn) 化框圖。
【具體實(shí)施方式】
[0036] 在W下描述中,將描述各種實(shí)施例。出于解釋的目的,闡述了特定的配置和細(xì)節(jié), W便提供對(duì)實(shí)施例的透徹理解。但是,對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō),將很顯然,運(yùn)些實(shí)施例可 W在沒(méi)有特定細(xì)節(jié)的情況下進(jìn)行實(shí)踐。此外,眾所周知的特征可被省略或簡(jiǎn)化,W避免模糊 所描述的實(shí)施例。
[0037] 在一些應(yīng)用中,數(shù)據(jù)可W采取連續(xù)、無(wú)界的數(shù)據(jù)流的形式,而不是有限存儲(chǔ)的數(shù)據(jù) 集。運(yùn)種數(shù)據(jù)流的例子可W包括金融應(yīng)用中的股票行情、網(wǎng)絡(luò)監(jiān)視和交通管理中的性能測(cè) 量、web跟蹤和個(gè)性化中的日志記錄或點(diǎn)擊流、來(lái)自傳感器應(yīng)用的數(shù)據(jù)饋送、基于防火墻的 安全性中的網(wǎng)絡(luò)報(bào)文和消息、電信中的呼叫詳細(xì)記錄,等等。由于它們的連續(xù)性質(zhì),運(yùn)些數(shù) 據(jù)流通??蒞利用連續(xù)查詢而不是傳統(tǒng)的一次性S化查詢來(lái)查詢。
[0038] -般而言,連續(xù)數(shù)據(jù)流(也被稱為事件流)可W包括其本質(zhì)可W是沒(méi)有顯式結(jié)束標(biāo) 志的連續(xù)的或無(wú)界的數(shù)據(jù)或事件的流。邏輯上,事件或數(shù)據(jù)流可W是一系列數(shù)據(jù)元素(也被 稱為事件),每個(gè)數(shù)據(jù)元素具有相關(guān)聯(lián)的時(shí)間戳。連續(xù)事件流可W在邏輯上表示為一包或一 組元素(s,T),其中V'表示數(shù)據(jù)部分,并且?'是在時(shí)間域中。V'部分一般被稱為元組或事 件。因此,事件流可W是一系列具有時(shí)間戳的元組或事件。
[0039] 在一些方面,與流中的事件關(guān)聯(lián)的時(shí)間戳可W等同于時(shí)鐘時(shí)間。但是,在其它例子 中,與事件流中的事件相關(guān)聯(lián)的時(shí)間可W由應(yīng)用領(lǐng)域定義并且可W不對(duì)應(yīng)于時(shí)鐘時(shí)間,但 是可W,例如,代替地通過(guò)數(shù)字序列來(lái)表示。因此,與事件流中的事件關(guān)聯(lián)的時(shí)間信息可W 由表示時(shí)間概念的數(shù)字、時(shí)間戳或任何其它信息來(lái)表示。對(duì)于接收輸入事件流的系統(tǒng),事件 W遞增的時(shí)間戳的順序到達(dá)系統(tǒng)。可能存在多于一個(gè)的事件具有相同的時(shí)間戳。
[0040] 在一些例子中,事件流中的事件可W表示一些世間事件的發(fā)生(例如,當(dāng)溫度傳感 器將值改變到新的值時(shí)、當(dāng)股票符號(hào)的價(jià)格改變時(shí))并且與事件關(guān)聯(lián)的時(shí)間信息可W指示 由數(shù)據(jù)流事件表示的世間事件何時(shí)發(fā)生。
[0041] 對(duì)于經(jīng)由事件流接收到的事件,可W使用與事件關(guān)聯(lián)的時(shí)間信息來(lái)確保事件流中 的事件W遞增的時(shí)間戳值的順序到達(dá)。運(yùn)可W使得在事件流中接收到的事件基于它們關(guān)聯(lián) 的時(shí)間信息進(jìn)行排序。為了啟用運(yùn)種排序,時(shí)間戳可非遞減的方式與事件流中的事件 關(guān)聯(lián),使得后生成的事件具有比早生成的事件更晚的時(shí)間戳。作為另一個(gè)例子,如果序列號(hào) 被用作時(shí)間信息,則與后生成的事件關(guān)聯(lián)的序列號(hào)可W大于與較早生成的事件關(guān)聯(lián)的序列 號(hào)。在一些例子中,多個(gè)事件可W與相同的時(shí)間戳或序列號(hào)關(guān)聯(lián),例如,當(dāng)由數(shù)據(jù)流事件表 示的世間事件在同一時(shí)間發(fā)生時(shí)。屬于同一事件流的事件可W通常W由關(guān)聯(lián)的時(shí)間信息施 加在事件上的順序進(jìn)行處理,其中較早的事件在較晚的事件之前被處理。
[0042] 與事件流中的事件相關(guān)聯(lián)的時(shí)間信息(例如,時(shí)間戳)可W由流的源設(shè)置或者,可 替代地,可w由接收流的系統(tǒng)設(shè)置。例如,在某些實(shí)施例中,可w在接收事件流的系統(tǒng)上保 持屯、跳,并且與事件關(guān)聯(lián)的時(shí)間可W基于如通過(guò)屯、跳測(cè)得的事件到達(dá)系統(tǒng)的時(shí)間。事件流 中的兩個(gè)事件有可能具有相同的時(shí)間信息。應(yīng)當(dāng)注意,雖然時(shí)間戳排序要求特定于一個(gè)事 件流,但是不同流的事件可W任意交錯(cuò)。
[0043] 事件流可W具有關(guān)聯(lián)的模式"S",該模式包括時(shí)間信息和一組一個(gè)或多個(gè)命名的 屬性。屬于特定事件流的所有事件符合與那個(gè)特定事件流關(guān)聯(lián)的模式。因此,對(duì)于事件流 (S,T),事件流可 W具有如(<time_stamp〉,〈attribute(S)〉)的模式"S",其中〈attributes〉 表示模式的數(shù)據(jù)部分并且可W包括一個(gè)或多個(gè)屬性。例如,用于股票報(bào)價(jià)機(jī)事件流的模式 可W包括屬性< 股票標(biāo)志〉和< 股票價(jià)格〉。經(jīng)由運(yùn)種流接收到的每個(gè)事件將具有時(shí)間戳W及 兩個(gè)屬性。例如,股票報(bào)價(jià)機(jī)事件流可W接收W下事件及關(guān)聯(lián)的時(shí)間戳:
[0044] ...
[0045] (<timestamp_N>,<NVDA,4>)
[0046] (<timestamp_N+l〉,<0RCL,62〉)
[0047] (<timestamp_N+2>,<PCAR,38〉)
[004引(<timestamp_N+3>,〈SPOT,53〉)
[0049] (<timestamp_N+4>,<PDC0,44>)
[0050] (〈timestamp-化於,<PTEN,50〉)
[0化1] ·..
[0052] 在w上的流中,對(duì)于流元素(<timestamp_N+l〉,<OR化,62〉),事件是具有屬性 "stock_symb〇r'和"stock_value"的<0R化,62〉。與流元素關(guān)聯(lián)的時(shí)間戳是"timestamp_N+ Γ。因此,連續(xù)事件流是事件的流,每個(gè)事件具有相同系列的屬性。
[0053] 如所指出的,流可W是CQL查詢可W作用于其的數(shù)據(jù)的主要來(lái)源。流S可W是元素 的包(也被稱為"multi-set(多集)")(3,1'),其中"3"在5的模式中并且叩'在時(shí)間域中。此 夕h流元素可W是元組-時(shí)間戳對(duì),其可被表示為一系列具有時(shí)間戳的元組插入。換句話說(shuō), 流可W是一系列具有時(shí)間戳的元組。在一些情況下,可能有多于一個(gè)具有相同時(shí)間戳的元 組。并且,輸入數(shù)據(jù)流的元組可被要求按遞增時(shí)間戳的順序到達(dá)系統(tǒng)。作為替代,關(guān)系(也被 稱為"隨時(shí)間變化的關(guān)聚',并且不與"關(guān)系數(shù)據(jù)"混淆,"關(guān)系數(shù)據(jù)"可W包括來(lái)自關(guān)系數(shù)據(jù) 庫(kù)的數(shù)據(jù))可W是從時(shí)域到模式R的無(wú)界元組袋(bag)的映射。在一些例子中,關(guān)系可W是無(wú) 序、隨時(shí)間變化的元組袋(即,瞬時(shí)關(guān)系)。在一些情況下,在每個(gè)時(shí)刻,關(guān)系可W是有界集。 它也可被表示為一系列具有時(shí)間戳的元組,其可W包括插入、刪除和/或更新,W捕獲關(guān)系 的改變的狀態(tài)。類似于流,關(guān)系可W具有關(guān)系的每個(gè)元組可W符合的固定模式。另外,如本 文所使用的,連續(xù)查詢一般可W能夠處理流和/或關(guān)系的(即,針對(duì)其查詢的)數(shù)據(jù)。此外,關(guān) 系可W引用流的數(shù)據(jù)。
[0054] 在一些例子中,商業(yè)智能(BI)可W幫助W特定的間隔(例如,在一些情況下,每天) 驅(qū)動(dòng)和優(yōu)化業(yè)務(wù)操作。運(yùn)種類型的BI通常被稱為運(yùn)營(yíng)商業(yè)智能、實(shí)時(shí)商業(yè)智能或者運(yùn)營(yíng)智 能(01)。在一些例子中,運(yùn)營(yíng)智能模糊了BI與業(yè)務(wù)活動(dòng)監(jiān)視(BAM)之間的界線。例如,BI可W 專注于對(duì)歷史數(shù)據(jù)的周期性查詢。照此,它可W具有向后看的焦點(diǎn)。但是,BI也可被放到業(yè) 務(wù)應(yīng)用中,并且因此它可W從單純的戰(zhàn)略分析工具擴(kuò)展到企業(yè)運(yùn)營(yíng)的前線中。照此,BI系統(tǒng) 也可被配置為實(shí)時(shí)地分析事件流并計(jì)算聚集。
[0055] 在一些例子中,連續(xù)查詢語(yǔ)言服務(wù)(CQ服務(wù))可被配置為延伸BI分析服務(wù)器,W處 理連續(xù)查詢并啟用實(shí)時(shí)警報(bào)。在一些方面中,CQ服務(wù)可W提供BI分析服務(wù)器和CQL引擎的集 成。僅僅作為例子,BI分析服務(wù)器可W將連續(xù)查詢委托給CQ服務(wù)并且CQ服務(wù)也可W充當(dāng)用 于CQL引擎的邏輯數(shù)據(jù)庫(kù)(DB)網(wǎng)關(guān)。W運(yùn)種方式,C化引擎可W能夠充分利用BI分析服務(wù)器 的分析能力和語(yǔ)義建模。
[0056] 在一些例子中,除其它的之外,CQ服務(wù)還可W提供W下功能:
[0057] .遠(yuǎn)程化用于BI分析服務(wù)器的服務(wù),作為C化引擎網(wǎng)關(guān);
[005引.事件源/接收器適配器;
[0059] ?從邏輯S化加上C化擴(kuò)展生成數(shù)據(jù)定義語(yǔ)言(孤L);
[0060] ?為所有類型的連續(xù)查詢和實(shí)現(xiàn)選擇提供統(tǒng)一的模型;
[0061 ] ?維持元數(shù)據(jù)并支持重啟;W及
[0062] ?高可用性和可擴(kuò)展性支持。
[0063] 此外,在一些例子中,01是實(shí)時(shí)動(dòng)態(tài)業(yè)務(wù)分析的形式,其可W提供對(duì)業(yè)務(wù)運(yùn)營(yíng)可視 性和桐察。就二者都有助于使大量信息有意義而言,01常常關(guān)聯(lián)到BI或?qū)崟r(shí)BI或者與其進(jìn) 行比較。但也有一些基本的差別:〇1可W主要W活動(dòng)為中屯、,而B(niǎo)I可W主要W數(shù)據(jù)為中屯、。 此外,01可W更適合檢測(cè)并響應(yīng)于發(fā)展的狀況(例如,趨勢(shì)和樣式),不像可能傳統(tǒng)上被用作 識(shí)別樣式的事實(shí)后和基于報(bào)告的方法的BI。
[0064] 在一些例子中,業(yè)務(wù)事件分析和監(jiān)視(邸AM)系統(tǒng)可W包括CQL引擎,W處理和/或 接收動(dòng)態(tài)數(shù)據(jù)(in-flight da化)。例如,C化引擎可W是被配置為查詢或W其它方式處理進(jìn) 入的實(shí)時(shí)信息的存儲(chǔ)器內(nèi)實(shí)時(shí)事件處理引擎(例如,BI或0I)XQL引擎可W利用或理解時(shí)序 語(yǔ)義并且被配置為允許處理數(shù)據(jù)窗口的定義。在一些情況下,利用C化引擎可W設(shè)及總是對(duì) 進(jìn)入的數(shù)據(jù)運(yùn)行查詢。
[0065] 在一些方面,C化引擎可W包括完全成熟的查詢語(yǔ)言。因而,用戶可W就查詢而言 指定計(jì)算。此外,C化引擎可被設(shè)計(jì)為利用查詢語(yǔ)言特征、運(yùn)算符共享、豐富的樣式匹配、豐 富的語(yǔ)言結(jié)構(gòu)等等優(yōu)化存儲(chǔ)器。此外,在一些例子中,C化引擎可W同時(shí)處理歷史數(shù)據(jù)和流 化數(shù)據(jù)。例如,用戶可W設(shè)置查詢,W便在加州銷售額高于某一目標(biāo)時(shí)發(fā)送警報(bào)。因此,在一 些例子中,警報(bào)可W至少部分地基于歷史銷售數(shù)據(jù)W及傳入的活(即,實(shí)時(shí))銷售數(shù)據(jù)。
[0066] 在一些例子中,C化引擎或下面描述的概念的其它特征可被配置為W實(shí)時(shí)的方式 組合歷史上下文(即,倉(cāng)庫(kù)數(shù)據(jù))與傳入的數(shù)據(jù)。因此,在一些情況下,本公開(kāi)內(nèi)容可W描述 數(shù)據(jù)庫(kù)存儲(chǔ)的信息與動(dòng)態(tài)信息的邊界。數(shù)據(jù)庫(kù)存儲(chǔ)的信息和動(dòng)態(tài)信息都可W包括BI數(shù)據(jù)。 因而,在一些例子中,數(shù)據(jù)庫(kù)可W是BI服務(wù)器或者它可W是任何類型的數(shù)據(jù)庫(kù)。另外,在一 些例子中,本公開(kāi)內(nèi)容的特征可W啟用W上特征的實(shí)現(xiàn),而無(wú)需用戶知道如何編程或W其 它方式編寫(xiě)代碼。換句話說(shuō),特征可W在特征豐富的用戶界面化I)中或者W其它方式提供, W允許非開(kāi)發(fā)人員實(shí)現(xiàn)歷史數(shù)據(jù)與實(shí)時(shí)數(shù)據(jù)的組合。
[0067] 在某些實(shí)施例中,在連續(xù)數(shù)據(jù)流中被接收的事件可W在運(yùn)行時(shí)被處理,W檢測(cè)數(shù) 據(jù)流中指定樣式的發(fā)生。"樣式"可W在連續(xù)的數(shù)據(jù)流中構(gòu)成一系列連續(xù)的事件或元組,每 個(gè)事件或元組滿足某些條件。作為例子,諸如股票交易量的變化的一個(gè)事件的發(fā)生導(dǎo)致諸 如股票價(jià)值定價(jià)的變化的另一個(gè)事件的發(fā)生,并且可W在連續(xù)的數(shù)據(jù)流中構(gòu)成接收與金融 應(yīng)用相關(guān)的"股票計(jì)價(jià)"事件的"樣式"。
[0068] 在多個(gè)連續(xù)數(shù)據(jù)流的上下文中,"樣式"可W構(gòu)成第一數(shù)據(jù)流中第一事件的發(fā)生, 后面跟著第二數(shù)據(jù)流中另一事件的發(fā)生,等等。作為例子,考慮被第一事件序列驅(qū)動(dòng)的第一 業(yè)務(wù)過(guò)程,其中事件與汽車租賃預(yù)訂應(yīng)用相關(guān)。類似地,考慮被第二事件序列驅(qū)動(dòng)的第二業(yè) 務(wù)過(guò)程,其中事件與航班預(yù)訂應(yīng)用相關(guān)。此外,假設(shè)第一事件序列經(jīng)由第一連續(xù)輸入數(shù)據(jù)流 被接收并且第二事件序列經(jīng)由第二連續(xù)輸入數(shù)據(jù)流被接收。在運(yùn)種情況下,可能期望當(dāng)?shù)?一連續(xù)輸入數(shù)據(jù)流中事件(例如,用戶對(duì)汽車的預(yù)訂)的到達(dá)后面跟著第二連續(xù)輸入數(shù)據(jù)流 中另一事件(例如,機(jī)票發(fā)給用戶)的到達(dá)時(shí)輸出樣式匹配。
[0069] 在一種實(shí)施例中,跨多個(gè)連續(xù)輸入數(shù)據(jù)流的樣式匹配可W通過(guò)對(duì)傳入的輸入數(shù)據(jù) 流應(yīng)用連續(xù)查詢(例如,C化查詢)來(lái)執(zhí)行。在一種方法中,跨多個(gè)連續(xù)輸入數(shù)據(jù)流的樣式匹 配可W通過(guò)首先執(zhí)行要對(duì)其執(zhí)行樣式匹配的所有相關(guān)輸入數(shù)據(jù)流的全部或子集的UNION來(lái) 執(zhí)行,其結(jié)果是定義對(duì)應(yīng)于中間流的視圖。然后,要匹配的樣式可W經(jīng)運(yùn)單個(gè)中間流來(lái)指 定。在一種實(shí)施例中,C化語(yǔ)言結(jié)構(gòu)MATCH_RECOGNIZE子句可被用于在識(shí)別多個(gè)輸入數(shù)據(jù)流 的C化查詢中執(zhí)行樣式識(shí)別。然后,樣式可被匹配到包括在視圖中的所有流。
[0070] 作為例子,考慮W下CQL查詢,Q1,其中Q1是指定要跨第一輸入數(shù)據(jù)流S1和第二輸 入數(shù)據(jù)流S2匹配的樣式的連續(xù)查詢。
[0071] Q1:
[0072]
[0073] 此外,假設(shè)流S1由第一模式定義:Sl(int pl,int clientid)并且流S2由第二模式 定義:S2(int p2, int clientid),其中pi、p2和。116]11:1(1對(duì)應(yīng)于流51和52的一個(gè)或多個(gè)屬 性。
[0074] 查詢Q1包括指定流S1和S2的UNION的FROM子句。為了使UNION A化查詢組合流S1和 S2的結(jié)果集,WL UNION A化查詢中的每個(gè)CQL SELECT語(yǔ)句通常需要在結(jié)果集中具有相同 數(shù)量的具有類似數(shù)據(jù)類型的字段。在上面所示的查詢Q1的例子中,流SI的模式與流S2的模 式不同。在一種方法中,流S1和S2可W通過(guò)規(guī)格化流S1和S2的模式來(lái)組合。
[0075] 在一個(gè)例子中,模式的規(guī)格化可W通過(guò)向流S1和S2的每個(gè)模式添加附加的列來(lái)執(zhí) 行。在上面所示的查詢Q1的例子中,列被添加到流S1和S2的每個(gè)模式并且利用諸如"-1L"的 硬編碼值來(lái)填充,W規(guī)格化模式。但是,將硬編碼數(shù)據(jù)值引入每個(gè)流是容易出錯(cuò)的手動(dòng)過(guò) 程,因?yàn)橛簿幋a值必須在每次識(shí)別具有不同模式的多個(gè)輸入數(shù)據(jù)流的CQL查詢被處理時(shí)輸 入。
[0076] 在本公開(kāi)內(nèi)容的一種實(shí)施例中,生成表示一個(gè)或多個(gè)參與的輸入數(shù)據(jù)流的同質(zhì)模 式。在一些實(shí)施例中,同質(zhì)模式可W通過(guò)為參與的輸入數(shù)據(jù)流的一個(gè)或多個(gè)屬性創(chuàng)建一個(gè) 或多個(gè)動(dòng)態(tài)數(shù)據(jù)類型而生成。動(dòng)態(tài)數(shù)據(jù)類型和同質(zhì)模式的生成使UNION A化子查詢中的每 個(gè)SELECT語(yǔ)句能夠包括相同數(shù)量的字段和類似的數(shù)據(jù)類型,使得流S1和S2的結(jié)果集可W利 用SELECT語(yǔ)句來(lái)組合。此外,用于參與的輸入數(shù)據(jù)流的屬性的動(dòng)態(tài)數(shù)據(jù)類型的生成是實(shí)時(shí) 地執(zhí)行的,并且硬編碼值不需要在每次C化查詢被處理時(shí)被引入?yún)⑴c的輸入數(shù)據(jù)流。在一個(gè) 例子中,并且如下面將詳細(xì)討論的,動(dòng)態(tài)數(shù)據(jù)類型可W指為輸入數(shù)據(jù)流的一個(gè)或多個(gè)屬性 識(shí)別的復(fù)合數(shù)據(jù)類型。
[0077] 在某些實(shí)施例中,輸入數(shù)據(jù)流然后可W基于同質(zhì)模式被組合,W生成組合數(shù)據(jù)流。 然后,連續(xù)查詢可W對(duì)組合數(shù)據(jù)流處理,W便跨輸入數(shù)據(jù)流檢測(cè)樣式。在一種實(shí)施例中,C化 語(yǔ)言結(jié)構(gòu)MATCH_RECOGNIZE子句可被用于在識(shí)別多個(gè)輸入數(shù)據(jù)流的CQL查詢中執(zhí)行樣式識(shí) 另IJ。同質(zhì)模式和動(dòng)態(tài)數(shù)據(jù)類型可被生成并用于在識(shí)別多個(gè)輸入數(shù)據(jù)流的CQL查詢中執(zhí)行樣 式識(shí)別的方式的附加細(xì)節(jié)在下面圖1-4中詳細(xì)討論。
[007引利用MATCH_RECOGNIZE子句,用戶可W對(duì)傳入的事件的屬性定義條件并且通過(guò)使 用被稱為相關(guān)變量的標(biāo)識(shí)符識(shí)別用于樣式匹配的條件。如W上所討論的,輸入數(shù)據(jù)流中的 一系列連續(xù)事件或元組構(gòu)成樣式,其中每個(gè)事件或元組滿足某些條件。樣式識(shí)別功能允許 用戶對(duì)傳入的事件或元組的屬性定義條件并且通過(guò)使用被稱為相關(guān)變量的串名稱來(lái)識(shí)別 運(yùn)些條件。
[0079] 在上面所示的查詢Q1中,"A"和"B"是相關(guān)變量。要匹配的樣式被指定為對(duì)運(yùn)些相 關(guān)變量的正則表達(dá)式并且它確定條件應(yīng)當(dāng)被不同的傳入事件滿足的順序或次序被識(shí)別為 有效匹配。輸入事件流中滿足運(yùn)些條件的連續(xù)事件的序列構(gòu)成樣式。在一種實(shí)施例中, MATCH_REC0GNI ZE查詢的輸出是流。在上面所示的查詢Q1中,MATCH_REC0GNI ZE子句還包括 幾個(gè)子子句。
[0080] DEFI肥子子句指定用于每個(gè)相關(guān)變量的布爾條件。運(yùn)可被指定為任何邏輯或算術(shù) 表達(dá)式并且可W對(duì)匹配條件的事件的屬性應(yīng)用任何單行或聚合函數(shù)。在經(jīng)由輸入數(shù)據(jù)流接 收新的事件時(shí),在那個(gè)時(shí)間點(diǎn)相關(guān)的相關(guān)變量的條件被評(píng)估。如果事件滿足其定義條件,貝U 該事件已經(jīng)匹配相關(guān)變量。特定的輸入可W匹配零個(gè)、一個(gè)或多個(gè)相關(guān)變量。在接收輸入事 件時(shí)要評(píng)估的相關(guān)條件是通過(guò)由PATTERN子句正則表達(dá)式支配的處理邏輯W及在處理更早 的輸入之后已經(jīng)到達(dá)的樣式識(shí)別過(guò)程的狀態(tài)確定的。條件可W指對(duì)其應(yīng)用MATCH_ REC0GNI ZE子句的流進(jìn)行評(píng)估的流或視圖的模式的任何屬性。PATTERN子句中的相關(guān)變量不 需要在DEFI肥子句中指定:對(duì)于運(yùn)種相關(guān)變量的缺省值是總是為真的謂詞。運(yùn)種相關(guān)變量 匹配每個(gè)事件。
[0081 ] PARTITION BY子子句指定MATCH_RECOGNIZE子句應(yīng)當(dāng)通過(guò)其劃分其結(jié)果的流屬 性。如果沒(méi)有PARTITION BY子句,則所有的流屬性屬于同一個(gè)分區(qū)。當(dāng)PARTITION BY子句與 樣式匹配一起存在時(shí),輸入數(shù)據(jù)流基于分區(qū)列表中提到的屬性被邏輯劃分并且樣式匹配在 分區(qū)內(nèi)進(jìn)行。在上面所示的查詢Q1中/'clientlcT屬性(該屬性是流S1和S2的共同屬性)在 PARTITION BY子句中指定,通過(guò)其,MTCH_RECOGNIZE子句可W劃分其結(jié)果。
[0082] MEASURES子子句導(dǎo)出(例如,使得可用于包括在沈LECT子句中)成功地匹配指定的 樣式的事件的一個(gè)或多個(gè)屬性值并且還使得表達(dá)式能夠?qū)δ切傩灾抵付ā_\(yùn)個(gè)子句可被 用來(lái)對(duì)事件流中匹配DEFI肥子句中條件(相關(guān)變量)的事件的屬性定義表達(dá)式并且給運(yùn)些 表達(dá)式起別名,使得它們可W適合用在運(yùn)個(gè)MATCH_RECOGNIZE條件是其一部分的主查詢的 SELECT子句中。事件流的屬性可W直接地或經(jīng)由相關(guān)變量被引用。
[0083] PATTERN子子句指定要作為對(duì)一個(gè)或多個(gè)相關(guān)變量的正則表達(dá)式被匹配的樣式。 傳入的事件必須按給定的次序(由左到右)匹配運(yùn)些條件。正則表達(dá)式可W由相關(guān)變量和諸 如W下的樣式限定符組成:
[0084] *:〇或多次
[0085] +:1或多次
[00化]?:0或1次,等等
[0087]在某些實(shí)施例中,上面所示的單字符樣式限定符是最大的或"貪婪的";它們將嘗 試匹配它們對(duì)其應(yīng)用的正則表達(dá)式的盡可能多的實(shí)例。樣式限定符也可W是兩個(gè)字符,運(yùn) 是最小的或者"難得的",它們將嘗試匹配它們對(duì)其應(yīng)用的正則表達(dá)式的盡可能少的實(shí)例。 兩字符限定符的實(shí)例包括但不限于:
[008引 *?:0或多次
[0089] W:1或多次
[0090] ??:0或 1 次
[0091] 作為樣式匹配的例子,考慮下面的樣式:
[0092] PATTERN(AB*C)
[0093] 運(yùn)個(gè)樣式子句意味著,當(dāng)W下條件被連續(xù)傳入的輸入事件滿足時(shí),樣式匹配將被 識(shí)別出:
[0094] 狀態(tài)1:確切地一個(gè)事件元組匹配定義相關(guān)變量A的條件,后面跟著 [00M]狀態(tài)2:匹配相關(guān)變量B的零或多個(gè)元組,后面跟著
[0096] 狀態(tài)3:匹配相關(guān)變量C的確切地一個(gè)元組。
[0097] 運(yùn)些狀態(tài)狀態(tài)1、狀態(tài)2和狀態(tài)3可W表示用于樣式(AB*C)的各種狀態(tài),其中狀態(tài)3 是用于樣式的最終狀態(tài)。當(dāng)樣式匹配處于特定狀態(tài)并且可W保留在相同的特定狀態(tài)或者可 W由于下一個(gè)事件而從該特定狀態(tài)過(guò)渡到下一個(gè)狀態(tài)時(shí),運(yùn)可W暗示綁定能增長(zhǎng)。如果綁 定是在最后的狀態(tài),則樣式可被認(rèn)為匹配。而在狀態(tài)2中,如果匹配相關(guān)變量B和C二者(由于 它滿足兩者的定義條件)的元組或事件到達(dá),則由于用于B的限定符*是貪婪的,因此那個(gè)元 組會(huì)被認(rèn)為匹配B而不是C。相應(yīng)地,由于貪婪屬性B會(huì)比C得到優(yōu)先,因此更大數(shù)量的B可被 匹配。如果樣式表達(dá)式是A B*?C,對(duì)B使用懶惰或難得的限定符的表達(dá)式,則匹配B和C二者 的元組會(huì)被認(rèn)為僅匹配C。因此,在那個(gè)例子中,C會(huì)比B得到優(yōu)先并且更少數(shù)量的B可被匹 配。
[0098] 在上面所示的查詢Q1中,當(dāng)W下情況發(fā)生時(shí),樣式(AB)被匹配:
[0099] 狀態(tài)1:確切地一個(gè)事件元組匹配定義相關(guān)變量A的條件,后面跟著
[0100] 狀態(tài)2(最終狀態(tài)):匹配相關(guān)變量B的確切地一個(gè)元組。
[0101] 狀態(tài)狀態(tài)1和狀態(tài)2表示用于樣式(AB)的各種可能狀態(tài),其中狀態(tài)2是用于該樣式 的最終狀態(tài)。
[0102] W上和W下描述的技術(shù)可多種方式并在多種上下文中實(shí)現(xiàn)。參考W下附圖提 供幾個(gè)示例實(shí)現(xiàn)和上下文,如在下面更詳細(xì)描述的。但是,W下實(shí)現(xiàn)和上下文僅僅是很多當(dāng) 中的一些。
[0103] 圖1繪出了用于跨多個(gè)輸入數(shù)據(jù)流執(zhí)行樣式匹配的技術(shù)可W在其中實(shí)現(xiàn)的簡(jiǎn)化示 例系統(tǒng)或體系架構(gòu)100。在體系架構(gòu)100中,一個(gè)或多個(gè)用戶1〇2(例如,帳號(hào)持有人)可W利 用用戶計(jì)算設(shè)備l〇4(l)-(N)(統(tǒng)稱為"用戶設(shè)備104")經(jīng)一個(gè)或多個(gè)網(wǎng)絡(luò)108訪問(wèn)一個(gè)或多 個(gè)服務(wù)提供商計(jì)算機(jī)106。在一些方面,服務(wù)提供商計(jì)算機(jī)106還可W經(jīng)網(wǎng)絡(luò)108與一個(gè)或多 個(gè)流數(shù)據(jù)源計(jì)算機(jī)110和/或一個(gè)或多個(gè)數(shù)據(jù)庫(kù)112通信。例如,用戶102可W利用服務(wù)提供 商計(jì)算機(jī)106訪問(wèn)或W別的方式管理流數(shù)據(jù)源計(jì)算機(jī)110和/或數(shù)據(jù)庫(kù)112的數(shù)據(jù)(例如,查 詢可W對(duì)照11〇、112當(dāng)中任何一個(gè)或二者運(yùn)行)。數(shù)據(jù)庫(kù)112可W是關(guān)系數(shù)據(jù)庫(kù)、S化服務(wù)器 等等并且,在一些例子中,可W代表用戶102管理歷史數(shù)據(jù)、事件數(shù)據(jù)、關(guān)系、歸檔的關(guān)系等 等。此外,數(shù)據(jù)庫(kù)112可W接收或W別的方式存儲(chǔ)由流數(shù)據(jù)源計(jì)算機(jī)110提供的數(shù)據(jù)。在一些 例子中,通過(guò)提供對(duì)數(shù)據(jù)(例如,歷史事件數(shù)據(jù)、流事件數(shù)據(jù)等等)的查詢(也被稱為"查詢語(yǔ) 句")或其它請(qǐng)求,用戶102可W利用用戶設(shè)備104與服務(wù)提供商計(jì)算機(jī)106交互。然后,運(yùn)種 查詢或請(qǐng)求可被服務(wù)提供商計(jì)算機(jī)106執(zhí)行,W處理數(shù)據(jù)庫(kù)112的數(shù)據(jù)和/或從流數(shù)據(jù)源計(jì) 算機(jī)110進(jìn)入的數(shù)據(jù)。另外,在一些例子中,流數(shù)據(jù)源計(jì)算機(jī)110和/或數(shù)據(jù)庫(kù)112可W是與服 務(wù)提供商計(jì)算機(jī)106關(guān)聯(lián)的集成式、分布式環(huán)境的部分。
[0104] 在一些例子中,網(wǎng)絡(luò)108可W包括多種不同類型網(wǎng)絡(luò)當(dāng)中任何一個(gè)或者其組合,諸 如有線網(wǎng)絡(luò)、互聯(lián)網(wǎng)、無(wú)線網(wǎng)絡(luò)、蜂窩網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)系統(tǒng)和/或其它專用和/或公共網(wǎng)絡(luò)。雖然 所說(shuō)明的例子代表用戶102經(jīng)網(wǎng)絡(luò)108訪問(wèn)服務(wù)提供商計(jì)算機(jī)106,但是所描述的技術(shù)可W 同等地應(yīng)用在用戶102通過(guò)固定電話經(jīng)一個(gè)或多個(gè)用戶設(shè)備104、經(jīng)信息站或者W任何其它 方式與一個(gè)或多個(gè)服務(wù)提供商計(jì)算機(jī)106交互的情況中。還應(yīng)當(dāng)指出,所描述的技術(shù)可W應(yīng) 用在其它客戶端/服務(wù)器布置(例如,機(jī)頂盒等等)當(dāng)中,W及非客戶端/服務(wù)器布置(例如, 本地存儲(chǔ)的應(yīng)用等等)當(dāng)中。
[0105] 用戶設(shè)備104可W是任何類型的計(jì)算設(shè)備,諸如但不限于,移動(dòng)電話、智能電話、個(gè) 人數(shù)字助理(PDA)、膝上型計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、瘦客戶端設(shè)備、平板PC等等。在一些例子中, 用戶設(shè)備104可W經(jīng)網(wǎng)絡(luò)108或者經(jīng)其它網(wǎng)絡(luò)連接與服務(wù)提供商計(jì)算機(jī)106通信。另外,用戶 設(shè)備104還可被配置為提供一個(gè)或多個(gè)用于請(qǐng)求要處理的數(shù)據(jù)庫(kù)112(或者其它數(shù)據(jù)存儲(chǔ)) 的數(shù)據(jù)的查詢或查詢語(yǔ)句。
[0106] 在一些方面,服務(wù)提供商計(jì)算機(jī)106也可W是任何類型的計(jì)算設(shè)備,諸如但不限 于,移動(dòng)、臺(tái)式、瘦客戶端和/或云計(jì)算設(shè)備,諸如服務(wù)器。在一些例子中,服務(wù)提供商計(jì)算機(jī) 106可W經(jīng)網(wǎng)絡(luò)108或者經(jīng)其它網(wǎng)絡(luò)連接與用戶設(shè)備104通信。服務(wù)提供商計(jì)算機(jī)106可W包 括一個(gè)或多個(gè)服務(wù)器,有可能布置在集群中、作為服務(wù)器群或者作為彼此不關(guān)聯(lián)的單獨(dú)服 務(wù)器。運(yùn)些服務(wù)器可被配置為執(zhí)行或W別的方式托管本文所述的特征,包括但不限于,本文 所述的CQL關(guān)系的管理、輸入關(guān)系的生成、與輸入關(guān)系關(guān)聯(lián)的可配置窗口運(yùn)算符,和輸出關(guān) 系的生成。此外,在一些方面,服務(wù)提供商計(jì)算機(jī)106可被配置為包括流數(shù)據(jù)源計(jì)算機(jī)110 和/或數(shù)據(jù)庫(kù)112的集成式、分布式計(jì)算環(huán)境的部分。
[0107] 在一種說(shuō)明性配置中,服務(wù)提供商計(jì)算機(jī)106可W包括至少一個(gè)存儲(chǔ)器114和一個(gè) 或多個(gè)處理單元(或(一個(gè)或多個(gè))處理器)134。處理器134可W適當(dāng)?shù)卦谟布?、?jì)算機(jī)可執(zhí) 行指令、固件或者其組合中實(shí)現(xiàn)。(一個(gè)或多個(gè))處理器138的計(jì)算機(jī)可執(zhí)行指令或固件實(shí)現(xiàn) 可W包括W任何合適的編程語(yǔ)言書(shū)寫(xiě)的計(jì)算機(jī)可執(zhí)行或機(jī)器可執(zhí)行指令,W執(zhí)行所描述的 各種功能。
[0108] 存儲(chǔ)器114可W存儲(chǔ)可在(一個(gè)或多個(gè))處理器134上加載并執(zhí)行的程序指令,W及 在運(yùn)些程序執(zhí)行過(guò)程中生成的數(shù)據(jù)。取決于服務(wù)提供商計(jì)算機(jī)106的配置和類型,存儲(chǔ)器 114可W是易失性的(諸如隨機(jī)存取存儲(chǔ)器(RAM))和/或非易失性的(諸如只讀存儲(chǔ)器 (ROM)、閃存存儲(chǔ)器等等)。服務(wù)提供商計(jì)算機(jī)106或服務(wù)器還可W包括附加的儲(chǔ)存器136,它 可W包括可移除的儲(chǔ)存器和/或不可移除的儲(chǔ)存器。附加的儲(chǔ)存器136可W包括,但不限于, 磁儲(chǔ)存器、光盤(pán)和/或帶儲(chǔ)存器。盤(pán)驅(qū)動(dòng)器及其關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì)可W提供用于計(jì)算設(shè) 備的計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的非易失性存儲(chǔ)。在一些實(shí)現(xiàn)中,存 儲(chǔ)器114可W包括多種不同類型的存儲(chǔ)器,諸如靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取 存儲(chǔ)器(DRAM)或ROM。
[0109] 都是可移除和不可移除的存儲(chǔ)器114、附加的儲(chǔ)存器136全是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì) 的例子。例如,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可W包括W任何方法或技術(shù)實(shí)現(xiàn)的易失性或非易失性、 可移除或不可移除的介質(zhì),用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù) 的信息。存儲(chǔ)器114和附加的儲(chǔ)存器136都是計(jì)算機(jī)存儲(chǔ)介質(zhì)的例子。
[0110] 服務(wù)提供商計(jì)算機(jī)106還可W包含允許服務(wù)提供商計(jì)算機(jī)106與所存儲(chǔ)的數(shù)據(jù)庫(kù)、 另一計(jì)算設(shè)備或服務(wù)器、用戶終端和/或其它設(shè)備在網(wǎng)絡(luò)108上通信的(一個(gè)或多個(gè))通信連 接138。服務(wù)提供商計(jì)算機(jī)106還可W包括(一個(gè)或多個(gè))輸入/輸出(I/O)設(shè)備140,諸如鍵 盤(pán)、鼠標(biāo)、筆、語(yǔ)音輸入設(shè)備、觸摸輸入設(shè)備、顯示器、一個(gè)或多個(gè)揚(yáng)聲器、打印機(jī)等等。
[0111] 更具體地轉(zhuǎn)向存儲(chǔ)器114的內(nèi)容,存儲(chǔ)器114可W包括操作系統(tǒng)124和用于實(shí)現(xiàn)本 文所公開(kāi)的特征的一個(gè)或多個(gè)應(yīng)用程序或服務(wù),包括至少輸入數(shù)據(jù)流模塊116、動(dòng)態(tài)數(shù)據(jù)類 型生成模塊118、組合數(shù)據(jù)流生成模塊120和樣式檢測(cè)模塊122。如本文所使用的,模塊可W 指由服務(wù)器或服務(wù)器集群執(zhí)行的作為服務(wù)的一部分的編程模塊。在運(yùn)種特定的語(yǔ)境下,模 塊可被作為服務(wù)提供商計(jì)算機(jī)106的一部分的服務(wù)器或服務(wù)器集群執(zhí)行。在其它實(shí)施例中, 模塊可W由WL引擎和/或CQ服務(wù)200執(zhí)行(在圖2中示出),其可W是服務(wù)供應(yīng)商的計(jì)算機(jī) 106的一部分。在各種實(shí)施例中,并且如下面將詳細(xì)討論的,模塊116、118、120和122可被配 置為執(zhí)行使得能夠跨多個(gè)輸入數(shù)據(jù)流檢測(cè)樣式的功能。運(yùn)些模塊可W在硬件或軟件或其組 合中實(shí)現(xiàn)。圖1中繪出的各種模塊為了說(shuō)明的目的而不是意在限制本發(fā)明的實(shí)施例的范圍。 備選實(shí)施例可W包括比圖1中所示的那些更多或更少的模塊。
[0112] 在一種實(shí)施例中,輸入數(shù)據(jù)流模塊116可被配置為接收、識(shí)別、生成或W其它方式 提供一個(gè)或多個(gè)輸入數(shù)據(jù)流126。在一個(gè)例子中,(一個(gè)或多個(gè))輸入數(shù)據(jù)流126可W包括與 一個(gè)或多個(gè)應(yīng)用相關(guān)的數(shù)據(jù)或事件的傳入的連續(xù)數(shù)據(jù)流。在一些實(shí)施例中,輸入數(shù)據(jù)流126 可W從數(shù)據(jù)源計(jì)算機(jī)110和/或數(shù)據(jù)庫(kù)112接收。
[0113] 在一些例子中,(一個(gè)或多個(gè))輸入數(shù)據(jù)流126可W包括與一個(gè)或多個(gè)應(yīng)用相關(guān)的 一系列加時(shí)間戳的元組或數(shù)據(jù)記錄。例如,(一個(gè)或多個(gè))輸入數(shù)據(jù)流126中的每個(gè)數(shù)據(jù)記錄 可W包括可由W下模式表示的事件流條目:(<time_s tamp〉,〈attribute (S)〉),其中< attributes〉表示模式的數(shù)據(jù)部分并且可W包括一個(gè)或多個(gè)屬性。
[0114] 作為例子,考慮(一個(gè)或多個(gè))輸入數(shù)據(jù)流126包括第一數(shù)據(jù)流和第二數(shù)據(jù)流。為了 運(yùn)個(gè)例子,進(jìn)一步考慮第一輸入數(shù)據(jù)流包括與第一應(yīng)用(例如,汽車租賃預(yù)訂應(yīng)用)相關(guān)的 第一組事件并且第二輸入數(shù)據(jù)流包括與第二應(yīng)用(例如,航班預(yù)訂應(yīng)用)相關(guān)的第二組事 件。此外,考慮第一輸入數(shù)據(jù)流由第一模式S1定義:(cl,intege;r,c2intege;r)并且第二輸入 數(shù)據(jù)流由第二模式S2定義:(cl,integer,cSinteger)。
[0115] 在一種實(shí)施例中,第一輸入數(shù)據(jù)流和第二輸入數(shù)據(jù)流可被分析,W檢測(cè)樣式,其 中,"樣式"可W構(gòu)成第一數(shù)據(jù)流中一個(gè)事件的發(fā)生,后面跟著第二數(shù)據(jù)流中另一個(gè)事件的 發(fā)生。在一個(gè)例子中,樣式匹配可通過(guò)對(duì)傳入的連續(xù)數(shù)據(jù)流應(yīng)用連續(xù)查詢(例如,C化查詢) 來(lái)執(zhí)行。圖2描述了用于通過(guò)對(duì)多個(gè)輸入數(shù)據(jù)流應(yīng)用C化查詢來(lái)執(zhí)行樣式匹配的CQL引擎和/ 或CQ服務(wù)200的至少一種實(shí)現(xiàn)。雖然上面的討論設(shè)及跨第一數(shù)據(jù)流和第二數(shù)據(jù)流檢測(cè)樣式 的檢測(cè),但應(yīng)當(dāng)認(rèn)識(shí)到,在至少一些實(shí)施例中,所公開(kāi)的技術(shù)可W應(yīng)用于跨多個(gè)連續(xù)的輸入 數(shù)據(jù)流檢測(cè)樣式。
[0116] 在一些實(shí)施例中,輸入數(shù)據(jù)流的分析最初可W由動(dòng)態(tài)數(shù)據(jù)類型生成模塊118執(zhí)行。 在一種實(shí)施例中,動(dòng)態(tài)數(shù)據(jù)類型生成模塊118可被配置為從輸入數(shù)據(jù)流模塊116接收第一輸 入數(shù)據(jù)流和第二輸入數(shù)據(jù)流并且識(shí)別輸入數(shù)據(jù)流中的一個(gè)或多個(gè)屬性。在一些例子中,動(dòng) 態(tài)數(shù)據(jù)類型生成模塊118可被配置為識(shí)別第一數(shù)據(jù)流的第一屬性和第二數(shù)據(jù)流的第二屬 性。在一個(gè)例子中,第一屬性可被識(shí)別為不在第二數(shù)據(jù)流中存在的屬性并且第二屬性可被 識(shí)別為不在第一數(shù)據(jù)流中存在的屬性。
[0117] 經(jīng)由上面討論的流S1和S2的例子,在一種實(shí)施例中,動(dòng)態(tài)數(shù)據(jù)類型生成模塊118可 W將第一屬性"c2"識(shí)別為第一數(shù)據(jù)流S1中不在第二數(shù)據(jù)流S2中存在的屬性。類似地,動(dòng)態(tài) 數(shù)據(jù)類型生成模塊118可W將第二屬性"c3"識(shí)別為第二數(shù)據(jù)流S2中不在第一數(shù)據(jù)流S1中存 在的屬性。雖然上面的討論設(shè)及在流S1和S2中識(shí)別出的第一屬性和第二屬性,但是應(yīng)當(dāng)認(rèn) 識(shí)到,在其它實(shí)施例中,動(dòng)態(tài)數(shù)據(jù)類型生成模塊118可被配置為從流S1和S2識(shí)別附加屬性。
[0118] 在一些實(shí)施例中,動(dòng)態(tài)數(shù)據(jù)類型生成模塊118可被配置為生成用于第一屬性的第 一動(dòng)態(tài)數(shù)據(jù)類型和用于第二屬性的第二動(dòng)態(tài)數(shù)據(jù)類型。在一個(gè)例子中,第一動(dòng)態(tài)數(shù)據(jù)類型 被配置為存儲(chǔ)對(duì)應(yīng)于第一數(shù)據(jù)流的第一屬性的第一數(shù)據(jù)值并且第二動(dòng)態(tài)數(shù)據(jù)類型被配置 為存儲(chǔ)對(duì)應(yīng)于第二數(shù)據(jù)流的第二屬性的第二數(shù)據(jù)值。
[0119] 在一些實(shí)施例中,動(dòng)態(tài)數(shù)據(jù)類型可被實(shí)現(xiàn)為包括一個(gè)或多個(gè)在本文中被稱為"字 段"成員類型的復(fù)合數(shù)據(jù)類型。在一個(gè)例子中,成員字段可W包括名稱和關(guān)聯(lián)的類型。字段 類型可W是任何C化原生類型,諸如像CQL可擴(kuò)展類型。在一些例子中,服務(wù)(例如,圖2中所 示的CQL引擎和/或CQ服務(wù)200)可被配置為通過(guò)提供一個(gè)或多個(gè)應(yīng)用編程接口(API)實(shí)現(xiàn)用 于動(dòng)態(tài)數(shù)據(jù)類型的CQL可擴(kuò)展類型,通過(guò)運(yùn)些API,動(dòng)態(tài)數(shù)據(jù)類型可W通過(guò)指定其公開(kāi)字段 (例如,字段名、字段的數(shù)據(jù)類型)被創(chuàng)建和定義。
[0120] 在某些實(shí)施例中,動(dòng)態(tài)數(shù)據(jù)類型生成模塊118可被配置為識(shí)別共同屬性,共同屬性 可被識(shí)別為是在第一數(shù)據(jù)流和第二數(shù)據(jù)流中都存在的屬性。在一種實(shí)施例中,動(dòng)態(tài)數(shù)據(jù)類 型生成模塊118然后可被配置為生成表示第一輸入數(shù)據(jù)流和第二輸入數(shù)據(jù)流的同質(zhì)模式 128。在一個(gè)例子中,同質(zhì)模式128可W包括第一輸入數(shù)據(jù)流和第二輸入數(shù)據(jù)流的一個(gè)或多 個(gè)屬性的表示,包括共同屬性和第一動(dòng)態(tài)數(shù)據(jù)類型和第二動(dòng)態(tài)數(shù)據(jù)類型。
[0121] 經(jīng)由上面所示的第一輸入數(shù)據(jù)流S1和第二輸入數(shù)據(jù)S2的例子,在一種實(shí)施例中, 可W如下生成用于流S1和S2的同質(zhì)模式:
[0122] 同質(zhì)模式:($s1:reamName char, clint, SlTypliDynamicType(^i;rt;ridge , S2Typ2@ DynamicTypeC曰rtridge)
[0123] 在運(yùn)里,"$streamName"指同質(zhì)模式中具有數(shù)據(jù)類型char的屬性。"$streamNam"屬 性從輸入數(shù)據(jù)流中識(shí)別接收到的輸入元組(事件)的輸入數(shù)據(jù)流源。對(duì)于事件"e","$ S treamNam"屬性可W存儲(chǔ)其中"e"是事件的流別名的名稱。因此,"$ S treamName"屬性使得 能夠識(shí)別當(dāng)前輸入事件(元組)所屬的特定輸入數(shù)據(jù)流。"cl"指同質(zhì)模式中的共同屬性,其 中共同屬性被識(shí)別為在每個(gè)參與的輸入數(shù)據(jù)流中具有相同數(shù)據(jù)類型和的相同名稱的屬性。 例如,共同屬性"cl"可W指識(shí)別訪問(wèn)與輸入數(shù)據(jù)流S1和S2相關(guān)的第一應(yīng)用和第二應(yīng)用的用 戶的用戶屬性。在一些例子中,包括共同屬性的同質(zhì)模式可W使PARTITION by子句的規(guī)范 能夠創(chuàng)建本身可W包含來(lái)自不同輸入數(shù)據(jù)流的事件的子流。
[0124] 此外,"Typl@DynamicTypeCa;rt;ridge"指被配置為存儲(chǔ)對(duì)應(yīng)于第一數(shù)據(jù)流的第一 屬性的第一數(shù)據(jù)值的第一動(dòng)態(tài)數(shù)據(jù)類型。在一個(gè)例子中,"Typl@DynamicTypeCa;rt;ridge"可 被用來(lái)存儲(chǔ)對(duì)應(yīng)于第一輸入數(shù)據(jù)流S1中的第一屬性"c2"的數(shù)據(jù)值。作為例子,第一輸入數(shù) 據(jù)流S1中的第一屬性"c2"可W指存儲(chǔ)來(lái)自訪問(wèn)第一應(yīng)用(例如,汽車租賃預(yù)訂應(yīng)用)的用戶 的汽車預(yù)訂標(biāo)識(shí)號(hào)的車預(yù)訂屬性。
[0125] 類似地,叮yp2@DynamicTypeCadridge"指被配置為存儲(chǔ)對(duì)應(yīng)于第二數(shù)據(jù)流的第 二屬性的第二數(shù)據(jù)值的第二動(dòng)態(tài)數(shù)據(jù)類型。在一個(gè)例子中,叮yp2@DynamicType&d;ridge" 可被用來(lái)存儲(chǔ)對(duì)應(yīng)于第二輸入數(shù)據(jù)流S2中的第二屬性"c3"的數(shù)據(jù)值。作為例子,第二輸入 數(shù)據(jù)流S2的第二屬性"c3"可W指存儲(chǔ)用于訪問(wèn)第二應(yīng)用(例如,航班預(yù)訂應(yīng)用)的用戶的航 班預(yù)訂標(biāo)識(shí)號(hào)的航班預(yù)訂屬性。
[01%] 對(duì)于上面的例子,可W觀察到,有一個(gè)用于類型S1的屬性(例如,"c2")"Typl@ DynamicTypeCartridge"和一個(gè)用于類型 S2 的屬性(例如,"c3" ) "Typ2@ DynamicType&;rt;ridge"。叮ypl@DynamicType(^i;rt;ridge"可 W包括用于相同數(shù)據(jù)類型的流 S1的每個(gè)屬性的一個(gè)公共字段。類似地,叮yp2咖ynamicTypehdridge"可W包括用于流S2 的每個(gè)屬性的一個(gè)公共字段??蒞指出,Typl和Typ2是內(nèi)部類型并且可W是最終用戶不可 見(jiàn)的。對(duì)于所考慮的例子,Typl可W包括公共字段"cl"和"c2",而Typ2可W包括公共字段 "cl"和"c3"。
[0127]基于運(yùn)樣生成的同質(zhì)模式,在一種實(shí)施例中,組合數(shù)據(jù)流生成模塊120可被配置為 生成組合數(shù)據(jù)流。在一個(gè)例子中,組合數(shù)據(jù)流可W通過(guò)執(zhí)行第一輸入數(shù)據(jù)流和第二輸入數(shù) 據(jù)流的UNION來(lái)生成,其中第一輸入數(shù)據(jù)流和第二輸入數(shù)據(jù)流由同質(zhì)模式S表示。在一個(gè)例 子中,WL UNION A化子查詢可W基于同質(zhì)模式S被應(yīng)用到第一數(shù)據(jù)流S1和第二數(shù)據(jù)流S2, W組合流S1和S2的結(jié)果集。同質(zhì)模式的生成使UNION A化子查詢中的每個(gè)CQL SELECT語(yǔ)句 能夠在結(jié)果集中具有相同數(shù)量的字段和類似的數(shù)據(jù)類型。相應(yīng)地,流S1和S2的結(jié)果集可W 基于同質(zhì)模式利用UNION A化子查詢中的SELECT語(yǔ)句來(lái)組合。在圖4中討論可W利用UNION A化子查詢組合第一數(shù)據(jù)流和第二數(shù)據(jù)流W生成組合數(shù)據(jù)流的方式。
[0128] 在一些實(shí)施例中,樣式檢測(cè)模塊122然后可被配置為基于組合數(shù)據(jù)流檢測(cè)樣式 132。在一種實(shí)施例中,樣式檢測(cè)模塊可被配置為通過(guò)對(duì)組合數(shù)據(jù)流應(yīng)用MATCH_RECOGNIZE 子句來(lái)輸出樣式匹配。作為例子,檢測(cè)到的樣式可W包括第一輸入數(shù)據(jù)流S1中第一事件的 (例如,用戶對(duì)汽車的預(yù)訂巧Ij達(dá),后面跟著第二輸入數(shù)據(jù)流S2中第二事件(例如,機(jī)票發(fā)給 用戶)的到達(dá)。樣式檢測(cè)模塊可被配置為在識(shí)別多個(gè)輸入數(shù)據(jù)流的C化查詢中執(zhí)行樣式識(shí)別 的方式在圖3中討論。
[0129] 圖2示出了可W描述用于跨多個(gè)輸入數(shù)據(jù)流的樣式檢測(cè)的特征的簡(jiǎn)化框圖。如圖 所示,圖2描述了用于管理多個(gè)輸入數(shù)據(jù)流的CQL引擎和/或CQ服務(wù)200的至少一種實(shí)現(xiàn)。在 一些實(shí)施例中,圖1中所示的模塊116、118、120和122可W由CQL引擎和/或CQ服務(wù)200執(zhí)行。 C化引擎和/或CQ服務(wù)200最初可W從輸入源204接收信息。在一個(gè)例子中,輸入源204可W包 括接收傳入的連續(xù)輸入數(shù)據(jù)流的數(shù)據(jù)源計(jì)算機(jī)110,傳入的連續(xù)輸入數(shù)據(jù)流包括與一個(gè)或 多個(gè)應(yīng)用相關(guān)的數(shù)據(jù)或事件。在某些實(shí)施例中,當(dāng)包括第一輸入數(shù)據(jù)流S1206和第二輸入數(shù) 據(jù)流S2 208的查詢(例如,C化查詢)被識(shí)別或接收到時(shí),C化引擎200可W解析該查詢,W便 跨流S1和S2檢測(cè)樣式。在一種實(shí)施例中,C化引擎和/或CQ服務(wù)200可W通過(guò)首先執(zhí)行第一輸 入數(shù)據(jù)流和第二輸入數(shù)據(jù)流的UNION來(lái)執(zhí)行C化查詢,其中第一輸入數(shù)據(jù)流和第二輸入數(shù)據(jù) 流由同質(zhì)模式S表示。在一種實(shí)施例中,同質(zhì)模式S可W由如在圖1中所討論的動(dòng)態(tài)數(shù)據(jù)類型 生成模塊118生成。
[0130] 然后,輸入數(shù)據(jù)流S1和S2可W基于同質(zhì)模式被組合,W生成組合數(shù)據(jù)流。在一種實(shí) 施例中,組合數(shù)據(jù)流可W由組合數(shù)據(jù)流模塊120生成。然后,樣式檢測(cè)模塊122可W處理對(duì)組 合數(shù)據(jù)流的連續(xù)查詢(例如,C化查詢),W便跨輸入數(shù)據(jù)流檢測(cè)樣式。在一種實(shí)施例中,樣式 檢測(cè)模塊可被配置為通過(guò)對(duì)組合數(shù)據(jù)流應(yīng)用MATCH_RECOGNIZE子句來(lái)輸出樣式匹配。在一 些例子中,然后,CQL引擎和/或CQ服務(wù)200可W將檢測(cè)到的樣式存儲(chǔ)在輸出目的地212中,諸 如像圖1中所示的數(shù)據(jù)庫(kù)112中。
[0131] 圖3是根據(jù)本公開(kāi)內(nèi)容的一種實(shí)施例、利用識(shí)別多個(gè)輸入數(shù)據(jù)流的CQL查詢執(zhí)行樣 式識(shí)別的示例性說(shuō)明。在一個(gè)例子中,查詢300是指定要跨第一輸入數(shù)據(jù)流S1和第二輸入數(shù) 據(jù)流S2匹配的樣式的連續(xù)(例如,C化)查詢。在圖3所示的例子中,流S1和S2在用括號(hào)包圍的 W逗號(hào)隔開(kāi)的列表中指定并且作為輸入提供給MATCH_RECOGNIZE子句。其結(jié)果是,查詢300 的FROM子句可W方便地利用下式表示:(S1,S2)MTCH_RECOGNIZE。在一些例子中,列表中的 每個(gè)流可被識(shí)別為基本流或者對(duì)流的視圖評(píng)估或者對(duì)流的子查詢?cè)u(píng)估。
[0132] 當(dāng)流S1和S2如W上所討論的那樣利用逗號(hào)隔開(kāi)的列表指定時(shí),每個(gè)參與的流可能 需要利用獨(dú)特的別名來(lái)識(shí)別。因此,例如,如果MATCH_RECOGNIZE子句對(duì){S,引應(yīng)用,則FROM 子句可能需要被指定為(S,S AS S1)MATCH_REC0GNIZE。即,可選的AS子句可能需要被引入, W便給第二個(gè)流S取別名,W確保獨(dú)特的別名??蒞指出,在其它例子中,如果未指定明確的 AS子句,則流名稱可被認(rèn)為是別名。
[0133] 在一些實(shí)施例中,流S1和S2表達(dá)為逗號(hào)隔開(kāi)的列表可W對(duì)輸入數(shù)據(jù)流S1和S2的 UNION進(jìn)行評(píng)估,其中流S1和S2由同質(zhì)模式定義。在一種實(shí)施例中,并且如在圖4中詳細(xì)討論 的,組合數(shù)據(jù)流可W基于UNION A化子查詢的執(zhí)行而生成并且組合數(shù)據(jù)流可W作為輸入被 提供給MATCH_REC0GNIZE子句。然后,MTCH_REC0GNIZE可被用來(lái)檢測(cè)組合數(shù)據(jù)流中的樣式。
[0134] 如上面所討論的,利用MATCH_RECOGNIZE子句,用戶可W對(duì)傳入的事件的屬性定義 條件并且通過(guò)利用被稱為相關(guān)變量的標(biāo)識(shí)符識(shí)別用于樣式匹配的條件。樣式識(shí)別功能允許 用戶對(duì)傳入的事件或元組的屬性定義條件并且通過(guò)利用被稱為相關(guān)變量的串名稱識(shí)別運(yùn) 些條件。
[0135] 在查詢300中,"A"是相關(guān)變量。要匹配的樣式被指定為對(duì)運(yùn)個(gè)相關(guān)變量的正則表 達(dá)式并且確定條件應(yīng)當(dāng)被要被識(shí)別為有效匹配的不同的傳入事件滿足的順序或次序。在一 個(gè)例子中,輸入數(shù)據(jù)流S1和S2中滿足運(yùn)些條件的連續(xù)事件序列構(gòu)成樣式。在一種實(shí)施例中, MATCH_RECOGNIZE查詢的輸出是流。
[0136] 圖4是根據(jù)本公開(kāi)內(nèi)容的另一實(shí)施例、利用識(shí)別多個(gè)輸入數(shù)據(jù)流的CQL查詢執(zhí)行樣 式識(shí)別的示例性說(shuō)明。在一種實(shí)施例中,圖4中所示的查詢400繪出了查詢300的FROM子句的 內(nèi)部表示。在一個(gè)例子中,F(xiàn)ROM子句可被表示為流S1和S2的UNION A化子查詢,其中流S1和 S2由同質(zhì)模式表示。
[0137] 對(duì)于圖4中所示的例子,表示流S1和S2的同質(zhì)模式可W如下生成:
[013 引 同質(zhì)模式 S:($streamName char, Clint, ELEMENT_TIME int,SlTypl@ DynamicTypeC曰rtridge,S2
[0139] Typ2@DynamicType&;rt;ridge(^i;rt;ridge)
[0140] 在運(yùn)里,叮7口1@〇711曰111;[(3了7口6化1'付1(1旨6"表示為不在流52中存在的流51的屬性生 成的第一動(dòng)態(tài)數(shù)據(jù)類型。類似地,叮yp2@DynamicType^d;ridge"表示為不在流SI中存在的 流S 2的屬性生成的第二動(dòng)態(tài)數(shù)據(jù)類型。對(duì)于圖4中所示的例子,"T y P 1 @ DynamicTypeCa;rt;ridge"表示用于不在流S2中存在的流S1中的第一屬性"c2"的第一動(dòng)態(tài)數(shù) 據(jù)類型,并且"Typ2@DynamicTypeCa;rt;ridge"表示用于不在流S1中存在的流S2中的第二屬 性"c3"的第二動(dòng)態(tài)數(shù)據(jù)類型。
[0141] 在一種實(shí)施例中,W上討論的動(dòng)態(tài)數(shù)據(jù)類型和同質(zhì)模式的生成可W使得流S1和S2 的各個(gè)特定于流的屬性能夠如下被訪問(wèn)。在運(yùn)行時(shí),對(duì)于從流S1接收到的事件,"Typl@ DynamicTypeCartridge"動(dòng)態(tài)數(shù)據(jù)類型可被配置為利用表達(dá)式"Typl@ DynamicTypeCa;rt;ridge(cl, c2)AS S1"表示不在S2中的來(lái)自流S1 的第一屬性"c2",而 "Typ2@DynamicTypeCa;rt;ridge"動(dòng)態(tài)數(shù)據(jù)類型可被配置為利用表達(dá)式"Typ2@ DynamicTypeCa;rt;ridge( )AS S2"表示不在S1中的來(lái)自流S2的第二屬性"c3"。在一個(gè)例子 中,"Typ2@DynamicTypeCa;rt;ridge"可W對(duì)接收到的事件對(duì)流S2的第二屬性"c3"存儲(chǔ)N1XL 值。
[0142] 類似地,對(duì)于從流S2接收到的事件,叮791@〇711曰1]1;[(3了796化的1'1(1旨6"動(dòng)態(tài)數(shù)據(jù)類型 可被配置為將不在S2中的來(lái)自流S1的第一屬性("c2")表示為"Typl@ DynamicTypeCartridge( )AS Sr 并且為屬性 "c2"存儲(chǔ)NULL值。此外,"Typ2@ 0711日111;[。了796化1'化1(1旨6"可被配置為利用表達(dá)式'叮792@07]1日111;[。了796化1'化1(1旨6(。1,。3)八5 S2"表示不在S1中的來(lái)自流S2的第二屬性"c3"。在一種實(shí)施例中,利用上面討論的動(dòng)態(tài)數(shù)據(jù) 類型表示,屬性"c2"可W在CQL查詢中作為S1.C2被訪問(wèn)并且屬性"c3"可W在C化查詢中作 為S2.C3被訪問(wèn)。
[01創(chuàng)此外,在圖4中所示的例子中,屬性"cr和巧LEMENT_TIM護(hù)(時(shí)間戳值)可被識(shí)別為 共同屬性。在一些例子中,共同屬性"cl"可W利用同質(zhì)模式或者作為A.cl或者作為A.S1.cl 被訪問(wèn)。在一些例子中,PARTITION BY子句也可被用來(lái)訪問(wèn)共同屬性。
[0144] 可W認(rèn)識(shí)到,上面討論的同質(zhì)模式和動(dòng)態(tài)數(shù)據(jù)類型的生成使得UNION A化查詢中 的每個(gè)CQL SELECT語(yǔ)句在結(jié)果集中具有相同數(shù)量的字段和類似的數(shù)據(jù)類型。此外,動(dòng)態(tài)數(shù) 據(jù)類型使"WJLL"值被分配給不屬于特定流的屬性。在一種實(shí)施例中,然后,通過(guò)應(yīng)用CQL UNION A化子查詢W組合流S1和S2的結(jié)果集,數(shù)據(jù)流S1和S2的結(jié)果集可W基于同質(zhì)模式被 組合,W生成組合數(shù)據(jù)流。組合數(shù)據(jù)流可被生成的方式可W利用下面的非限制性例子來(lái)解 釋。
[0145] 作為例子,考慮第一輸入數(shù)據(jù)流S1接收下面的事件和關(guān)聯(lián)的時(shí)間戳:
[0146] ...
[0147] (〈timestamp 1000〉,<C1 1,C2 5〉)
[014引(〈timestamp 2000〉,<C1 1,C2 10〉)
[0149] (〈timestamp 3000〉,<C1 1C2 15〉)
[0150] ...
[0151] 類似地,考慮第二輸入數(shù)據(jù)流S2接收下面的事件和關(guān)聯(lián)的時(shí)間戳:
[0152] ...
[0153] (〈timestamp 1000〉,<C1 1,C3 5〉)
[0154] (〈timestamp 2000〉,<C1 1,C3 10〉)
[01 巧](〈timestamp 3000〉,<C1 1C3 15〉)
[0156] ...
[0157] 上面所示的流SI和S2的結(jié)果集可被組合,W生成如下所示的組合數(shù)據(jù)流。在一個(gè) 例子中,組合數(shù)據(jù)流包括可W基于如上討論的同質(zhì)模式利用UNION A化子查詢中的SELECT 語(yǔ)句組合的流S1和S2的結(jié)果集。在一個(gè)例子中,組合數(shù)據(jù)流可W由W下同質(zhì)模式($ streamName, cl, S1. c2, S2, c3)識(shí)別并且可W包括W下事件和關(guān)聯(lián)的時(shí)間戳:
[015引...
[0159] (〈timestamp 1000〉,<S1,C1 1,C2 5,N化L〉)
[0160] (〈timestamp 1000〉,<S2,Cl 1,C2NU化,C3 5〉)
[0161] (〈timestamp 2000〉,<S1,Cl 1,C2 10,C3NU化〉)
[0162] (〈timestamp 2000〉,<S2,Cl 1,C2NU化,C3 10〉)
[0163] (〈timestamp 3000〉,<S1,Cl 1,C2 1,C3NU化〉)
[0164] (〈timestamp 3000〉,<S2,Cl 1,C2NU化,C3 15〉)
[01 化]...
[0166] 圖5和6示出了示出用于實(shí)現(xiàn)本文所述跨多個(gè)輸入數(shù)據(jù)流的樣式檢測(cè)的相應(yīng)過(guò)程 500和600的示例流程圖。運(yùn)些過(guò)程500和600被示為邏輯流程圖,其每個(gè)操作代表可W在硬 件、計(jì)算機(jī)指令或者其組合中實(shí)現(xiàn)的一系列操作。在計(jì)算機(jī)指令的語(yǔ)境下,操作代表存儲(chǔ)在 一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的計(jì)算機(jī)可執(zhí)行指令,當(dāng)指令被一個(gè)或多個(gè)處理器執(zhí)行 時(shí),執(zhí)行所述操作。一般而言,計(jì)算機(jī)可執(zhí)行指令包括執(zhí)行特定功能或?qū)崿F(xiàn)特定數(shù)據(jù)類型的 例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等。操作被描述的次序并不是要被解釋為限制,并且任何 數(shù)量的所描述操作都可任何次序和/或并行地被組合,W實(shí)現(xiàn)過(guò)程。
[0167] 此外,一些、任何或全部過(guò)程可W在利用可執(zhí)行指令配置的一個(gè)或多個(gè)計(jì)算機(jī)系 統(tǒng)的控制下執(zhí)行并且可w實(shí)現(xiàn)為在一個(gè)或多個(gè)處理器上共同執(zhí)行的代碼(例如,可執(zhí)行指 令、一個(gè)或多個(gè)計(jì)算機(jī)程序,或者一個(gè)或多個(gè)應(yīng)用)、硬件或者其組合。如W上所指出的,代 碼可W存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上,例如,W包括可由一個(gè)或多個(gè)處理器執(zhí)行的多條指 令的計(jì)算機(jī)程序的形式。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可W是非暫態(tài)的。
[0168] 圖5是繪出根據(jù)本公開(kāi)內(nèi)容的一種實(shí)施例、用于跨多個(gè)輸入數(shù)據(jù)流檢測(cè)樣式的過(guò) 程的高級(jí)流程圖。在一些例子中,在至少圖1(及其它圖)中所示的一個(gè)或多個(gè)服務(wù)提供商計(jì) 算機(jī)1〇6(例如,利用至少輸入數(shù)據(jù)流模塊116、動(dòng)態(tài)數(shù)據(jù)類型生成模塊118、組合數(shù)據(jù)流生成 模塊120或樣式檢測(cè)模塊122)可W執(zhí)行圖5的過(guò)程500。過(guò)程500可W在502通過(guò)包括識(shí)別和/ 或接收第一輸入數(shù)據(jù)流和第二輸入數(shù)據(jù)流開(kāi)始。
[0169] 在504,過(guò)程500可W包括生成表示第一輸入數(shù)據(jù)流和第二輸入數(shù)據(jù)流的同質(zhì)模 式。同質(zhì)模式可W通過(guò)其生成的過(guò)程在圖6中詳細(xì)討論。
[0170] 在506,過(guò)程500可W包括基于同質(zhì)模式組合第一輸入數(shù)據(jù)流和第二輸入數(shù)據(jù)流, W生成組合數(shù)據(jù)流。在一種實(shí)施例中,生成組合數(shù)據(jù)流可W包括從第一輸入數(shù)據(jù)流選擇第 一組元組(經(jīng)由第一CQL SELECT語(yǔ)句)、從第二輸入數(shù)據(jù)流選擇第二組元組(經(jīng)由第一CQL 沈LECT語(yǔ)句)并且對(duì)第一組元組和第二組元組處理子查詢(例如,UNION A化子查詢),W生 成組合數(shù)據(jù)流。如上面所討論的,同質(zhì)模式的生成使UNION A化子查詢中的每個(gè)CQL SELECT 語(yǔ)句能夠在結(jié)果集中具有相同數(shù)量的字段和類似的數(shù)據(jù)類型。相應(yīng)地,流S1和S2的結(jié)果集 可W基于同質(zhì)模式利用UNION A化子查詢中的SELECT語(yǔ)句被組合,W生成組合數(shù)據(jù)流。
[0171] 在508,過(guò)程500可W包括處理對(duì)組合數(shù)據(jù)流的連續(xù)查詢(例如,C化查詢),W識(shí)別 樣式。在一種實(shí)施例中,基于UNION A化子查詢的執(zhí)行所生成的組合數(shù)據(jù)流可W作為輸入被 提供給MATCH_REC0GNI ZE子句。如在圖3中所討論的,MATCH_REC0GNI ZE子句可被用來(lái)對(duì)組合 數(shù)據(jù)流處理C化查詢,W檢測(cè)組合數(shù)據(jù)流中的樣式。
[0172] 圖6是繪出根據(jù)本公開(kāi)內(nèi)容的一種實(shí)施例、用于生成同質(zhì)模式的過(guò)程的高級(jí)流程 圖。在一種實(shí)施例中,過(guò)程600描述執(zhí)行在圖5中討論的過(guò)程504的更多細(xì)節(jié)。
[0173] 在602,過(guò)程600可W包括識(shí)別第一輸入數(shù)據(jù)流的第一屬性。
[0174] 在604,該過(guò)程可W包括識(shí)別第二輸入數(shù)據(jù)流的第二屬性。在一種實(shí)施例中,第一 屬性可被識(shí)別為不在第二輸入數(shù)據(jù)流中存在的屬性并且第二屬性可被識(shí)別為不在第一輸 入數(shù)據(jù)流中存在的屬性。
[0175] 在606,過(guò)程600可W包括生成表示第一輸入數(shù)據(jù)流的第一屬性的第一動(dòng)態(tài)數(shù)據(jù)類 型。在608,過(guò)程600可W包括生成表示第二輸入數(shù)據(jù)流的第二屬性的第二動(dòng)態(tài)數(shù)據(jù)類型。
[0176] 在610,過(guò)程600可W包括識(shí)別共同屬性。在一種實(shí)施例中,共同屬性可被識(shí)別為在 第一輸入數(shù)據(jù)流和第二輸入數(shù)據(jù)流中都存在的屬性。
[0177] 在612,過(guò)程600可W包括生成同質(zhì)模式。在一種實(shí)施例中,并且如在圖2中詳細(xì)描 述的,同質(zhì)模式可W包括第一輸入數(shù)據(jù)流和第二輸入數(shù)據(jù)流的一個(gè)或多個(gè)屬性的表示,該 表示包括包括至少共同屬性、第一動(dòng)態(tài)數(shù)據(jù)類型和第二動(dòng)態(tài)數(shù)據(jù)類型。
[0178] 圖7繪出了可W結(jié)合本公開(kāi)內(nèi)容的實(shí)施例的事件處理系統(tǒng)700的簡(jiǎn)化高層示圖。事 件處理系統(tǒng)700可W包括一個(gè)或多個(gè)事件源704、706、708、配置為提供用于處理事件流的環(huán) 境的事件處理服務(wù)器化PS)702、W及一個(gè)或多個(gè)事件接收器(710、712)。事件源生成由EPS 702接收的事件流。EPS 702可W從一個(gè)或多個(gè)事件源704、706、708接收一個(gè)或多個(gè)事件流。 例如,如在圖7中所示出的,EPS 702從事件源704接收輸入事件流714、從事件源706接收第 二輸入事件流716、W及從事件源708接收第Ξ事件流718。一個(gè)或多個(gè)事件處理應(yīng)用(720、 722和724)可W部署在EPS 702上并且被其執(zhí)行。由EPS 702執(zhí)行的事件處理應(yīng)用可被配置 為監(jiān)聽(tīng)一個(gè)或多個(gè)輸入事件流、基于從輸入事件流選擇一個(gè)或多個(gè)事件作為顯著事件的處 理邏輯處理經(jīng)所述一個(gè)或多個(gè)事件流接收到的事件。顯著事件然后可-個(gè)或多個(gè)輸出 事件流的形式被發(fā)送到一個(gè)或多個(gè)事件接收器710、712。例如,在圖7中,EPS 702將輸出事 件流726輸出到事件接收器710,并且將第二輸出事件流728輸出到事件接收器712。在某些 實(shí)施例中,事件源、事件處理應(yīng)用和事件接收器彼此分離,使得在不對(duì)其它組件造成變化的 情況下,可W添加或去除運(yùn)些組件中的任何組件。
[0179] 在一種實(shí)施例中,EPS 702可被實(shí)現(xiàn)為包括輕量級(jí)化va應(yīng)用容器的化va服務(wù)器,諸 如基于Equinox OSGi、具有共享服務(wù)的服務(wù)器。在一些實(shí)施例中,EPS 702可W例如通過(guò)利 用JRockit Real Time支持處理事件的超高吞吐量和微秒級(jí)延遲。EPS 702也可W提供包括 用于開(kāi)發(fā)事件處理應(yīng)用的工具(例如,Oracle CEP Visualize!·和Oracle CEP IDE)的開(kāi)發(fā) 平臺(tái)(例如,完全實(shí)時(shí)的端對(duì)端化va事件驅(qū)動(dòng)體系架構(gòu)化DA)開(kāi)發(fā)平臺(tái))。
[0180] 事件處理應(yīng)用被配置為監(jiān)聽(tīng)一個(gè)或多個(gè)輸入事件流、執(zhí)行用于從運(yùn)一個(gè)或多個(gè)輸 入事件流選擇一個(gè)或多個(gè)顯著事件的邏輯(例如,查詢)、W及經(jīng)一個(gè)或多個(gè)輸出事件流將 選定的顯著事件輸出到一個(gè)或多個(gè)事件源。圖7提供了用于一個(gè)運(yùn)種事件處理應(yīng)用720的展 開(kāi)圖。如在圖7中所示出的,事件處理應(yīng)用720被配置為監(jiān)聽(tīng)輸入事件流718、經(jīng)由包括用于 從輸入事件流718選擇一個(gè)或多個(gè)顯著事件的邏輯的CQL引擎/CQ服務(wù)200執(zhí)行查詢、W及經(jīng) 輸出事件流728將選定的顯著事件輸出到事件接收器712。事件源的例子包括,但不限于,適 配器(例如,JMS、HTTP和文件)、信道、處理器、表、高速緩存,等等。事件接收器的例子包括, 但不限于,適配器(例如,JMS、HTT巧日文件)、信道、處理器、高速緩存,等等。
[0181] 雖然圖7中的事件處理應(yīng)用720被示為監(jiān)聽(tīng)一個(gè)輸入流并且經(jīng)一個(gè)輸出流輸出選 定的事件,但運(yùn)不是要進(jìn)行限制。在可替代的實(shí)施例中,事件處理應(yīng)用可被配置為監(jiān)聽(tīng)從一 個(gè)或多個(gè)事件源接收到的多個(gè)輸入流、從被監(jiān)視的流中選擇事件、并且經(jīng)一個(gè)或多個(gè)輸出 事件流將選定的事件輸出到一個(gè)或多個(gè)事件接收器。同一查詢可W與多于一個(gè)的事件接收 器和與不同類型的事件接收器相關(guān)聯(lián)。
[0182] 由于其無(wú)界的性質(zhì),經(jīng)事件流接收到的數(shù)據(jù)的量通常非常大。因此,為了查詢目的 存儲(chǔ)或歸檔所有數(shù)據(jù)通常是不切實(shí)際的并且不是所期望的。事件流的處理需要隨著事件被 EPS 702接收實(shí)時(shí)地進(jìn)行事件處理,而不必存儲(chǔ)所有接收到的事件數(shù)據(jù)。因此,EPS 702提供 特殊的查詢機(jī)制,其使得事件的處理隨著事件被EPS 702接收來(lái)執(zhí)行,而不必存儲(chǔ)所有接收 到的事件。
[0183] 事件驅(qū)動(dòng)的應(yīng)用是規(guī)則驅(qū)動(dòng)的并且運(yùn)些規(guī)則可用來(lái)處理輸入流的連續(xù)查詢 的形式來(lái)表達(dá)。連續(xù)查詢可W包括識(shí)別要為接收到的事件執(zhí)行的、包括哪些事件要被選擇 作為顯著事件的處理并且輸出作為查詢處理的結(jié)果的指令(例如,業(yè)務(wù)邏輯)。連續(xù)查詢可 被持久保存到數(shù)據(jù)存儲(chǔ)庫(kù)并且用于處理輸入事件流和生成輸出事件流。連續(xù)查詢通常執(zhí)行 過(guò)濾和聚合功能,W從輸入事件流中發(fā)現(xiàn)和提取顯著事件。因此,輸出事件流中的出站事件 的數(shù)量通常比從中選擇事件的輸入事件流中的事件的數(shù)量少得多。
[0184] 不像在有限數(shù)據(jù)集運(yùn)行一次的S化查詢,已由應(yīng)用向EPS 702注冊(cè)用于特定事件流 的連續(xù)查詢可W在每次那個(gè)事件流中接收到事件時(shí)被執(zhí)行。作為連續(xù)查詢執(zhí)行的部分,EPS 702基于由連續(xù)查詢指定的指令評(píng)估接收到的事件,W確定一個(gè)或多個(gè)事件是否要被選擇 作為顯著事件,并且作為連續(xù)查詢執(zhí)行的結(jié)果輸出。
[0185] 連續(xù)查詢可W利用不同的語(yǔ)言來(lái)編程。在某些實(shí)施例中,連續(xù)查詢可W利用由 Oracle公司提供的并且被Oracle的復(fù)雜事件處理(Complex Exents Processing,CEP)產(chǎn)品 系列使用的CQL進(jìn)行配置。Oracle的CQL是可W用來(lái)編程可針對(duì)事件流執(zhí)行的查詢(被稱為 C化查詢)的聲明性語(yǔ)言。在某些實(shí)施例中,C化基于SQL,其中添加了支持流事件數(shù)據(jù)的處理 的構(gòu)造。
[0186] 在一種實(shí)施例中,事件處理應(yīng)用可W由W下組件類型構(gòu)成:
[0187] (1)直接接口到輸入和輸出流W及關(guān)系源和接收器的一個(gè)或多個(gè)適配器。適配器 被配置為理解輸入和輸出流協(xié)議,并且負(fù)責(zé)將事件數(shù)據(jù)轉(zhuǎn)換為可被應(yīng)用處理器查詢的規(guī)格 化的形式。適配器可W將規(guī)格化的事件數(shù)據(jù)轉(zhuǎn)發(fā)到信道或者輸出流和關(guān)系接收器。可W為 各種數(shù)據(jù)源和接收器定義事件適配器。
[0188] (2)充當(dāng)事件處理端點(diǎn)的一個(gè)或多個(gè)信道。除其它之外,信道還負(fù)責(zé)將事件數(shù)據(jù)排 隊(duì),直到事件處理代理可W對(duì)其操作。
[0189] (3) -個(gè)或多個(gè)應(yīng)用處理器(或事件處理代理)被配置為消費(fèi)來(lái)自信道的規(guī)格化事 件數(shù)據(jù)、利用查詢處理它W選擇顯著事件、并且將選定的顯著事件轉(zhuǎn)發(fā)(或者復(fù)制)到輸出 信道。
[0190] (4) 一個(gè)或多個(gè)bean被配置為監(jiān)聽(tīng)輸出信道,并且由于新事件插入到輸出信道中 而被觸發(fā)。在一些實(shí)施例中,運(yùn)種用戶代碼是簡(jiǎn)單的老化va對(duì)象(plain-old-Java-object, P0J0)。用戶應(yīng)用可W利用一組外部服務(wù),諸如JMS、Web服務(wù)和文件書(shū)寫(xiě)器,把生成的事件轉(zhuǎn) 發(fā)到外部事件接收器。
[0191] (5)事件bean可被注冊(cè),W監(jiān)聽(tīng)輸出信道,并且由于新事件插入到輸出信道中而被 觸發(fā)。在一些實(shí)施例中,運(yùn)種用戶代碼可W使用化acle CEP事件bean API,使得bean可被 Oracle CEP管理。
[0192] 在一種實(shí)施例中,事件適配器向輸入信道提供事件數(shù)據(jù)。輸入信道連接到與一個(gè) 或多個(gè)CQL查詢相關(guān)聯(lián)的C化處理器,其中CQL查詢對(duì)由輸入信道提供的事件操作。C化處理 器連接到查詢結(jié)果要寫(xiě)到其的輸出信道。
[0193] 在一些實(shí)施例中,組裝文件可W提供給事件處理應(yīng)用,該文件描述事件處理應(yīng)用 的各種組件、組件如何被連接到一起、被應(yīng)用處理的事件類型??蒞提供單獨(dú)的文件,用于 為事件的選擇指定連續(xù)查詢或業(yè)務(wù)邏輯。
[0194] 應(yīng)當(dāng)認(rèn)識(shí)到,圖7中所繪出的系統(tǒng)700可W具有除圖7中所繪出的之外的其它組件。 另外,圖7中所示的實(shí)施例僅僅是可W結(jié)合本公開(kāi)內(nèi)容實(shí)施例的系統(tǒng)的一個(gè)例子。在一些其 它實(shí)施例中,系統(tǒng)700可W具有比圖7中所示更多或更少的組件、可W組合兩個(gè)或更多個(gè)組 件、或者可W具有組件的不同配置或布置。系統(tǒng)700可W是各種類型,包括個(gè)人計(jì)算機(jī)、便攜 式設(shè)備(例如,移動(dòng)電話或設(shè)備)、工作站、網(wǎng)絡(luò)計(jì)算機(jī)、大型機(jī)、信息站、服務(wù)器,或者任何其 它數(shù)據(jù)處理系統(tǒng)。在一些其它實(shí)施例中,系統(tǒng)700可被配置為分布式系統(tǒng),其中系統(tǒng)700的一 個(gè)或多個(gè)組件跨云中的一個(gè)或多個(gè)網(wǎng)絡(luò)分布。
[01%]圖7中所繪出組件中的一個(gè)或多個(gè)組件可W用軟件、用硬件或者其組合來(lái)實(shí)現(xiàn)。在 一些實(shí)施例中,軟件可w存儲(chǔ)在存儲(chǔ)器(例如,非暫態(tài)計(jì)算機(jī)可讀介質(zhì))、存儲(chǔ)器設(shè)備或某種 其它物理存儲(chǔ)器上,并且可W由一個(gè)或多個(gè)處理單元(例如,一個(gè)或多個(gè)處理器、一個(gè)或多 個(gè)處理器核屯、、一個(gè)或多個(gè)GPU,等等)執(zhí)行。
[0196] 在一些圖中繪出的系統(tǒng)可W在各種配置中提供。在一些實(shí)施例中,系統(tǒng)可被配置 為分布式系統(tǒng),其中系統(tǒng)的一個(gè)或多個(gè)組件在云計(jì)算系統(tǒng)中跨一個(gè)或多個(gè)網(wǎng)絡(luò)分布。
[0197] 圖8繪出了用于實(shí)現(xiàn)其中一種實(shí)施例的分布式系統(tǒng)800的簡(jiǎn)化圖。在所示出的實(shí)施 例中,分布式系統(tǒng)800包括一個(gè)或多個(gè)客戶端計(jì)算設(shè)備802、804、806和808,其被配置為經(jīng)一 個(gè)或多個(gè)網(wǎng)絡(luò)810執(zhí)行和操作客戶端應(yīng)用,諸如web瀏覽器、專有客戶端(例如,Oracle 化rms)等。服務(wù)器812可W經(jīng)由網(wǎng)絡(luò)810與遠(yuǎn)程客戶端計(jì)算設(shè)備802、804、806和808通信地禪 厶 1=1 〇
[0198] 在各種實(shí)施例中,服務(wù)器812可W適于運(yùn)行由系統(tǒng)的組件中的一個(gè)或多個(gè)組件提 供的一個(gè)或多個(gè)服務(wù)或軟件應(yīng)用。服務(wù)器或軟件應(yīng)用可W包括非虛擬和虛擬環(huán)境。虛擬環(huán) 境可W包括用于虛擬事件、展覽會(huì)、模擬器、教室、購(gòu)物交易和企業(yè)的那些環(huán)境,無(wú)論是二維 或Ξ維(3D)表示、基于頁(yè)面的邏輯環(huán)境、還是W其它方式。在一些實(shí)施例中,運(yùn)些服務(wù)可W 作為基于web或云的服務(wù)提供或者根據(jù)軟件即服務(wù)(Software as a Service,SaaS)模型提 供給客戶端計(jì)算設(shè)備802、804、806和/或808的用戶。操作客戶端計(jì)算設(shè)備802、804、806和/ 或808的用戶又可W利用一個(gè)或多個(gè)客戶端應(yīng)用與服務(wù)器812交互,W利用由運(yùn)些組件提供 的服務(wù)。
[0199] 在該圖繪出的配置中,系統(tǒng)800的軟件組件818、820和822被示為在服務(wù)器812上實(shí) 現(xiàn)。在其它實(shí)施例中,系統(tǒng)800的組件中的一個(gè)或多個(gè)組件和/或由運(yùn)些組件提供的服務(wù)也 可W由客戶端計(jì)算設(shè)備802、804、806和/或808中的一個(gè)或多個(gè)來(lái)實(shí)現(xiàn)。操作客戶端計(jì)算設(shè) 備的用戶然后可W利用一個(gè)或多個(gè)客戶端應(yīng)用來(lái)使用由運(yùn)些組件提供的服務(wù)。運(yùn)些組件可 W用硬件、固件、軟件或其組合來(lái)實(shí)現(xiàn)。應(yīng)當(dāng)理解,各種不同的系統(tǒng)配置是可能的,運(yùn)些配置 可W與分布式系統(tǒng)800不同。在該圖中示出的實(shí)施例因此是用于實(shí)現(xiàn)實(shí)施例系統(tǒng)的分布式 系統(tǒng)的一個(gè)例子并且不是要作為限制。
[0200] 客戶端計(jì)算設(shè)備802、804、806和/或808可W是運(yùn)行諸如Microsoft Windows Mobile?和/或諸如i〇S、Windows Phone、And;roid、BlackBe;r;ry 10、Palm OS等各種移動(dòng)操 作系統(tǒng)的軟件并且啟用互聯(lián)網(wǎng)、電子郵件、短消息服務(wù)(SMS)、Blackbeiry?或其它通信 協(xié)議的便攜式手持設(shè)備(例如,iPh(me@、蜂窩電話、iPad?、計(jì)算平板電腦、個(gè)人數(shù)字助 理(PDA))或可穿戴設(shè)備(例如,GoogleG:laSS@頭戴式顯示器)??蛻舳擞?jì)算設(shè)備可W是通 用個(gè)人計(jì)算機(jī),作為例子,包括,運(yùn)行各種版本的Mic;rosoft\VindoWsW%Apple Maeintosh?和/或Linux操作系統(tǒng)的個(gè)人計(jì)算機(jī)和/或筆記本計(jì)算機(jī)??蛻舳擞?jì)算設(shè)備可 W是運(yùn)行任何各種商用UNIX:?或類UNIX操作系統(tǒng),包括但不限于各種GNU/Linux操作系 統(tǒng),諸如像,Google化rome 0S的工作站計(jì)算機(jī)??商娲鼗蚋郊拥兀蛻舳擞?jì)算設(shè)備802、 804、806和808可W是能夠通過(guò)(一個(gè)或多個(gè))網(wǎng)絡(luò)810通信的任何其它電子設(shè)備,諸如瘦客 戶端計(jì)算機(jī)、啟用互聯(lián)網(wǎng)的游戲系統(tǒng)(例如,具有或不具有Kineet?手勢(shì)輸入設(shè)備的 Microsoft甜0X游戲控制臺(tái))和/或個(gè)人消息傳送設(shè)備。
[0201] 雖然示例性分布式系統(tǒng)800被示為具有四個(gè)客戶端計(jì)算設(shè)備,但是任何數(shù)量的客 戶端計(jì)算設(shè)備都可被支持。諸如具有傳感器的設(shè)備等的其它設(shè)備可W與服務(wù)器812交互。
[0202] 在分布式系統(tǒng)800中的(一個(gè)或多個(gè))網(wǎng)絡(luò)810可W是對(duì)本領(lǐng)域技術(shù)人員熟悉的、可 W支持利用包括但不限于TCP/IP(傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議)、SNA(系統(tǒng)網(wǎng)絡(luò)體系結(jié)構(gòu))、 IPX(互聯(lián)網(wǎng)數(shù)據(jù)包交換)、AppleTalk等任何各種商用協(xié)議的數(shù)據(jù)通信的任何類型的網(wǎng)絡(luò)。 僅僅作為例子,(一個(gè)或多個(gè))網(wǎng)絡(luò)810可W是局域網(wǎng)(LAN),諸如基于W太網(wǎng)、令牌環(huán)等的網(wǎng) 絡(luò)。(一個(gè)或多個(gè))網(wǎng)絡(luò)810可W是廣域網(wǎng)和互聯(lián)網(wǎng)。它可W包括虛擬網(wǎng)絡(luò),包括但不限于,虛 擬專用網(wǎng)(VPN)、內(nèi)聯(lián)網(wǎng)、外聯(lián)網(wǎng)、公共交換電話網(wǎng)(PSTN)、紅外網(wǎng)絡(luò)、無(wú)線網(wǎng)絡(luò)(例如,在任 何電氣和電子協(xié)會(huì)(IEEE)802.11協(xié)議套件、藍(lán)牙和/或任何其它無(wú)線協(xié)議下操作的網(wǎng)絡(luò)); 和/或運(yùn)些和/或其它網(wǎng)絡(luò)的任意組合。
[0203] 服務(wù)器812可W由一個(gè)或多個(gè)通用計(jì)算機(jī)、專用服務(wù)器計(jì)算機(jī)(作為例子,包括PC (個(gè)人電腦)服務(wù)器、UNIX?服務(wù)器、中檔服務(wù)器、大型計(jì)算機(jī)、機(jī)架式服務(wù)器等)、服務(wù)器 農(nóng)場(chǎng)、服務(wù)器集群或者任何其它適當(dāng)?shù)牟贾煤?或組合組成。服務(wù)器812可W包括運(yùn)行虛擬 操作系統(tǒng)的一個(gè)或多個(gè)虛擬機(jī),或設(shè)及虛擬化的其它計(jì)算體系架構(gòu)。邏輯存儲(chǔ)設(shè)備的一個(gè) 或多個(gè)靈活池可被虛擬化,W維護(hù)用于服務(wù)器的虛擬存儲(chǔ)設(shè)備。虛擬網(wǎng)絡(luò)可W由服務(wù)器812 利用軟件定義的網(wǎng)絡(luò)來(lái)控制。在各種實(shí)施例中,服務(wù)器812可W適于運(yùn)行在上述公開(kāi)內(nèi)容中 描述的一個(gè)或多個(gè)服務(wù)或軟件應(yīng)用。例如,服務(wù)器812可W對(duì)應(yīng)于用于執(zhí)行上述根據(jù)本公開(kāi) 內(nèi)容的實(shí)施例的處理的服務(wù)器。
[0204] 服務(wù)器812可W運(yùn)行操作系統(tǒng),包括任何W上討論的操作系統(tǒng),
[0205] W及任何商用的服務(wù)器操作系統(tǒng)。服務(wù)器812也可W運(yùn)行任何各種附加的服務(wù)器 應(yīng)用和/或中間層應(yīng)用,包括HTTP(超文本傳輸協(xié)議)服務(wù)器、FTP(文件傳輸協(xié)議)服務(wù)器、 CGI (公共網(wǎng)關(guān)接口)服務(wù)器、JAVA?服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器等。示例性數(shù)據(jù)庫(kù)服務(wù)器包括 但不限于來(lái)自O(shè)racle、Mic;rosoft、Sybase、IBM(國(guó)際商業(yè)機(jī)器公司)等的那些商用數(shù)據(jù)庫(kù)服 務(wù)器。
[0206] 在一些實(shí)現(xiàn)中,服務(wù)器812可W包括一個(gè)或多個(gè)應(yīng)用,W分析和整合從客戶端計(jì)算 設(shè)備802、804、806和808的用戶接收到的數(shù)據(jù)饋送和/或事件更新。作為例子,數(shù)據(jù)饋送和/ 或事件更新可W包括,但不限于,Twit化r?饋送、Faeebook?要新或者從一個(gè)或多個(gè)第 Ξ方信息源和連續(xù)數(shù)據(jù)流接收到的實(shí)時(shí)更新,其可W包括與傳感器數(shù)據(jù)應(yīng)用、金融報(bào)價(jià)機(jī)、 網(wǎng)絡(luò)性能測(cè)量工具(例如,網(wǎng)絡(luò)監(jiān)視和流量管理應(yīng)用)、點(diǎn)擊流分析工具、汽車交通監(jiān)視等相 關(guān)的實(shí)時(shí)事件。服務(wù)器812也可W包括一個(gè)或多個(gè)應(yīng)用,W經(jīng)由客戶端計(jì)算設(shè)備802、804、 806和808中的一個(gè)或多個(gè)顯示設(shè)備顯示數(shù)據(jù)饋送和/或?qū)崟r(shí)事件。
[0207] 分布式系統(tǒng)800也可W包括一個(gè)或多個(gè)數(shù)據(jù)庫(kù)814和816。數(shù)據(jù)庫(kù)814和816可W駐 留在各種位置。作為例子,數(shù)據(jù)庫(kù)814和816中的一個(gè)或多個(gè)數(shù)據(jù)庫(kù)可W駐留在服務(wù)器812本 地的非暫態(tài)存儲(chǔ)介質(zhì)上(和/或駐留在服務(wù)器812中)??商娲兀瑪?shù)據(jù)庫(kù)814和816可W遠(yuǎn)離 服務(wù)器812,并且經(jīng)由基于網(wǎng)絡(luò)的或?qū)S玫倪B接與服務(wù)器812通信。在一組實(shí)施例中,數(shù)據(jù)庫(kù) 814和816可W駐留在存儲(chǔ)區(qū)域網(wǎng)絡(luò)(SAN)中。類似地,用于執(zhí)行屬于服務(wù)器812的功能的任 何必要的文件可W按照需要本地存儲(chǔ)在服務(wù)器812上和/或遠(yuǎn)程地存儲(chǔ)。在一組實(shí)施例,數(shù) 據(jù)庫(kù)814和816可W包括適于響應(yīng)于S化格式的命令而存儲(chǔ)、更新和檢索數(shù)據(jù)的關(guān)系數(shù)據(jù)庫(kù), 諸如由化acle提供的數(shù)據(jù)庫(kù)。
[0208] 圖9是根據(jù)本公開(kāi)內(nèi)容實(shí)施例的、通過(guò)其由實(shí)施例系統(tǒng)的一個(gè)或多個(gè)組件提供的 服務(wù)可被提供為云服務(wù)的系統(tǒng)環(huán)境900的一個(gè)或多個(gè)組件的簡(jiǎn)化框圖。在所示出的實(shí)施例 中,系統(tǒng)環(huán)境900包括可被用戶使用W與提供云服務(wù)的云基礎(chǔ)設(shè)施系統(tǒng)902交互的一個(gè)或多 個(gè)客戶端計(jì)算設(shè)備904、906和908??蛻舳擞?jì)算設(shè)備可被配置為操作可被客戶端計(jì)算設(shè)備的 用戶使用來(lái)與云基礎(chǔ)設(shè)施系統(tǒng)902交互,W使用由云基礎(chǔ)設(shè)施系統(tǒng)902提供的服務(wù)的客戶端 應(yīng)用,諸如web瀏覽器、私有客戶端應(yīng)用(例如,Oracle化rms)或一些其它應(yīng)用。
[0209] 應(yīng)當(dāng)認(rèn)識(shí)到,在該圖中繪出的云基礎(chǔ)設(shè)施系統(tǒng)902可W具有除了所繪出的那些之 外的其它組件。此外,在該圖中示出的實(shí)施例只是可W結(jié)合本發(fā)明的實(shí)施例的云基礎(chǔ)設(shè)施 系統(tǒng)的一個(gè)例子。在一些其它實(shí)施例中,云基礎(chǔ)設(shè)施系統(tǒng)902可W具有比在該圖中示出的組 件更多或更少的組件、可W合并兩個(gè)或更多個(gè)組件、或者可W具有不同的組件配置或布置。
[0210] 客戶端計(jì)算設(shè)備904、906和908可W是類似于上述用于802、804、806和808的那些 設(shè)備。
[0211] 雖然示例性系統(tǒng)環(huán)境900被示為具有Ξ個(gè)客戶端計(jì)算設(shè)備,但是任何數(shù)量的客戶 端計(jì)算設(shè)備都可被支持。諸如具有傳感器的設(shè)備等的其它設(shè)備可W與云基礎(chǔ)設(shè)施系統(tǒng)902 交互。
[0212] (-個(gè)或多個(gè))網(wǎng)絡(luò)910可W促進(jìn)客戶端904、906和908與云基礎(chǔ)設(shè)施系統(tǒng)902之間 的通信和數(shù)據(jù)交換。每個(gè)網(wǎng)絡(luò)可W是對(duì)本領(lǐng)域技術(shù)人員熟悉的、可W支持利用任何各種商 業(yè)協(xié)議的任何類型的網(wǎng)絡(luò),包括上述用于(一個(gè)或多個(gè))網(wǎng)絡(luò)810的那些網(wǎng)絡(luò)。
[0213] 云基礎(chǔ)設(shè)施系統(tǒng)902可W包括一個(gè)或多個(gè)計(jì)算機(jī)和/或服務(wù)器,運(yùn)可W包括上述用 于服務(wù)器812的那些服務(wù)器。
[0214] 在某些實(shí)施例中,由云基礎(chǔ)設(shè)施系統(tǒng)提供的服務(wù)可W包括可W讓云基礎(chǔ)設(shè)施系統(tǒng) 的用戶按需使用的托管的服務(wù),諸如在線數(shù)據(jù)存儲(chǔ)和備份解決方案、基于web的電子郵件服 務(wù)、托管的辦公套件和文檔協(xié)作服務(wù)、數(shù)據(jù)庫(kù)處理、管理的技術(shù)支持服務(wù)等。由云基礎(chǔ)設(shè)施 系統(tǒng)提供的服務(wù)可W動(dòng)態(tài)地?cái)U(kuò)展,W滿足其用戶的需求。由云基礎(chǔ)設(shè)施系統(tǒng)提供的服務(wù)的 具體實(shí)例在本文中稱作為"服務(wù)實(shí)例"。一般地,來(lái)自云服務(wù)提供商系統(tǒng)的、經(jīng)由諸如互聯(lián)網(wǎng) 的通信網(wǎng)絡(luò)對(duì)用戶可用的任何服務(wù)被稱為"云服務(wù)"。通常,在公共云環(huán)境中,構(gòu)成云服務(wù)提 供商的系統(tǒng)的服務(wù)器和系統(tǒng)與客戶自己的辦公場(chǎng)所服務(wù)器和系統(tǒng)不同。例如,云服務(wù)提供 商的系統(tǒng)可W托管應(yīng)用,并且用戶可W經(jīng)由諸如互聯(lián)網(wǎng)的通信網(wǎng)絡(luò)按需訂購(gòu)和使用應(yīng)用。
[0215] 在一些例子中,在計(jì)算機(jī)網(wǎng)絡(luò)云基礎(chǔ)設(shè)施中的服務(wù)可W包括對(duì)由云供應(yīng)商提供給 用戶的存儲(chǔ)、托管數(shù)據(jù)庫(kù)、托管web服務(wù)器、軟件應(yīng)用或其它服務(wù)的受保護(hù)的計(jì)算機(jī)網(wǎng)絡(luò)訪 問(wèn),或者如W其它方式在本領(lǐng)域中已知的。例如,服務(wù)可W包括通過(guò)互聯(lián)網(wǎng)對(duì)云上遠(yuǎn)程存儲(chǔ) 的密碼保護(hù)的訪問(wèn)。作為另一個(gè)例子,服務(wù)可W包括用于被聯(lián)網(wǎng)開(kāi)發(fā)人員私人使用的基于 web服務(wù)的托管關(guān)系數(shù)據(jù)庫(kù)和腳本語(yǔ)言中間件引擎。作為另一個(gè)例子,服務(wù)可W包括對(duì)在云 供應(yīng)商的網(wǎng)站上托管的電子郵件軟件應(yīng)用的訪問(wèn)。
[0216] 在某些實(shí)施例中,云基礎(chǔ)設(shè)施系統(tǒng)902可W包括W自助服務(wù)、基于訂購(gòu)、彈性可擴(kuò) 展、可靠、高可用性并且安全的方式交付給客戶的一套應(yīng)用、中間件和數(shù)據(jù)庫(kù)服務(wù)產(chǎn)品。運(yùn) 種云基礎(chǔ)設(shè)施系統(tǒng)的例子是由本受讓人提供的化acle化blic Cloud。
[0217] "大數(shù)據(jù)"可W由基礎(chǔ)設(shè)施系統(tǒng)在許多級(jí)別上和W不同規(guī)模被托管和/或操縱。非 常大的數(shù)據(jù)集可w由分析師和研究人員存儲(chǔ)并操縱,w可視化大量數(shù)據(jù)、檢測(cè)趨勢(shì),和/或 W其它方式與數(shù)據(jù)進(jìn)行交互。數(shù)十、數(shù)百或數(shù)千并行連接的處理器可W作用于運(yùn)種數(shù)據(jù),W 便呈現(xiàn)它或者模擬對(duì)數(shù)據(jù)或它所代表的內(nèi)容的外力。運(yùn)些數(shù)據(jù)集可W設(shè)及結(jié)構(gòu)化的數(shù)據(jù), 諸如在數(shù)據(jù)庫(kù)中或W其它方式根據(jù)結(jié)構(gòu)化模型組織的數(shù)據(jù),和/或非結(jié)構(gòu)化的數(shù)據(jù)(例如, 電子郵件、圖像、數(shù)據(jù)blob(二進(jìn)制大對(duì)象)、網(wǎng)頁(yè)、復(fù)雜事件處理)。通過(guò)充分利用相對(duì)迅速 地將更多(或更少)計(jì)算資源聚焦到目標(biāo)的實(shí)施例的能力,云基礎(chǔ)設(shè)施系統(tǒng)可W更好地可用 于基于來(lái)自企業(yè)、政府機(jī)構(gòu)、研究機(jī)構(gòu)、私營(yíng)個(gè)體、志同道合的個(gè)人或組織的組或者其它實(shí) 體的需求對(duì)大數(shù)據(jù)集執(zhí)行任務(wù)。
[0218] 在各種實(shí)施例中,云基礎(chǔ)設(shè)施系統(tǒng)902可W適于自動(dòng)供給、管理和跟蹤客戶對(duì)由云 基礎(chǔ)設(shè)施系統(tǒng)902提供的服務(wù)的訂購(gòu)。云基礎(chǔ)設(shè)施系統(tǒng)902可W經(jīng)由不同的部署模型提供云 服務(wù)。例如,服務(wù)可W根據(jù)公共云模型來(lái)提供,其中云基礎(chǔ)設(shè)施系統(tǒng)902由銷售云服務(wù)的組 織擁有(例如,被化acle擁有)并且使得服務(wù)對(duì)一般公眾和不同行業(yè)的企業(yè)可用。作為另一 個(gè)例子,服務(wù)可W根據(jù)私有云模型來(lái)提供,其中云基礎(chǔ)設(shè)施系統(tǒng)902只為單個(gè)組織運(yùn)營(yíng)并且 可W為該組織內(nèi)的一個(gè)或多個(gè)實(shí)體提供服務(wù)。云服務(wù)也可W根據(jù)社區(qū)云模型來(lái)提供,其中 云基礎(chǔ)設(shè)施系統(tǒng)902和由云基礎(chǔ)設(shè)施系統(tǒng)902提供的服務(wù)被相關(guān)社區(qū)中的若干個(gè)組織共享。 云服務(wù)也可W根據(jù)混合云模型來(lái)提供,它是兩種或更多種不同模型的組合。
[0219] 在一些實(shí)施例中,由云基礎(chǔ)設(shè)施系統(tǒng)902提供的服務(wù)可W包括根據(jù)軟件即服務(wù) (SaaS)類別、平臺(tái)即服務(wù)(PaaS)類別、基礎(chǔ)設(shè)施即服務(wù)(laaS)類別、或包括混合服務(wù)的其它 服務(wù)類別提供的一個(gè)或多個(gè)服務(wù)??蛻艚?jīng)由訂購(gòu)訂單可W訂購(gòu)由云基礎(chǔ)設(shè)施系統(tǒng)902提供 的一個(gè)或多個(gè)服務(wù)。云基礎(chǔ)設(shè)施系統(tǒng)902然后執(zhí)行處理,W提供在客戶的訂購(gòu)訂單中的服 務(wù)。
[0220] 在一些實(shí)施例中,由云基礎(chǔ)設(shè)施系統(tǒng)802提供的服務(wù)可W包括但不限于,應(yīng)用服 務(wù)、平臺(tái)服務(wù)和基礎(chǔ)設(shè)施服務(wù)。在一些實(shí)例中,應(yīng)用服務(wù)可W經(jīng)由SaaS平臺(tái)由云基礎(chǔ)設(shè)施系 統(tǒng)提供。SaaS平臺(tái)可被配置為提供屬于SaaS類別的云服務(wù)。例如,SaaS平臺(tái)可W提供在集成 開(kāi)發(fā)和部署平臺(tái)上構(gòu)建和交付一套按需應(yīng)用的能力。SaaS平臺(tái)可W管理和控制用于提供 SaaS服務(wù)的底層軟件和基礎(chǔ)設(shè)施。通過(guò)利用由SaaS平臺(tái)提供的服務(wù),客戶可W利用在云基 礎(chǔ)設(shè)施系統(tǒng)上執(zhí)行的應(yīng)用。客戶可W獲取應(yīng)用服務(wù),而無(wú)需客戶購(gòu)買單獨(dú)的許可和支持。可 W提供各種不同的SaaS服務(wù)。例子包括但不限于,提供用于大型企業(yè)的銷售績(jī)效管理、企業(yè) 整合和業(yè)務(wù)靈活性的解決方案的服務(wù)。
[0221] 在一些實(shí)施例中,平臺(tái)服務(wù)可W經(jīng)由化aS平臺(tái)由云基礎(chǔ)設(shè)施系統(tǒng)提供。PaaS平臺(tái) 可被配置為提供屬于PaaS類別的云服務(wù)。平臺(tái)服務(wù)的例子可W包括但不限于,使組織(諸如 Oracle)能夠在共享、公共的體系架構(gòu)上整合現(xiàn)有應(yīng)用,W及利用由平臺(tái)提供的共享服務(wù)構(gòu) 建新應(yīng)用的能力的服務(wù)。PaaS平臺(tái)可W管理和控制用于提供PaaS服務(wù)的底層軟件和基礎(chǔ)設(shè) 施??蛻艨蒞獲得由云基礎(chǔ)設(shè)施系統(tǒng)提供的化aS服務(wù),而無(wú)需客戶購(gòu)買單獨(dú)的許可和支持。 平臺(tái)服務(wù)的例子包括但不限于,Oracle Java云服務(wù)(Oracle Java Cloud Service,JCS)、 Oracle數(shù)據(jù)庫(kù)云服務(wù)(Oracle Database Cloud Service,DBCS)W及其它服務(wù)。
[0222] 通過(guò)利用由化aS平臺(tái)提供的服務(wù),客戶可W采用由云基礎(chǔ)設(shè)施系統(tǒng)支持的編程語(yǔ) 言和工具并且也可W控制所部署的服務(wù)。在一些實(shí)施例中,由云基礎(chǔ)設(shè)施系統(tǒng)提供的平臺(tái) 服務(wù)可W包括數(shù)據(jù)庫(kù)云服務(wù)、中間件云服務(wù)(例如,Oracle Fusion Middleware服務(wù))和 化va云服務(wù)。在一種實(shí)施例中,數(shù)據(jù)庫(kù)云服務(wù)可W支持使組織能夠集中數(shù)據(jù)庫(kù)資源并且W 數(shù)據(jù)庫(kù)云的形式為客戶提供數(shù)據(jù)庫(kù)即服務(wù)的共享服務(wù)部署模型。中間件云服務(wù)可W為客戶 提供平臺(tái)來(lái)開(kāi)發(fā)和部署各種商業(yè)應(yīng)用,并且化va云服務(wù)可W為客戶提供在云基礎(chǔ)設(shè)施系統(tǒng) 中部署化va應(yīng)用的平臺(tái)。
[0223] 各種不同的基礎(chǔ)設(shè)施服務(wù)可W由云基礎(chǔ)設(shè)施系統(tǒng)中的laaS平臺(tái)提供?;A(chǔ)設(shè)施服 務(wù)促進(jìn)對(duì)諸如存儲(chǔ)、網(wǎng)絡(luò)和其它基本計(jì)算資源的底層計(jì)算資源的管理和控制,W便讓客戶 利用由SaaS平臺(tái)和化aS平臺(tái)提供的服務(wù)。
[0224] 在某些實(shí)施例中,云基礎(chǔ)設(shè)施系統(tǒng)902也可W包括用于提供用來(lái)向云基礎(chǔ)設(shè)施系 統(tǒng)的客戶提供各種服務(wù)的資源的基礎(chǔ)設(shè)施資源930。在一種實(shí)施例中,基礎(chǔ)設(shè)施資源930可 W包括諸如服務(wù)器、存儲(chǔ)和網(wǎng)絡(luò)資源的硬件的預(yù)先集成和優(yōu)化組合,W便執(zhí)行由PaaS平臺(tái) 和SaaS平臺(tái)提供的服務(wù)。
[0225] 在一些實(shí)施例中,在云基礎(chǔ)設(shè)施系統(tǒng)902中的資源可被多個(gè)用戶共享并且動(dòng)態(tài)地 按需重新分配。此外,資源可被分配給在不同時(shí)區(qū)的用戶。例如,云基礎(chǔ)設(shè)施系統(tǒng)930可W使 在第一時(shí)區(qū)的第一組用戶能夠利用云基礎(chǔ)設(shè)施系統(tǒng)的資源指定的小時(shí)數(shù),并且然后使相同 資源重新分配給位于不同時(shí)區(qū)的另一組用戶,從而最大化資源的利用率。
[0。6]在某些實(shí)施例中,可W提供由云基礎(chǔ)設(shè)施系統(tǒng)902的不同組件或模塊W及由云基 礎(chǔ)設(shè)施系統(tǒng)902提供的服務(wù)共享的多個(gè)內(nèi)部共享服務(wù)932。運(yùn)些內(nèi)部共享服務(wù)可W包括,但 不限于,安全和身份服務(wù)、集成服務(wù)、企業(yè)信息庫(kù)服務(wù)、企業(yè)管理服務(wù)、病毒掃描和白名單服 務(wù)、高可用性、備份和恢復(fù)服務(wù)、用于啟用云支持的服務(wù)、電子郵件服務(wù)、通知服務(wù)、文件傳 輸服務(wù),等等。
[0227] 在某些實(shí)施例中,云基礎(chǔ)設(shè)施系統(tǒng)902可W提供在云基礎(chǔ)設(shè)施系統(tǒng)中云服務(wù)(例 如,SaaS JaaS和laaS服務(wù))的綜合管理。在一種實(shí)施例中,云管理功能可W包括用于供給、 管理和跟蹤由云基礎(chǔ)設(shè)施系統(tǒng)902接收到客戶的訂購(gòu)等能力。
[0228] 在一種實(shí)施例中,如在該圖中所繪出的,云管理功能可W由一個(gè)或多個(gè)模塊提供, 諸如訂單管理模塊920、訂單編制模塊922、訂單供給模塊924、訂單管理和監(jiān)視模塊926、W 及身份管理模塊928。運(yùn)些模塊可W包括一個(gè)或多個(gè)計(jì)算機(jī)和/或服務(wù)器或者利用一個(gè)或多 個(gè)計(jì)算機(jī)和/或服務(wù)器來(lái)提供,該一個(gè)或多個(gè)計(jì)算機(jī)和/或服務(wù)器可W是通用計(jì)算機(jī)、專用 服務(wù)器計(jì)算機(jī)、服務(wù)器農(nóng)場(chǎng)、服務(wù)器集群、或任何其它適當(dāng)?shù)牟贾煤?或組合。
[0229] 在示例性操作934中,利用客戶端設(shè)備,諸如客戶端設(shè)備904、906或908的客戶可W 通過(guò)請(qǐng)求由云基礎(chǔ)設(shè)施系統(tǒng)902提供的一個(gè)或多個(gè)服務(wù)和為由云基礎(chǔ)設(shè)施系統(tǒng)902提供的 一個(gè)或多個(gè)服務(wù)下訂購(gòu)單來(lái)與云基礎(chǔ)設(shè)施系統(tǒng)902交互。在某些實(shí)施例中,客戶可W訪問(wèn)云 用戶界面(UI)、云UI 912、云UI 914和/或云UI 916并且經(jīng)由運(yùn)些UI下訂購(gòu)單。響應(yīng)于客戶 下訂單而被云基礎(chǔ)設(shè)施系統(tǒng)902接收到的訂單信息可W包括識(shí)別客戶和客戶想要訂購(gòu)的由 云基礎(chǔ)設(shè)施系統(tǒng)902提供的一個(gè)或多個(gè)服務(wù)的信息。
[0230] 在客戶下訂單之后,訂單信息經(jīng)由云UI 912、914和/或916被接收。
[0231] 在操作936,訂單被存儲(chǔ)在訂單數(shù)據(jù)庫(kù)918中。訂單數(shù)據(jù)庫(kù)918可W是由云基礎(chǔ)設(shè)施 系統(tǒng)918操作并且結(jié)合其它系統(tǒng)元素一起操作的若干個(gè)數(shù)據(jù)庫(kù)之一。
[0232] 在操作938,訂單信息被轉(zhuǎn)發(fā)到訂單管理模塊920。在一些情況下,訂單管理模塊 920可被配置為執(zhí)行與訂單相關(guān)的計(jì)費(fèi)和記帳功能,諸如驗(yàn)證訂單,W及在驗(yàn)證后預(yù)訂訂 單。
[0233] 在操作940,關(guān)于訂單的信息被傳送到訂單編制模塊922。訂單編制模塊922可W利 用訂單信息來(lái)編制用于由客戶所下訂單的服務(wù)和資源的供給。在一些情況下,訂單編制模 塊922可W編制資源的供給,W利用訂單供給模塊924的服務(wù)支持訂購(gòu)的服務(wù)。
[0234] 在某些實(shí)施例中,訂單編制模塊922使得能夠管理與每個(gè)訂單相關(guān)聯(lián)的業(yè)務(wù)流程 并且應(yīng)用業(yè)務(wù)邏輯,W確定訂單是否應(yīng)該繼續(xù)供給。在操作942,當(dāng)接收到新訂購(gòu)的訂單時(shí), 訂單編制模塊922發(fā)送請(qǐng)求到訂單供給模塊924, W分配資源和配置履行訂購(gòu)訂單所需的那 些資源。訂單供給模塊924使得能夠分配用于客戶訂購(gòu)的服務(wù)的資源。訂單供給模塊924在 由云基礎(chǔ)設(shè)施系統(tǒng)900提供的云服務(wù)和用于為了提供所請(qǐng)求的服務(wù)供給資源的物理實(shí)現(xiàn)層 之間提供一層抽象。訂單編制模塊922可W因此與實(shí)現(xiàn)細(xì)節(jié)隔離,諸如服務(wù)和資源是實(shí)際上 在運(yùn)行中被供給還是預(yù)先被供給并且只在請(qǐng)求時(shí)被分配/指定。
[0235] 在操作944,一旦服務(wù)和資源被供給,所提供的服務(wù)的通知就可W通過(guò)云基礎(chǔ)設(shè)施 系統(tǒng)902的訂單供給模塊924發(fā)送給在客戶端設(shè)備904、906和/或908的客戶。
[0236] 在操作946,客戶的訂購(gòu)訂單可被訂單管理和監(jiān)視模塊926管理和跟蹤。在一些情 況下,訂單管理和監(jiān)視模塊926可被配置為收集訂購(gòu)訂單中的服務(wù)的使用統(tǒng)計(jì)數(shù)據(jù),諸如使 用的存儲(chǔ)量、傳送的數(shù)據(jù)量、用戶的數(shù)量、W及系統(tǒng)上線時(shí)間和系統(tǒng)停機(jī)時(shí)間的量。
[0237] 在某些實(shí)施例中,云基礎(chǔ)設(shè)施系統(tǒng)900可W包括身份管理模塊928。身份管理模塊 928可被配置為提供身份服務(wù),諸如在云基礎(chǔ)設(shè)施系統(tǒng)900中的訪問(wèn)管理和授權(quán)服務(wù)。在一 些實(shí)施例中,身份管理模塊928可W控制關(guān)于希望利用由云基礎(chǔ)設(shè)施系統(tǒng)902提供的服務(wù)的 客戶的信息。運(yùn)種信息可W包括驗(yàn)證運(yùn)種客戶的身份的信息和描述運(yùn)些客戶被授權(quán)哪些行 為來(lái)相對(duì)于各種系統(tǒng)資源(例如,文件、目錄、應(yīng)用、通信端口、存儲(chǔ)器段、等等)執(zhí)行的信息。 身份管理模塊928也可W包括關(guān)于每個(gè)客戶的描述性信息和關(guān)于描述性信息可W如何W及 由誰(shuí)來(lái)訪問(wèn)和修改的管理。
[0238] 圖10示出了示例性計(jì)算機(jī)系統(tǒng)1000,本發(fā)明的各種實(shí)施例可W在其中被實(shí)現(xiàn)。如 在該圖中所示出的,計(jì)算機(jī)系統(tǒng)1000包括經(jīng)由總線子系統(tǒng)1002與多個(gè)外圍子系統(tǒng)通信的處 理單元1004。運(yùn)些外圍子系統(tǒng)可W包括處理加速單元1006、I/O子系統(tǒng)1008、存儲(chǔ)子系統(tǒng) 1018和通信子系統(tǒng)1024。存儲(chǔ)子系統(tǒng)1018包括有形計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)1022和系統(tǒng)存儲(chǔ)器 1010。
[0239] 總線子系統(tǒng)1002提供了用于讓計(jì)算機(jī)系統(tǒng)1000的各種組件和子系統(tǒng)按意圖彼此 通信的機(jī)制。雖然總線子系統(tǒng)1002被示意性地示為單條總線,但是總線子系統(tǒng)的備選實(shí)施 例可W利用多條總線??偩€子系統(tǒng)1002可W是若干種類型的總線結(jié)構(gòu)中的任何一種,包括 存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線、W及利用任何各種總線體系結(jié)構(gòu)的局部總線。例 如,運(yùn)種體系結(jié)構(gòu)可W包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu)(MCA)總線、增強(qiáng) 型ISA化ISA)總線、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局部總線和外圍組件互連(PCI)總線,其可被 實(shí)現(xiàn)為按IE邸P1386.1標(biāo)準(zhǔn)制造的Mezzanine總線。
[0240] 可被實(shí)現(xiàn)為一個(gè)或多個(gè)集成電路(例如,常規(guī)微處理器或微控制器)的處理單元 1004控制計(jì)算機(jī)系統(tǒng)1000的操作。一個(gè)或多個(gè)處理器可被包括在處理單元1004中。運(yùn)些處 理器可W包括單核或多核處理器。在某些實(shí)施例中,處理單元1004可被實(shí)現(xiàn)為一個(gè)或多個(gè) 獨(dú)立的處理單元1032和/或1034,其中在每個(gè)處理單元中包括單核或多核處理器。在其它實(shí) 施例中,處理單元1004也可被實(shí)現(xiàn)為通過(guò)將兩個(gè)雙核處理器集成到單個(gè)忍片中形成的四核 處理單元。
[0241] 在各種實(shí)施例,處理單元1004可W響應(yīng)于程序代碼執(zhí)行各種程序并且可W維護(hù)多 個(gè)并發(fā)執(zhí)行的程序或進(jìn)程。在任何給定時(shí)間,要被執(zhí)行的程序代碼中的一些或全部代碼可 W駐留在(一個(gè)或多個(gè))處理器1004中和/或存儲(chǔ)子系統(tǒng)1018中。通過(guò)適當(dāng)?shù)木幊?,(一個(gè)或 多個(gè))處理器1004可W提供上述各種功能。計(jì)算機(jī)系統(tǒng)1000可W附加地包括處理加速單元 1006,其可W包括數(shù)字信號(hào)處理器(DSP)、專用處理器,等等。
[0242] I/O子系統(tǒng)1008可W包括用戶界面輸入設(shè)備和用戶界面輸出設(shè)備。用戶界面輸入 設(shè)備可W包括鍵盤(pán)、諸如鼠標(biāo)或軌跡球的定點(diǎn)設(shè)備、結(jié)合到顯示器中的觸摸板或觸摸屏、滾 動(dòng)輪、點(diǎn)擊輪、撥盤(pán)、按鈕、開(kāi)關(guān)、鍵盤(pán)、具有語(yǔ)音命令識(shí)別系統(tǒng)的音頻輸入設(shè)備、麥克風(fēng)W及 其它類型的輸入設(shè)備。用戶界面輸入設(shè)備可W包括,例如,運(yùn)動(dòng)感測(cè)和/或手勢(shì)識(shí)別設(shè)備,諸 如的Microsoft Kineet?運(yùn)動(dòng)傳感器,其使得用戶能夠通過(guò)利用手勢(shì)和語(yǔ)音命令的自然用 戶界面控制諸如的MicrosoftXb:〇X?360游戲控制器的輸入設(shè)備并與之交互。用戶界面輸 入設(shè)備也可W包括眼睛姿勢(shì)識(shí)別設(shè)備,諸如從用戶檢測(cè)眼睛活動(dòng)(例如,當(dāng)拍拍攝照片和/ 或做出菜單選擇時(shí)的"巧眼")并且將眼睛姿勢(shì)轉(zhuǎn)換為到輸入設(shè)備(例如,GoogleGlaSS?) 中的輸入的GoogleClasS?巧眼檢測(cè)器。此外,用戶界面輸入設(shè)備可W包括使用戶能夠通過(guò) 語(yǔ)音命令與語(yǔ)音識(shí)別系統(tǒng)(例如,Sirf導(dǎo)航器)交互的語(yǔ)音識(shí)別感測(cè)設(shè)備。
[0243] 用戶接口輸入設(shè)備也可W包括,但不限于,Ξ維(3D)鼠標(biāo)、操縱桿或指向棒、游戲 面板和繪圖板,W及音頻/視頻設(shè)備,諸如揚(yáng)聲器、數(shù)碼相機(jī)、數(shù)碼攝像機(jī)、便攜式媒體播放 器、網(wǎng)絡(luò)攝像頭、圖像掃描儀、指紋掃描儀、條形碼閱讀器3D掃描儀、3D打印機(jī)、激光測(cè)距儀 和視線跟蹤設(shè)備。此外,用戶接口輸入設(shè)備可W包括,例如,醫(yī)學(xué)成像輸入設(shè)備,諸如計(jì)算機(jī) 斷層掃描、磁共振成像、正電子發(fā)射斷層攝影術(shù)、醫(yī)療超聲設(shè)備。用戶接口輸入設(shè)備也可W 包括,例如,諸如MIDI鍵盤(pán)、數(shù)字樂(lè)器等的音頻輸入設(shè)備。
[0244] 用戶接口輸出設(shè)備可W包括顯示子系統(tǒng)、指示燈,或者諸如音頻輸出設(shè)備的非視 覺(jué)顯示器,等等。顯示子系統(tǒng)可W是陰極射線管(CRT)、諸如利用液晶顯示器化CD)或等離子 顯示器的平板設(shè)備、投影設(shè)備、觸摸屏,等等。一般而言,術(shù)語(yǔ)"輸出設(shè)備"的使用意在包括用 于從計(jì)算機(jī)系統(tǒng)1000向用戶或其它計(jì)算機(jī)輸出信息的所有可能類型的設(shè)備和機(jī)制。例如, 用戶接口輸出設(shè)備可W包括,但不限于,在視覺(jué)上傳達(dá)文字、圖形和音頻/視頻信息的各種 顯示設(shè)備,諸如監(jiān)視器、打印機(jī)、揚(yáng)聲器、耳機(jī)、汽車導(dǎo)航系統(tǒng)、繪圖儀、語(yǔ)音輸出設(shè)備,W及 調(diào)制解調(diào)器。
[0245] 計(jì)算機(jī)系統(tǒng)1000可W包括包含軟件元素、被示為當(dāng)前位于系統(tǒng)存儲(chǔ)器1010中的存 儲(chǔ)子系統(tǒng)1018。系統(tǒng)存儲(chǔ)器1010可W存儲(chǔ)可加載并且可在處理單元1004上執(zhí)行的程序指 令,W及在運(yùn)些程序執(zhí)行期間所產(chǎn)生的數(shù)據(jù)。
[0246] 取決于計(jì)算機(jī)系統(tǒng)1000的配置和類型,系統(tǒng)存儲(chǔ)器1010可W是易失性的(諸如隨 機(jī)存取存儲(chǔ)器(RAM))和/或非易失性的(諸如只讀存儲(chǔ)器(ROM)、閃存存儲(chǔ)器,等等)dRAM通 常包含可被處理單元100位即訪問(wèn)和/或目前正被處理單元1004操作和執(zhí)行的數(shù)據(jù)和/或 程序模塊。在一些實(shí)現(xiàn)中,系統(tǒng)存儲(chǔ)器1010可W包括多種不同類型的存儲(chǔ)器,例如靜態(tài)隨機(jī) 存取存儲(chǔ)器(SRAM)或動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)。在一些實(shí)現(xiàn)中,諸如在啟動(dòng)期間,包含有 助于在計(jì)算機(jī)系統(tǒng)1000的元件之間傳送信息的基本例程的基本輸入/輸出系統(tǒng)(BIOS),通 ??杀淮鎯?chǔ)在ROM中。作為例子,但不是限制,系統(tǒng)存儲(chǔ)器1010也示出了可W包括客戶端應(yīng) 用、web瀏覽器、中間層應(yīng)用、關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)等的應(yīng)用程序1012,程序數(shù)據(jù) 1014, W及操作系統(tǒng)1016。作為例子,操作系統(tǒng)1016可W包括各種版本的Micro soft Windows?\AwleMadn化811@和/或Linux操作系統(tǒng)、各種商用UNIX?或類UNIX操 作系統(tǒng)(包括但不限于各種GNU/Linux操作系統(tǒng)、GoogleChrome?操作系統(tǒng),等等)和/或 諸如 iOS、Windows? 化 one、Aiidroid?〇s、BlackBerry? 100S 和 Palmas 0S 操作系統(tǒng) 的移動(dòng)操作系統(tǒng)。
[0247] 存儲(chǔ)子系統(tǒng)1018也可W提供用于存儲(chǔ)提供一些實(shí)施例的功能的基本編程和數(shù)據(jù) 結(jié)構(gòu)的有形計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。當(dāng)被處理器執(zhí)行時(shí)提供上述功能的軟件(程序、代碼模 塊、指令)可被存儲(chǔ)在存儲(chǔ)子系統(tǒng)1018中。運(yùn)些軟件模塊或指令可被處理單元1004執(zhí)行。存 儲(chǔ)子系統(tǒng)1018也可W提供用于存儲(chǔ)根據(jù)本發(fā)明被使用的數(shù)據(jù)的儲(chǔ)存庫(kù)。
[0248] 存儲(chǔ)子系統(tǒng)1018也可W包括可被進(jìn)一步連接到計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)1022的計(jì)算 機(jī)可讀存儲(chǔ)介質(zhì)讀取器1020。與系統(tǒng)存儲(chǔ)器1010-起并且,可選地,與其相結(jié)合,計(jì)算機(jī)可 讀存儲(chǔ)介質(zhì)1022可W全面地表示用于臨時(shí)和/或更持久地包含、存儲(chǔ)、發(fā)送和檢索計(jì)算機(jī)可 讀信息的遠(yuǎn)程、本地、固定和/或可移除存儲(chǔ)設(shè)備加存儲(chǔ)介質(zhì)。
[0249] 包含代碼或代碼的部分的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)1022也可W包括本領(lǐng)域已知或使 用的任何適當(dāng)?shù)慕橘|(zhì),包括存儲(chǔ)介質(zhì)和通信介質(zhì),諸如但不限于,W用于信息的存儲(chǔ)和/或 傳輸?shù)娜魏畏椒ɑ蚣夹g(shù)實(shí)現(xiàn)的易失性和非易失性、可移除和不可移除介質(zhì)。運(yùn)可W包括有 形的、非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),諸如RAM、R0M、電可擦除可編程ROM化EPROM)、閃存存儲(chǔ) 器或其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(pán)(DVD)或其它光學(xué)儲(chǔ)存器、磁帶盒、磁帶、磁盤(pán) 儲(chǔ)存器或其它磁存儲(chǔ)設(shè)備,或者其它有形的計(jì)算機(jī)可讀介質(zhì)。當(dāng)被指定時(shí),運(yùn)也可W包括非 有形的、臨時(shí)計(jì)算機(jī)可讀介質(zhì),諸如數(shù)據(jù)信號(hào)、數(shù)據(jù)傳輸,或者可被用來(lái)發(fā)送期望信息并且 可被計(jì)算系統(tǒng)1000訪問(wèn)的任何其它介質(zhì)。
[0250] 作為例子,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)1022可W包括從不可移除的非易失性磁介質(zhì)讀取 或?qū)懙狡涞挠脖P(pán)驅(qū)動(dòng)器、從可移除的非易失性磁盤(pán)讀取或?qū)懙狡涞拇疟P(pán)驅(qū)動(dòng)器、W及從可 移除的非易失性光盤(pán),諸如CD R〇M、DVD和Blu-Ray?盤(pán)或其它光學(xué)介質(zhì),讀取或?qū)懙狡涞?光盤(pán)驅(qū)動(dòng)器。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)1022可W包括,但不限于,Zip'^驅(qū)動(dòng)器、閃存卡、通用串 行總線化SB)閃存驅(qū)動(dòng)器、安全數(shù)字(SD)卡、DVD盤(pán)、數(shù)字音頻帶,等等。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì) 1022也可W包括基于非易失性存儲(chǔ)器的固態(tài)驅(qū)動(dòng)器(SSD),諸如基于閃存存儲(chǔ)器的SSD、企 業(yè)閃存驅(qū)動(dòng)器、固態(tài)ROM等,基于易失性存儲(chǔ)器的SSD,諸如固態(tài)RAM、動(dòng)態(tài)RAM、靜態(tài)RAM,基于 DRAM的SSD,磁阻RAM(MRAM)SSD,W及使用基于DRAM和閃存存儲(chǔ)器的SSD的組合的混合SSD。 盤(pán)驅(qū)動(dòng)器及其相關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì)可W為計(jì)算機(jī)系統(tǒng)1000提供計(jì)算機(jī)可讀指令、數(shù)據(jù) 結(jié)構(gòu)、程序模塊及其它數(shù)據(jù)的非易失性存儲(chǔ)。
[0251] 通信子系統(tǒng)1024提供到其它計(jì)算機(jī)系統(tǒng)和網(wǎng)絡(luò)的接口。通信子系統(tǒng)1024用作用于 從其它系統(tǒng)接收數(shù)據(jù)和從計(jì)算機(jī)系統(tǒng)1000向其它系統(tǒng)發(fā)送數(shù)據(jù)的接口。例如,通信子系統(tǒng) 1024可W使計(jì)算機(jī)系統(tǒng)1000能夠經(jīng)由互聯(lián)網(wǎng)連接到一個(gè)或多個(gè)設(shè)備。在一些實(shí)施例中,通 信子系統(tǒng)1024可W包括用于訪問(wèn)無(wú)線語(yǔ)音和/或數(shù)據(jù)網(wǎng)絡(luò)的射頻(RF)收發(fā)器組件(例如,利 用蜂窩電話技術(shù),諸如3G、4G或抓GE(用于全球演進(jìn)的增強(qiáng)型數(shù)據(jù)速率)的先進(jìn)數(shù)據(jù)網(wǎng)絡(luò)技 術(shù),Wi-Fi (I趾E 802.11系列標(biāo)準(zhǔn)),或其它移動(dòng)通信技術(shù),或其任意組合)、全球定位系統(tǒng) (GPS)接收器組件和/或其它組件。在一些實(shí)施例中,作為無(wú)線接口的附加或者替代,通信子 系統(tǒng)1024可W提供有線網(wǎng)絡(luò)連接(例如,W太網(wǎng))。
[0252] 在一些實(shí)施例中,通信子系統(tǒng)1024也可W代表可W使用計(jì)算機(jī)系統(tǒng)1000的一個(gè)或 多個(gè)用戶接收結(jié)構(gòu)化和/或非結(jié)構(gòu)化數(shù)據(jù)饋送1026、事件流1028、事件更新1030等形式的輸 入通信。
[0253] 作為例子,通信子系統(tǒng)1024可被配置為實(shí)時(shí)地從社交媒體網(wǎng)絡(luò)和/或其它通信服 務(wù)的用戶接收數(shù)據(jù)饋送1026,諸如Twitter?饋送、Facebook?更新、諸如豐富站點(diǎn)摘要 (RSS)饋送的web饋送和/或來(lái)自一個(gè)或多個(gè)第Ξ方信息源的實(shí)時(shí)更新。
[0254] 此外,通信子系統(tǒng)1024也可被配置為接收連續(xù)數(shù)據(jù)流形式的數(shù)據(jù),運(yùn)可W包括本 質(zhì)上可W是連續(xù)的或無(wú)界的沒(méi)有明確終止的實(shí)時(shí)事件的事件流1028和/或事件更新1030。 產(chǎn)生連續(xù)數(shù)據(jù)的應(yīng)用的例子可W包括,例如,傳感器數(shù)據(jù)應(yīng)用、金融報(bào)價(jià)機(jī)、網(wǎng)絡(luò)性能測(cè)量 工具(例如,網(wǎng)絡(luò)監(jiān)視和流量管理應(yīng)用)、點(diǎn)擊流分析工具、汽車流量監(jiān)視,等等。
[0255] 通信子系統(tǒng)1024也可被配置為向一個(gè)或多個(gè)數(shù)據(jù)庫(kù)輸出結(jié)構(gòu)化和/或非結(jié)構(gòu)化數(shù) 據(jù)饋送1026、事件流1028、事件更新1030,等等,運(yùn)一個(gè)或多個(gè)數(shù)據(jù)庫(kù)可W與禪合到計(jì)算機(jī) 系統(tǒng)1000的一個(gè)或多個(gè)流式數(shù)據(jù)源計(jì)算機(jī)通信。
[0256] 計(jì)算機(jī)系統(tǒng)1000可W是各種類型之一,包括手持便攜式設(shè)備(例如,iPhone?蜂 窩電話、iPad?計(jì)算平板、PDA)、可穿戴設(shè)備(例如,GoogleGlass?頭戴式顯示器)、PC、工 作站、大型機(jī)、信息站,服務(wù)器機(jī)架,或任何其它數(shù)據(jù)處理系統(tǒng)。
[0257] 由于計(jì)算機(jī)和網(wǎng)絡(luò)的不斷變化的本質(zhì),在該圖中繪出的計(jì)算機(jī)系統(tǒng)1000的描述僅 僅要作為具體的例子。具有比該圖中繪出的系統(tǒng)更多或更少組件的許多其它配置是可能 的。例如,定制的硬件也可被使用和/或特定的元素可W用硬件、固件、軟件(包括applets) 或它們的組合來(lái)實(shí)現(xiàn)。另外,也可W采用到諸如網(wǎng)絡(luò)輸入/輸出設(shè)備之類的其它計(jì)算設(shè)備的 連接。基于本文提供的公開(kāi)內(nèi)容和示教,本領(lǐng)域普通技術(shù)人員將認(rèn)識(shí)到實(shí)現(xiàn)各種實(shí)施例的 其它方式和/或方法。換句話說(shuō),在一些實(shí)施例中,作為整體,計(jì)算機(jī)系統(tǒng)1000的配置可W包 括:用于接收包括至少第一輸入數(shù)據(jù)流和第二輸入數(shù)據(jù)流的多個(gè)輸入數(shù)據(jù)流的裝置;用于 生成用于第一輸入數(shù)據(jù)流的第一動(dòng)態(tài)數(shù)據(jù)類型的裝置;用于生成用于第二輸入數(shù)據(jù)流的第 二動(dòng)態(tài)數(shù)據(jù)類型的裝置;用于至少部分地基于第一動(dòng)態(tài)數(shù)據(jù)類型和第二動(dòng)態(tài)數(shù)據(jù)類型組合 第一輸入數(shù)據(jù)流和第二輸入數(shù)據(jù)流W生成組合數(shù)據(jù)流的裝置;W及用于由計(jì)算機(jī)系統(tǒng)處理 對(duì)組合數(shù)據(jù)流的連續(xù)查詢W檢測(cè)樣式的裝置。
[0258] 圖11示出了本發(fā)明的各種實(shí)施例可W在其中實(shí)現(xiàn)的示例性服務(wù)提供商設(shè)備的簡(jiǎn) 化框圖。服務(wù)提供商設(shè)備1100的模塊可W由硬件、軟件或硬件和軟件的組合實(shí)現(xiàn),W執(zhí)行本 發(fā)明的原理。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,圖11中所描述的模塊可被組合或分離為子模塊,W 實(shí)現(xiàn)如上所述的本發(fā)明的原理。因此,本文的描述可W支持本文所述的功能模塊的任何可 能的組合或分離或進(jìn)一步定義。
[0259] 如圖11中所示,服務(wù)提供商設(shè)備1100可W包括輸入數(shù)據(jù)流接收單元1101、第一動(dòng) 態(tài)數(shù)據(jù)類型生成單元1103、第二動(dòng)態(tài)數(shù)據(jù)類型生成單元1105、組合數(shù)據(jù)流生成單元1107W 及樣式檢測(cè)單元1109。輸入數(shù)據(jù)流接收單元1101可被配置為接收包括至少第一輸入數(shù)據(jù)流 和第二輸入數(shù)據(jù)流的多個(gè)輸入數(shù)據(jù)流。第一動(dòng)態(tài)數(shù)據(jù)類型生成單元1103可被配置為生成用 于第一輸入數(shù)據(jù)流的第一動(dòng)態(tài)數(shù)據(jù)類型。第二動(dòng)態(tài)數(shù)據(jù)類型生成單元1105可被配置為成生 用于第二輸入數(shù)據(jù)流的第二動(dòng)態(tài)數(shù)據(jù)類型。組合數(shù)據(jù)流生成單元1107可被配置為至少部分 地基于第一動(dòng)態(tài)數(shù)據(jù)類型和第二動(dòng)態(tài)數(shù)據(jù)類型組合第一輸入數(shù)據(jù)流和第二輸入數(shù)據(jù)流,W 生成組合數(shù)據(jù)流。樣式檢測(cè)單元1109可被配置為處理對(duì)組合數(shù)據(jù)流的連續(xù)查詢,W檢測(cè)樣 式。在一種實(shí)施例中,每個(gè)單元可被實(shí)現(xiàn)為通過(guò)讀取計(jì)算機(jī)程序指令來(lái)執(zhí)行對(duì)應(yīng)處理的處 理器。
[0260] 在一種實(shí)施例中,第一動(dòng)態(tài)數(shù)據(jù)類型生成單元1103還可被配置為識(shí)別第一輸入數(shù) 據(jù)流的第一屬性不存在于第二數(shù)據(jù)流中;W及生成用于第一屬性的第一動(dòng)態(tài)數(shù)據(jù)類型。
[0261] 在一種實(shí)施例中,第一動(dòng)態(tài)數(shù)據(jù)類型可被配置為存儲(chǔ)對(duì)應(yīng)于第一輸入數(shù)據(jù)流的第 一屬性的第一數(shù)據(jù)值。
[0262] 在一種實(shí)施例中,第二動(dòng)態(tài)數(shù)據(jù)類型生成單元1105還可被配置為識(shí)別第二輸入數(shù) 據(jù)流的第二屬性不存在于第一數(shù)據(jù)流中;W及生成用于第二屬性的第二動(dòng)態(tài)數(shù)據(jù)類型,第 二動(dòng)態(tài)數(shù)據(jù)類型被配置為存儲(chǔ)對(duì)應(yīng)于第二輸入數(shù)據(jù)流的第二屬性的第二數(shù)據(jù)值。
[0263] 在一種實(shí)施例中,服務(wù)提供商設(shè)備1100還可W包括共同屬性識(shí)別單元1111和同質(zhì) 模式生成單元1113。共同屬性識(shí)別單元1111可被配置為識(shí)別共同屬性,該共同屬性被識(shí)別 為在第一輸入數(shù)據(jù)流和第二輸入數(shù)據(jù)流中存在。同質(zhì)模式生成單元1113可被配置為生成同 質(zhì)模式,該同質(zhì)模式包括第一輸入數(shù)據(jù)流和第二輸入數(shù)據(jù)流的一個(gè)或多個(gè)屬性的表示,該 表示包括至少共同屬性、第一動(dòng)態(tài)數(shù)據(jù)類型和第二動(dòng)態(tài)數(shù)據(jù)類型。
[0264] 在一種實(shí)施例中,同質(zhì)模式可W包括流名稱標(biāo)識(shí)符屬性、與第一輸入數(shù)據(jù)流關(guān)聯(lián) 的第一時(shí)間戳屬性或與第二輸入數(shù)據(jù)流關(guān)聯(lián)的第二時(shí)間戳屬性當(dāng)中至少一個(gè)。
[0265] 在一種實(shí)施例中,組合數(shù)據(jù)流生成單元1107還可被配置為從第一輸入數(shù)據(jù)流選擇 第一組元組,第一輸入數(shù)據(jù)流由同質(zhì)模式識(shí)別,從第二輸入數(shù)據(jù)流選擇第二組元組,第二輸 入數(shù)據(jù)流由同質(zhì)模式識(shí)別,并且對(duì)第一組元組和第二組元組處理子查詢,W生成組合數(shù)據(jù) 流。
[0266] 在一種實(shí)施例中,樣式可W至少部分地基于分析組合數(shù)據(jù)流來(lái)檢測(cè),其中樣式識(shí) 別第一輸入數(shù)據(jù)流中的第一事件,后面跟著第二輸入數(shù)據(jù)流中的第二事件。
[0267] 圖11中所描述的模塊可被組合或分離成子模塊,W實(shí)現(xiàn)如上所述本發(fā)明的原理。 例如,第一動(dòng)態(tài)數(shù)據(jù)類型生成單元1103和第二動(dòng)態(tài)數(shù)據(jù)類型生成單元1105可被集成為動(dòng)態(tài) 數(shù)據(jù)類型生成單元。集成的動(dòng)態(tài)數(shù)據(jù)類型生成單元還可W結(jié)合共同屬性識(shí)別單元1111和同 質(zhì)模式生成單元1113。
[0268] 本領(lǐng)域技術(shù)人員可W理解,服務(wù)提供商設(shè)備1100可W是在前面的示例性實(shí)施例中 描述的服務(wù)提供商計(jì)算機(jī)106的示例性實(shí)現(xiàn)。本領(lǐng)域技術(shù)人員還可W理解,服務(wù)提供商設(shè)備 1100可W根據(jù)期望被修改,W執(zhí)行根據(jù)本發(fā)明的原理的任何操作或它們的組合。
[0269] 在前述的說(shuō)明書(shū)中,本發(fā)明的各方面參照其具體實(shí)施例進(jìn)行了描述,但本領(lǐng)域技 術(shù)人員將認(rèn)識(shí)到,本發(fā)明不限于此。上述發(fā)明的各個(gè)特征和各方面可被單獨(dú)或聯(lián)合使用。另 夕h在不背離本說(shuō)明書(shū)的更廣泛精神和范圍的情況下,實(shí)施例可W在除本文所述的那些之 外的任何數(shù)目的環(huán)境和應(yīng)用中被使用。因此,本說(shuō)明書(shū)和附圖應(yīng)當(dāng)被認(rèn)為是說(shuō)明性而不是 限制性的。
【主權(quán)項(xiàng)】
1. 一種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括: 由利用計(jì)算機(jī)可執(zhí)行指令配置的計(jì)算機(jī)系統(tǒng),接收包括至少第一輸入數(shù)據(jù)流和第二輸 入數(shù)據(jù)流的多個(gè)輸入數(shù)據(jù)流; 由該計(jì)算機(jī)系統(tǒng),生成用于第一輸入數(shù)據(jù)流的第一動(dòng)態(tài)數(shù)據(jù)類型; 由該計(jì)算機(jī)系統(tǒng),生成用于第二輸入數(shù)據(jù)流的第二動(dòng)態(tài)數(shù)據(jù)類型; 由該計(jì)算機(jī)系統(tǒng),至少部分地基于第一動(dòng)態(tài)數(shù)據(jù)類型和第二動(dòng)態(tài)數(shù)據(jù)類型組合第一輸 入數(shù)據(jù)流和第二輸入數(shù)據(jù)流,以生成組合數(shù)據(jù)流;及 由該計(jì)算機(jī)系統(tǒng),處理對(duì)組合數(shù)據(jù)流的連續(xù)查詢,以檢測(cè)樣式。2. 如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中生成第一動(dòng)態(tài)數(shù)據(jù)類型包括: 識(shí)別第一輸入數(shù)據(jù)流的第一屬性不存在于第二數(shù)據(jù)流中;及 生成用于第一屬性的第一動(dòng)態(tài)數(shù)據(jù)類型。3. 如權(quán)利要求2所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中第一動(dòng)態(tài)數(shù)據(jù)類型被配置為存儲(chǔ)對(duì)應(yīng) 于第一輸入數(shù)據(jù)流的第一屬性的第一數(shù)據(jù)值。4. 如權(quán)利要求1-3中任何一項(xiàng)所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中生成第二動(dòng)態(tài)數(shù)據(jù)類型 包括: 識(shí)別第二輸入數(shù)據(jù)流的第二屬性不存在于第一數(shù)據(jù)流中;及 生成用于第二屬性的第二動(dòng)態(tài)數(shù)據(jù)類型,第二動(dòng)態(tài)數(shù)據(jù)類型被配置為存儲(chǔ)對(duì)應(yīng)于第二 輸入數(shù)據(jù)流的第二屬性的第二數(shù)據(jù)值。5. 如權(quán)利要求1-4中任何一項(xiàng)所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括: 識(shí)別共同屬性,該共同屬性被識(shí)別為在第一輸入數(shù)據(jù)流中存在并在第二輸入數(shù)據(jù)流中 存在;及 生成同質(zhì)模式,該同質(zhì)模式包括第一輸入數(shù)據(jù)流和第二輸入數(shù)據(jù)流的一個(gè)或多個(gè)屬性 的表示,該表示包括至少共同屬性、第一動(dòng)態(tài)數(shù)據(jù)類型和第二動(dòng)態(tài)數(shù)據(jù)類型。6. 如權(quán)利要求5所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中同質(zhì)模式包括流名稱標(biāo)識(shí)符屬性、與第 一輸入數(shù)據(jù)流關(guān)聯(lián)的第一時(shí)間戳屬性或者與第二輸入數(shù)據(jù)流關(guān)聯(lián)的第二時(shí)間戳屬性當(dāng)中 至少一個(gè)。7. 如權(quán)利要求5或6所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中組合第一輸入數(shù)據(jù)流和第二輸入數(shù) 據(jù)流還包括: 從第一數(shù)據(jù)流選擇第一組元組,第一輸入數(shù)據(jù)流由同質(zhì)模式識(shí)別; 從第二輸入數(shù)據(jù)流選擇第二組元組,第二輸入數(shù)據(jù)流由同質(zhì)模式識(shí)別;及 處理對(duì)第一組元組和第二組元組的子查詢,以生成組合數(shù)據(jù)流。8. 如權(quán)利要求1-7中任何一項(xiàng)所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中樣式是至少部分地基于 分析所述組合數(shù)據(jù)流來(lái)檢測(cè)的,其中樣式識(shí)別第一輸入數(shù)據(jù)流中的第一事件,后面跟著第 二輸入數(shù)據(jù)流中的第二事件。9. 一種系統(tǒng),包括: 存儲(chǔ)多條指令的存儲(chǔ)器;及 被配置為訪問(wèn)該存儲(chǔ)器的處理器,其中處理器還被配置為執(zhí)行所述多條指令,以便至 少: 接收識(shí)別第一輸入數(shù)據(jù)流和第二輸入數(shù)據(jù)流的連續(xù)查詢; 識(shí)別用于第一輸入數(shù)據(jù)流的第一屬性的第一動(dòng)態(tài)數(shù)據(jù)類型; 識(shí)別用于第二輸入數(shù)據(jù)流的第二屬性的第二動(dòng)態(tài)數(shù)據(jù)類型; 至少部分地基于在第一輸入數(shù)據(jù)流中識(shí)別出的第一動(dòng)態(tài)數(shù)據(jù)類型和在第二輸入數(shù)據(jù) 流中識(shí)別出的第二動(dòng)態(tài)數(shù)據(jù)類型生成組合數(shù)據(jù)流;及 執(zhí)行對(duì)組合數(shù)據(jù)流的連續(xù)查詢,以檢測(cè)樣式。10. 如權(quán)利要求9所述的系統(tǒng),其中至少一個(gè)處理器被配置為執(zhí)行識(shí)別第一輸入數(shù)據(jù)流 的第一屬性不存在于第二數(shù)據(jù)流中的計(jì)算機(jī)可執(zhí)行指令。11. 如權(quán)利要求9或10所述的系統(tǒng),其中至少一個(gè)處理器被配置為執(zhí)行識(shí)別第二輸入數(shù) 據(jù)流的第二屬性不存在于第一數(shù)據(jù)流中的計(jì)算機(jī)可執(zhí)行指令。12. 如權(quán)利要求9-11中任何一項(xiàng)所述的系統(tǒng),其中至少一個(gè)處理器還被配置為執(zhí)行計(jì) 算機(jī)可執(zhí)行指令,以便: 識(shí)別共同屬性,該共同屬性被識(shí)別為存在于第一輸入數(shù)據(jù)流和第二輸入數(shù)據(jù)流中;及 生成同質(zhì)模式,該同質(zhì)模式包括至少共同屬性、第一屬性、第一動(dòng)態(tài)數(shù)據(jù)類型、第二屬 性和第二動(dòng)態(tài)數(shù)據(jù)類型的表示。13. 如權(quán)利要求12所述的系統(tǒng),其中同質(zhì)模式還包括流名稱標(biāo)識(shí)符屬性、與第一輸入數(shù) 據(jù)流關(guān)聯(lián)的第一時(shí)間戳屬性或者與第二輸入數(shù)據(jù)流關(guān)聯(lián)的第二時(shí)間戳屬性當(dāng)中至少一個(gè)。14. 如權(quán)利要求13所述的系統(tǒng),其中至少一個(gè)處理器還被配置為執(zhí)行計(jì)算機(jī)可執(zhí)行指 令,以通過(guò)執(zhí)行用于執(zhí)行以下動(dòng)作的指令來(lái)生成組合數(shù)據(jù)流: 從第一數(shù)據(jù)流選擇第一組元組,第一輸入數(shù)據(jù)流由同質(zhì)模式識(shí)別; 從第二輸入數(shù)據(jù)流選擇第二組元組,第二輸入數(shù)據(jù)流由同質(zhì)模式識(shí)別;及 處理對(duì)第一組元組和第二組元組的子查詢,以生成組合數(shù)據(jù)流。15. 如權(quán)利要求9-14中任何一項(xiàng)所述的系統(tǒng),其中樣式是至少部分地基于分析述組合 數(shù)據(jù)流來(lái)檢測(cè)的,其中樣式識(shí)別第一輸入數(shù)據(jù)流中的第一事件,后面跟著第二輸入數(shù)據(jù)流 中的第二事件。16. -種或多種存儲(chǔ)可由一個(gè)或多個(gè)處理器執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的非暫態(tài)計(jì)算機(jī) 可讀介質(zhì),計(jì)算機(jī)可執(zhí)行指令包括: 使一個(gè)或多個(gè)處理器接收包括至少第一輸入數(shù)據(jù)流和第二輸入數(shù)據(jù)流的多個(gè)輸入數(shù) 據(jù)流的指令; 使一個(gè)或多個(gè)處理器生成用于第一輸入數(shù)據(jù)流的第一動(dòng)態(tài)數(shù)據(jù)類型的指令; 使一個(gè)或多個(gè)處理器生成用于第二輸入數(shù)據(jù)流的第二動(dòng)態(tài)數(shù)據(jù)類型的指令; 使一個(gè)或多個(gè)處理器至少部分地基于第一動(dòng)態(tài)數(shù)據(jù)類型和第二動(dòng)態(tài)數(shù)據(jù)類型組合第 一輸入數(shù)據(jù)流和第二輸入數(shù)據(jù)流以生成組合數(shù)據(jù)流的指令;及 使一個(gè)或多個(gè)處理器處理對(duì)組合數(shù)據(jù)流的連續(xù)查詢以檢測(cè)樣式的指令。17. 如權(quán)利要求16所述的計(jì)算機(jī)可讀介質(zhì),其中生成第一動(dòng)態(tài)數(shù)據(jù)類型的指令還包括 用于執(zhí)行以下動(dòng)作的指令: 識(shí)別第一輸入數(shù)據(jù)流的第一屬性不存在于第二數(shù)據(jù)流中;及 生成用于第一屬性的第一動(dòng)態(tài)數(shù)據(jù)類型,第一動(dòng)態(tài)數(shù)據(jù)類型被配置為存儲(chǔ)對(duì)應(yīng)于第一 輸入數(shù)據(jù)流的第一屬性的第一數(shù)據(jù)值。18. 如權(quán)利要求16或17所述的計(jì)算機(jī)可讀介質(zhì),其中生成第二動(dòng)態(tài)數(shù)據(jù)類型的指令還 包括使一個(gè)或多個(gè)處理器執(zhí)行以下動(dòng)作的指令: 識(shí)別第二輸入數(shù)據(jù)流的第二屬性不存在于第一數(shù)據(jù)流中;及 生成用于第二屬性的第二動(dòng)態(tài)數(shù)據(jù)類型,第二動(dòng)態(tài)數(shù)據(jù)類型被配置為存儲(chǔ)對(duì)應(yīng)于第二 輸入數(shù)據(jù)流的第二屬性的第二數(shù)據(jù)值。19. 如權(quán)利要求16-18中任何一項(xiàng)所述的計(jì)算機(jī)可讀介質(zhì),其中計(jì)算機(jī)可執(zhí)行指令還包 括: 使一個(gè)或多個(gè)處理器識(shí)別共同屬性的指令,該共同屬性被識(shí)別為在第一輸入數(shù)據(jù)流中 存在并在第二輸入數(shù)據(jù)流中存在; 使一個(gè)或多個(gè)處理器生成同質(zhì)模式的指令,該同質(zhì)模式包括第一輸入數(shù)據(jù)流和第二輸 入數(shù)據(jù)流的一個(gè)或多個(gè)屬性的表示,該表示包括至少共同屬性、第一動(dòng)態(tài)數(shù)據(jù)類型和第二 動(dòng)態(tài)數(shù)據(jù)類型;及 使一個(gè)或多個(gè)處理器至少部分地基于同質(zhì)模式生成組合數(shù)據(jù)流的指令。20. 如權(quán)利要求16-19中任何一項(xiàng)所述的計(jì)算機(jī)可讀介質(zhì),其中計(jì)算機(jī)可執(zhí)行指令還包 括使一個(gè)或多個(gè)處理器至少部分地基于分析所述組合數(shù)據(jù)流來(lái)檢測(cè)樣式的指令,其中樣式 識(shí)別第一輸入數(shù)據(jù)流中的第一事件,后面跟著第二輸入數(shù)據(jù)流中的第二事件。
【文檔編號(hào)】G06F17/30GK105993011SQ201480065473
【公開(kāi)日】2016年10月5日
【申請(qǐng)日】2014年12月4日
【發(fā)明人】P·卡里, A·斯里尼瓦桑, S·比施諾伊
【申請(qǐng)人】甲骨文國(guó)際公司