CN104937591B - 可变持续时间非事件模式匹配 - Google Patents
可变持续时间非事件模式匹配 Download PDFInfo
- Publication number
- CN104937591B CN104937591B CN201480004736.4A CN201480004736A CN104937591B CN 104937591 B CN104937591 B CN 104937591B CN 201480004736 A CN201480004736 A CN 201480004736A CN 104937591 B CN104937591 B CN 104937591B
- Authority
- CN
- China
- Prior art keywords
- event
- duration
- value
- time
- mode matching
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000014509 gene expression Effects 0.000 claims abstract description 72
- 238000012545 processing Methods 0.000 claims description 171
- 238000000034 method Methods 0.000 claims description 19
- 230000015654 memory Effects 0.000 claims description 14
- 238000004321 preservation Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 9
- 230000027455 binding Effects 0.000 description 286
- 238000009739 binding Methods 0.000 description 286
- 230000000694 effects Effects 0.000 description 52
- 238000001514 detection method Methods 0.000 description 31
- 238000005192 partition Methods 0.000 description 22
- 230000012010 growth Effects 0.000 description 18
- 230000002123 temporal effect Effects 0.000 description 14
- MROJXXOCABQVEF-UHFFFAOYSA-N Actarit Chemical compound CC(=O)NC1=CC=C(CC(O)=O)C=C1 MROJXXOCABQVEF-UHFFFAOYSA-N 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 238000007726 management method Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 238000012384 transportation and delivery Methods 0.000 description 6
- 235000013399 edible fruits Nutrition 0.000 description 5
- 235000014435 Mentha Nutrition 0.000 description 4
- 241001072983 Mentha Species 0.000 description 4
- 101100513476 Mus musculus Spen gene Proteins 0.000 description 4
- 235000014569 mints Nutrition 0.000 description 4
- 244000046052 Phaseolus vulgaris Species 0.000 description 3
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 3
- 238000013480 data collection Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000003909 pattern recognition Methods 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 238000011282 treatment Methods 0.000 description 3
- 244000078534 Vaccinium myrtillus Species 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000009849 deactivation Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 102000014160 PTEN Phosphohydrolase Human genes 0.000 description 1
- 108010011536 PTEN Phosphohydrolase Proteins 0.000 description 1
- 235000003095 Vaccinium corymbosum Nutrition 0.000 description 1
- 235000017537 Vaccinium myrtillus Nutrition 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 235000021014 blueberries Nutrition 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开利用可变持续时间,对连续事件流进行非事件模式匹配的技术。非事件模式匹配中使用的持续时间值可变。从而,对于起因于经由事件流接收的事件的匹配,第一模式匹配候选者可具有与第二模式匹配候选者不同的相关持续时间。在一些实施例中,候选模式匹配的持续时间可以基于启动该候选模式匹配的事件的一个或多个属性,或者基于涉及事件的一个或多个属性的表达式(例如,算术表达式)。
Description
相关申请的交叉引用
本申请要求2013年1月15日提交的美国临时申请No.61/752,855,“VARIABLEDURATION NON EVENT PATTERN MATCHING”的优先权。本申请还要求2013年3月15日提交的美国非临时申请No.13/839,288,“VARIABLE DURATION NON-EVENT PATTERN MATCHING”的优先权,该申请要求美国临时申请No.61/752,855的优先权。61/752,855和13/839,288的全部内容通过引用包含于此。
技术领域
公开的实施例涉及数据处理系统,更具体地,涉及利用可变持续时间功能,对连续的事件流进行非事件模式匹配的技术。
背景技术
在传统的数据库系统中,数据被保存在通常呈表格形式的一个或多个数据库中。随后利用诸如SQL之类的数据管理语言,查询和处理保存的数据。例如,可以定义和执行SQL查询,以从保存在数据库中的数据中识别有关的数据。从而对保存在数据库中的一组有限的数据执行SQL查询。此外,当执行SQL查询时,对有限的数据集执行一次SQL查询,并产生有限的静态结果。数据库从而最好被配备成在保存的有限数据集上进行查询。
不过,许多现代的应用和系统以连续数据或事件流(而不是有限数据集)的形式,生成数据。这种应用的例子包括(但不限于)传感器数据应用,金融报价机,网络性能监测工具(例如,网络监测和流量管理应用),点击流分析工具,汽车交通量监测等。例如,温度传感器可被配置成发送温度读数。这种应用已导致对能够处理数据流的新型应用的需求。
为这些类型的基于事件流的应用管理和处理数据涉及建立具有强时间关注的数据管理和查询能力。需要一种不同类型的查询机制,所述查询机制包含在连续的无限(unbounded)数据集内的长时间查询。尽管一些厂商现在提供适合于事件流处理的产品套件,不过,这些产品仍然缺乏处理现今的事件处理需求所需的处理灵活性。
发明内容
公开了利用可变持续时间,对连续事件流进行非事件模式匹配的一些实施例。实施例可以利用各种技术,例如,利用作用于事件数据流的计算机实现的方法,处理事件数据流的计算装置、系统或设备,保存可由一个或多个处理单元执行的多个指令的计算机可读存储器,等等实现的技术。
在事件处理引擎的模式匹配功能的上下文中,非事件检测指的是当应在特定时间范围中发生的某个事件未在该时间范围中发生时的情形的检测。例如,在当事件按特定顺序发生时的情况下,非事件检测可用于检测其中在特定时间范围中,按照所述顺序接下来应该发生的特定事件在所述时间范围内未发生的情形。
在基于非事件的模式匹配中,事件的到来会导致模式匹配候选者(有时称为绑定)被启动。计算持续时间,并使之与新创建的绑定关联,其中所述持续时间识别在其之后所述绑定满期的时期。在非事件模式匹配的上下文中,例如,所述持续时间可识别应该发生预期的下一个事件的时间范围。本发明的一些实施例允许所述持续时间对于不同的绑定是可变的。
例如,经由事件流接收的第一事件可使第一模式匹配候选者(即,第一绑定)被启动。经由相同的事件流接收的第二事件可使第二模式匹配候选者(即,第二绑定)被启动。按照本发明的实施例,第一绑定的持续时间可不同于第二绑定的持续时间。按照这种方式,在非事件模式匹配的上下文中使用的不同绑定可具有与之相关的不同或可变的持续时间。
在一些实施例中,绑定的持续时间可基于启动所述绑定的事件的属性的值。例如,持续时间可用数学表达式表示,其中所述表达式基于导致所述绑定被启动的事件的一个或多个事件属性值。由于对不同的事件来说,属性的值可不同,因此对于由不同事件启动的绑定计算的持续时间可不同。这在进行非事件模式匹配方面提供更大的灵活性,使处理能够适用于几种不同的现实生活情形,在所有绑定都具有固定或不变的持续时间的过去,这是不可能的。
在一些实施例中,可经由事件流,接收第一事件和第二事件。第一事件可导致对于模式,启动第一模式匹配候选者。第二事件可导致对于所述模式,启动第二模式匹配候选者。可对于第一模式匹配候选者,计算第一持续时间,对于第二模式匹配候选者,计算第二持续时间,其中第二持续时间不同于第一持续时间。按照这种方式,不同的事件可具有与之关联的不同的持续时间。
在某个实施例中,可根据事件的属性的值,计算在第一和第二事件启动的模式匹配的持续时间。例如,可确定第一事件的第一属性的第一值,可确定第二事件的第一属性的第二值,第二值不同于第一值。随后可利用第一值计算归因于第一事件而被启动的模式匹配的持续时间,可利用第二值计算因第二事件而被启动的模式匹配的持续时间。
在一些实施例中,可根据表达式(例如,算术表达式)的评估,计算在第一和第二事件启动的模式匹配的持续时间。例如,可确定第一事件的第一属性的第一值,可确定第二事件的第一属性的第二值,第二值不同于第一值。随后可利用第一值评估算术表达式,以计算由第一事件产生的模式匹配的持续时间,可利用第二值评估所述算术表达式,以计算由第二事件产生的模式匹配的第二持续时间。
在一些实施例中,在第一模式匹配候选者的第一持续时间过去之后,可判定第一模式匹配候选者是否匹配模式。当判定第一模式匹配候选者匹配模式时,可输出表示与第一模式匹配候选者对应的非事件发生的信息。
在一些实施例中,可根据与第一事件相关的事件时间戳,和计算的第一持续时间,对于第一模式匹配候选者确定满期时间。随后可使该满期时间与第一模式匹配候选者关联。可根据与第二事件相关的事件时间戳,和计算的第二持续时间,对于第二模式匹配候选者确定满期时间。随后可使该满期时间与第二模式匹配候选者关联。在一个实施例中,通过相加对于模式匹配候选者计算的持续时间,和与启动所述模式匹配候选者的事件相关的事件时间戳,确定所述模式匹配候选者的满期时间。
在一些实施例中,在确定了满期时间,并使之与模式匹配候选者关联之后,在与所述模式匹配候选者相关的满期时间之际或之后,可判定模式匹配候选者是否匹配模式。当判定模式匹配候选者匹配模式时,可输出表示与模式匹配候选者对应的非事件发生的信息。
按照本公开的一个方面,提供一种计算设备。所述计算设备包括第一确定单元,所述第一确定单元被配置成确定计算设备经由事件流接收的第一事件导致对于模式启动第一模式匹配候选者,第一计算单元,所述第一计算单元被配置成对于第一模式匹配候选者,计算第一持续时间,第二确定单元,所述第二确定单元被配置成确定经由事件流接收的第二事件导致对于所述模式启动第二模式匹配候选者,和第二计算单元,所述第二计算单元被配置成对于第二模式匹配候选者,计算第二持续时间。第二持续时间不同于第一持续时间。
在一些实施例中,第一确定单元被配置成确定第一事件的属性的第一值。第一计算单元被配置成利用第一值计算第一持续时间。第二确定单元被配置成确定第二事件的属性的第二值。第二值不同于第一值。第二计算单元被配置成利用第二值计算第二持续时间。
在一些实施例中,计算设备还包括第一评估单元和第二评估单元。第一确定单元被配置成确定第一事件的属性的第一值。第一评估单元被配置成利用第一值评估表达式,以计算第一持续时间。第二确定单元被配置成确定第二事件的属性的第二值。第二值不同于第一值。第二评估单元被配置成利用第二值评估表达式,以计算第二持续时间。
在一些实施例中,计算设备还包括输出单元。第一确定单元被配置成在第一事件的第一持续时间过去之后,判定第一模式匹配候选者是否匹配模式。当判定第一模式匹配候选者匹配模式时,输出单元被配置成输出表示与第一模式匹配候选者对应的非事件发生的信息。
在一些实施例中,计算设备还包括第一关联单元和第二关联单元。第一确定单元被配置成根据与第一事件相关的第一时间,和第一持续时间,对于第一模式匹配候选者确定第一满期时间。第一关联单元被配置成使第一满期时间与第一模式匹配候选者关联。第二确定单元被配置成根据与第二事件相关的第二时间,和第二持续时间,对于第二模式匹配候选者确定第二满期时间。第二关联单元被配置成使第二满期时间与第二模式匹配候选者关联。
在一些实施例中,第一确定单元被配置成通过相加第一持续时间和与第一事件相关的第一时间,确定第一满期时间。第二确定单元被配置成通过相加第二持续时间和与第二事件相关的第二时间,确定第二满期时间。
在一些实施例中,计算设备还包括输出单元。第一确定单元被配置成在与第一模式匹配候选者相关的第一满期时间之际或之后,判定第一模式匹配候选者是否匹配模式。当判定第一模式匹配候选者匹配模式时,输出单元被配置成输出表示与第一模式匹配候选者对应的非事件发生的信息。
按照本公开的一个方面,可提供一种系统或设备。所述系统或设备可包括:确定计算设备经由事件流接收的第一事件导致对于模式启动第一模式匹配候选者的装置;对于第一模式匹配候选者,计算第一持续时间的装置;确定经由事件流接收的第二事件导致对于所述模式启动第二模式匹配候选者的装置;和对于第二模式匹配候选者,计算第二持续时间的装置,第二持续时间不同于第一持续时间。
在一些实施例中,第一事件和第二事件包括属性。计算第一持续时间的装置包括:确定第一事件的属性的第一值的装置;和利用第一值计算第一持续时间的装置。计算第二持续时间的装置包括:确定第二事件的属性的第二值的装置,第二值不同于第一值;和利用第二值计算第二持续时间的装置。
在一些实施例中,第一事件和第二事件包括属性。计算第一持续时间的装置包括:确定第一事件的属性的第一值的装置;和利用第一值评估表达式,以计算第一持续时间的装置。计算第二持续时间的装置包括:确定第二事件的属性的第二值的装置,第二值不同于第一值;和利用第二值评估表达式,以计算第二持续时间的装置。
在一些实施例中,系统或设备还包括:在第一事件的第一持续时间过去之后,判定第一模式匹配候选者是否匹配模式的装置;和当判定第一模式匹配候选者匹配模式时,输出表示与第一模式匹配候选者对应的非事件发生的信息的装置。
在一些实施例中,系统或设备还包括:根据与第一事件相关的第一时间,和第一持续时间,对于第一模式匹配候选者确定第一满期时间的装置;使第一满期时间与第一模式匹配候选者关联的装置;根据与第二事件相关的第二时间,和第二持续时间,对于第二模式匹配候选者确定第二满期时间的装置;和使第二满期时间与第二模式匹配候选者关联的装置。
在一些实施例中,系统或设备还包括:在与第一模式匹配候选者相关的第一满期时间之际或之后,判定第一模式匹配候选者是否匹配模式的装置;和当判定第一模式匹配候选者匹配模式时,输出表示与第一模式匹配候选者对应的非事件发生的信息的装置。
附图说明
图1是可具体体现本发明的实施例的事件处理系统的简化高级示图;
图2是描述按照本发明的实施例,当收到事件时进行的处理的简化流程图;
图3是描述按照本发明的实施例,当收到关于现有绑定的事件时进行的处理的简化流程图;
图4描述按照本公开的实施例,可用于利用可变持续时间窗口,实现非事件检测的模块和数据结构;
图5描述按照本发明的实施例,当指定ALL MATCHES语句时会发生的可能情形;
图6描述按照本发明的实施例,当指定分区和SKIP PAST LAST ROW语句时会发生的可能情形;
图7是图解说明按照本发明的实施例,可使用的系统环境的组件的简化方框图;
图8是按照本发明的一些实施例,可使用的计算机系统的简化方框图;
图9是按照本发明的一些实施例,可使用的计算设备的简化方框图。
具体实施方式
在下面的说明中,为了解释起见,记载了具体细节,以便透彻理解本发明的实施例。然而,显然可在没有这些具体细节的情况下实践本发明。附图和说明并不是限制性的。
公开了利用可变持续时间,对连续的事件流进行非事件模式匹配的一些实施例。
在事件处理引擎的模式匹配功能的上下文中,非事件检测指的是当应在特定时间范围中发生的某个事件未在该时间范围中发生时的情形的检测。例如,在当事件按特定顺序发生时的情况下,非事件检测可用于检测其中在特定时间范围中,按照所述顺序接下来应该发生的特定事件在所述时间范围内未发生的情形。
在基于事件的模式匹配中,事件的到来会导致模式匹配候选者(有时称为绑定)被启动。计算持续时间,并使之与新创建的绑定关联,其中所述持续时间识别在其之后所述绑定满期的一段时间。在非事件模式匹配的上下文中,例如,所述持续时间可识别应该发生预期的下一个事件的时间范围。
过去,与归因于模式匹配而启动的各个绑定相关的持续时间总是不变或者固定的。例如,用于指定绑定的持续时间的DURATION语句仅仅取不变或固定值作为参数,例如“DURATION 10”。利用这种语句,每次新的模式匹配绑定启动时,该绑定的持续时间总是被设定为10个时间单位(10秒),并且对所有绑定来说都相同。这大大限制了利用非事件模式匹配模拟现实生活情形的能力。
本发明的一些实施例提供允许与绑定相关的持续时间对不同绑定来说可变的所需灵活性。例如,经由事件流接收的第一事件可导致第一模式匹配候选者(即,第一绑定)被启动,经由事件流接收的第二事件可导致第二模式匹配候选者(即,第二绑定)被启动。按照本发明的一些实施例,第一绑定的持续时间不同于第二绑定的持续时间。按照这种方式,一个绑定的持续时间可不同于另一个绑定的持续时间。在非事件模式匹配的上下文中使用的不同绑定从而可具有与之相关的不同或可变的持续时间。
在一些实施例中,绑定的持续时间可基于启动所述绑定的事件的属性的值。例如,持续时间可用数学表达式表示,其中所述表达式基于导致所述绑定被启动的事件的一个或多个事件属性值。由于对不同事件来说,属性的值可不同,因此对于由不同事件启动的绑定计算的持续时间可不同。这在进行非事件模式匹配方面提供更大的灵活性,使处理能够适用于几种不同的现实生活情形,在所有绑定都具有固定或不变的持续时间的过去,这是不可能的。
如上所述,本发明的实施例可适用于事件流(也称为连续数据流)的处理。连续数据流或事件流(或事件数据流)是无明确结尾的在本质上连续或无限的一连串数据或事件。逻辑上,事件或数据流是一连串的数据元素(也称为事件),每个数据元件具有相关的时间戳。连续事件流可被逻辑地表示成一包或一组元素(s,T),其中“s”表示数据部分,“T”在时间域中。“s”部分通常被称为元组或事件。事件流从而是一连串带时间戳记的元组或事件。
在一些实施例中,与流中的事件相关的时间戳可等同于时钟时间。不过,在其它实施例中,与事件流中的事件相关的时间可由应用域定义,并可不对应于时钟时间,而是改为用序列号表示。从而,与事件流中的事件相关的时间信息可用数字、时间戳、或者表示时序概念的任何其它信息表示。对接收输入的事件流的系统来说,事件按照递增的时间戳的顺序到达所述系统。具有相同时间戳的事件可不止一个。
在一些实施例中,事件流中的事件可表示某个世俗事件的发生(例如,当温度传感器把值改变成新的值时,当股票代码的价格变动时),与事件相关的时间信息可指示由数据流事件表示的世俗事件发生的时间。
对于经由事件流接收的事件,与事件相关的时间信息用于确保事件流中的事件按照递增的时间戳值的顺序到达。这使得能够根据其相关的时间信息,排序和处理在事件流中接收的事件。为了能够实现这种排序,按稍后生成的事件具有晚于较早生成的事件的时间戳的非递减方式,关联时间戳和事件流中的事件。再例如,如果利用序列号作为时间信息,那么与稍后生成的事件相关的序列号大于与较早生成的事件相关的序列号。通常按照利用相关的时间信息施加于事件的顺序,处理属于相同事件流的事件,较早的事件在稍后的事件之前被处理。在一些实施例中,多个事件可与相同的时间戳或序列号关联,例如,当在相同时间发生由数据流事件表示的世俗事件时。在这些情况下,按照接收顺序,处理事件。
与事件流中的事件关联的时间信息(时间戳)可由所述流的来源设定,或者可由接收所述流的系统设定。例如,在一些实施例中,可在接收事件流的系统上维持心跳,与事件相关的时间可以基于利用心跳测量的事件到达系统的时间。事件流中的两个事件可能具有相同的时间信息。注意,尽管时间戳排序要求特定于一个事件流,不过,不同流的事件可被任意交织。
事件流具有相关的方案(schema)“S”,所述方案包含时间信息和一组一个或多个指定的属性。属于特定事件流的所有事件遵守与该特定事件流相关的方案。从而,对于事件流(s,T),事件流可具有如(<time_stamp>,<attribute(s)>)的方案“S”,其中<attributes>表示方案的数据部分,可包含一个或多上属性。例如,证券报价机事件流的方案可包含属性<stock symbol>和<stock price>。借助这种流接收的每个事件具有时间戳和两种属性。例如,证券报价机事件流可接收以下事件和相关的时间戳:
…
(<timestamp_N>,<NVDA,4>)
(<timestamp_N+1>,<ORCL,62>)
(<timestamp_N+2>,<PCAR,38>)
(<timestamp_N+3>,<SPOT,53>)
(<timestamp_N+4>,<PDCO,44>)
(<timestamp_N+5>,<PTEN,50>)
…
在上面的流中,对于流元素(<timestamp_N+1>,<ORCL,62>),对于属性“stock_symbol”和“stock_value”的事件值分别为ORCL和62。与流元素相关的时间戳为“timestamp_N+1”。连续事件流从而是连续不断的事件,每个事件具有相同的一系列属性。
图1是可具体体现本发明的实施例的事件处理系统100的简化高级示图。事件处理系统100可包含一个或多个事件源(104、106、108),配置成提供用于处理事件流的环境的事件处理服务器(EPS)102,和一个或多个事件接收器(event sink)(110、112)。事件源生成由EPS 102接收的事件流。EPS 102可从一个或多个事件源接收一个或多个事件流。例如,如图1中所示,EPS 102接收来自事件源104的输入事件流114,来自事件源106的第二输入事件流116,和来自事件源108的第三事件流118。一个或多个事件处理应用(120、122和124)可被部署在EPS 102上,并由EPS 102执行。EPS执行的事件处理应用可被配置成侦听一个或多个输入事件流,根据从输入事件流中选择一个或多个事件作为重要(notable)事件的处理逻辑,处理经由一个或多个事件流接收的事件。重要事件随后可以一个或多个输出事件流的形式,被发送给一个或多个事件接收器(110、112)。例如,在图1中,EPS 102把输出事件流126输出给事件接收器110,把第二输出事件流128输出给事件接收器112。在一些实施例中,使事件源、事件处理应用和事件接收器相互退耦,以致可以增加或除去这些组件任意之一,而不导致对其它组件的变化。
在一个实施例中,EPS 102可被实现成包含具有共享服务的轻量级Java应用容器,比如基于Equinox OSGi的轻量级Java应用容器的Java服务器。在一些实施例中,例如,通过利用JRockit Real Time,EPS 102可支持超高吞吐量和微秒等待时间,以便处理事件。EPS102还可提供包括用于开发事件处理应用的工具(例如,Oracle CEP Visualizer和OracleCEP IDE)的开发平台(例如,完全实时的端到端Java Event-Driven Architecture(EDA)开发平台)。
事件处理应用被配置成侦听一个或多个输入事件流,执行从一个或多个输入事件流中选择一个或多个重要事件的逻辑(例如,查询),和经由一个或多个输出事件流把选择的重要事件输出给一个或多个事件源。在一个实施例中,可以指定查询,以检测非事件,和生成包含来自非事件模式匹配的输出的事件流。非事件检测是当应在特定时间范围中发生的某个事件未在该时间范围中发生时的情形的检测。在一些实施例中,用于检测非事件的查询包含只有当查询指定的(例如,由Pattern语句指定的)正则表达式被完全匹配,并且在DURATION语句中指定的持续时间满期之前没有其它事件或输入到达时,才导致匹配被报告的DURATION语句。经由事件流接收的事件可导致模式匹配候选者(有时称为绑定)被启动。计算持续时间,并使之与新创建的绑定关联。与绑定相关的该持续时间可识别其中应该发生预期的下一个事件的时间范围。根据启动模式匹配的事件的到达时间,测量持续时间。按照本发明的一些实施例,对于第一绑定计算的持续时间可不同于被匹配的相同模式的另一个绑定。按照这种方式,一个绑定的持续时间可不同于另一个绑定的持续时间。在非事件模式匹配的上下文中使用的不同绑定从而具有与之相关的不同或者可变的持续时间。
图1提供包含关于非事件模式匹配的查询的事件处理应用120的详细信息。如图1中所示,事件处理应用120被配置成侦听输入的事件流118,执行包含对输入的事件流118进行非事件模式匹配的逻辑的查询130,并经由输出事件流128把非事件模式匹配的结果输出给事件接收器112。在非事件模式匹配中,输出由与绑定相关的定时器满期事件触发(与关于输入流的明确输入事件相反),因为非事件检测探测当应在特定时间范围中发生的某个事件未在该时间范围中发生时的情形。当与绑定相关的持续时间已过去时,认为该绑定满期。事件源的例子包括(但不限于)适配器(例如,JMS、HTTP和文件),通道,处理器,表格,高速缓存等。事件接收器的例子包括(但不限于)适配器(例如,JMS、HTTP和文件),通道,处理器,高速缓存等。
尽管图1中的事件处理应用120被表示成侦听一个输入流,并经由一个输出流输出选择的事件,不过这不是限制性的。在备选实施例中,事件处理应用可被配置成侦听从一个或多个事件源接收的多个输入流,从监控的流中选择事件,或者检测非事件,并经由一个或多个输出事件流把选择的事件或者非事件匹配的结果输出给一个或多个事件接收器。相同的查询可以与不止一个事件接收器关联,可以与不同种类的事件接收器关联。
归因于其无限性,经由事件流接收的数据的数量通常极大。从而,保存或存档所有数据以便查询通常不切实际或者不合需要。事件流的处理要求当EPS 102收到事件时,实时地事件处理,而不必保存所有接收的事件数据。从而,EPS 102提供使得能够在EPS 102收到事件时,进行事件的处理,而不必保存所有的接收事件的特殊查询机制。
事件驱动的应用是规则驱动的,这些规则能以用于处理输入流的连续查询的形式表示。连续查询可包含识别对于接收的事件要进行的处理的指令(例如,业务逻辑)。连续查询可被存留到数据仓库,用于处理事件的输入流,并生成事件的输出流。连续查询可指定过滤和聚合功能,以从输入事件流中发现和提取重要事件,或者指定与非事件模式匹配相关的处理。结果,输出事件流中的出站事件的数目通常远远小于从中选择事件的输入事件流中的事件的数目。
不同于对于有限数据集运行一次的SQL查询,每当在特定事件流中收到事件时,都可执行关于该事件流的由应用向EPS 102登记的连续查询。作为连续查询执行的一部分,EPS 102根据连续查询指定的指令,评估接收的事件。
可利用不同的语言,对连续查询编程。在一些实施例中,可以利用Oracle公司提供并由Oracle的Complex Events Processing(CEP)产品供应使用的Continuous QueryLanguage(CQL),来构成连续查询。Oracle的CQL是可用于编程可对于事件流执行的查询(称为CQL查询)的说明性语言。在一些实施例中,CQL基于具有支持流式事件数据的处理的附加结构的SQL。
在一个实施例中,事件处理应用可由以下组件类型构成:
(1)直接与输入和输出流以及关系源和接收器面接(interface)的一个或多个适配器。适配器被配置成理解输入和输出流协议,负责把事件数据转换成可由应用处理器查询的标准化形式。适配器可把标准化的事件数据转发到通道或输出流和关系接收器中。可对于各种数据源和接收器,定义事件适配器。
(2)充当事件处理终点的一个或多个通道。其中,通道负责对事件数据排队,直到事件处理代理能够对事件数据起作用为止。
(3)一个或多个应用处理器(或者事件处理代理)被配置成消费来自通道的标准化事件数据,通过利用查询选择重要事件或者检测非事件情形,来处理所述标准化事件数据,和把选择的重要事件转发(或复制)到输出通道。
(4)一个或多个bean可被配置或登记为侦听输出通道,并可由新事件在输出通道中的插入而被触发。在一些实施例中,该用户代码是简单Java对象(POJO),或者用户代码可利用Oracle CEP event bean API,以致bean可由Oracle CEP管理。用户应用可以利用一组外部服务,比如JMS、Web服务和文件写入器,把生成的事件转发给外部事件接收器。
在一个实施例中,事件适配器把事件数据提供给输入通道。输入通道连接到与作用于由输入通道提供的事件的一个或多个CQL查询相关的CQL处理器。CQL处理器连接到查询结果被写入的输出通道。
在一些实施例中,对于事件处理应用,可以提供汇编文件,所述汇编文件描述事件处理应用的各个组件,各个组件如何被连接在一起,应用处理的事件类型。可以提供单独的文件,以指定用于事件的选择的连续查询或业务逻辑。
应意识到,图1中描述的系统100可具有除图1中描述的组件之外的其它组件。此外,图1中所示的实施例仅仅是可具体体现本发明的实施例的系统的一个例子。在一些其它实施例中,系统100可具有比图1中所示的组件更多或更少的组件,可以组合两个或更多的组件,或者可以具有组件的不同布局或排列。系统100可以是各种类型的系统,包括个人计算机,便携式设备(例如,移动电话机或设备),工作站,网络计算机,大型机,信息站,服务器或任何其它数据处理系统。在一些其它实施例中,系统100可被配置成其中系统100的一个或多个组件分布在云中的一个或多个网络中的分布式系统。
图1中描述的组件中的一个或多个可用软件、用硬件、或者它们的组合实现。在一些实施例中,软件可被保存在存储器(例如,非临时性计算机可读介质)中,保存在存储设备上,或者某个其它物理存储器上,可由一个或处理单元(例如,一个或多个处理器,一个或多个处理器内核,一个或多个GPU等)执行。
非事件模式匹配
如上所述,非事件检测指的是当应在特定时间范围中发生的某个事件未在该时间范围中发生时的情形的检测。例如,在当事件按特定顺序发生时的情况下,非事件检测可用于检测其中在特定时间范围中,按照所述顺序接下来应该发生的特定事件在所述时间范围内未发生的情形。
在某些事件处理系统中,可利用非事件模式匹配,完成非事件检测。下面是其中适用非事件检测的一些非限制性例子。
例#1:定购单跟踪应用:定购单跟踪系统必须能够跟踪即使定购的物品的估计交付时间已过去,定购的物品仍未被发货的定单。例如,定购单系统的工作流可以是:定单被发出,定单被处理;定购的物品被发货,和为定单提供估计的交付时间。应用被配置成当定单被发出、在处理中,但是即使估计的交付时间已过去却仍未被发货时,来报告非事件。这里,发出定单和物品的发货可被模拟成单独的事件。可以观察到估计的交付时间固有地取决于定购和发货的物品,因为取决于涉及的物品,对不同的定购单来说,这是不同的。基于被发货物品的这种可变性不能利用常规的固定持续时间非事件模式匹配来模拟,不过可以利用本发明的一些实施例来模拟。作为事件,可以模拟3个工作流状态,可以定义和接收具有方案<orderId,orderDesc,eventType,estimatedTimeOfDelivery>的事件流,其中eventType可具有3个可能的值“placed”、“inProcess”和“shipped”。当定单被“发出”,随后“在处理中”,但是即使在定单被“发出”之后,“estimatedTimeOfDelivery”已过去时,定单还未被“发货”时,事件处理应用报告非事件。本发明的一些实施例使得对于不同类型的定单,“estimatedTimeOfDelivery”可不同。下面提供进行这种非检测的CQL查询。
例#2:机场旅客跟踪应用:航空公司可能希望跟踪旅客着陆和到达行李提取区的时间。航空公司预期在着陆时,旅客会在特定时间范围,比如说30分钟内出现在行李提取区。对不同的航空公司来说,这种时间范围预期是不同的。在这种情形下,可作为单独的事件,模拟旅客的着陆和旅客到达行李提取区:关于着陆的事件A,和关于到达行李提取区的事件B。可以利用作为(A)的正则表达式,模拟着陆。该模式的持续时间可被表示成(T+delay),其中T是旅客着陆的时间(即,事件A的时间戳),其中“delay”是航空公司预期旅客将在行李提取区(即,事件B的发生)的时间。“delay”对于一家航空公司,可以为30分钟,并且是特定于航空公司的。当事件A发生(即,模式被匹配),但是在发生事件A之后的持续时间内事件B未发生,那么可报告非事件。
返回参见例#1(定购单跟踪例子),可以收到具有以下方案<orderId,orderDesc,eventType,estimatedTimeOfDelivery>的事件流“PurchaseOrderTracking”。如上所示,eventType可具有3个可能的值:“placed”,“inProcess”和“shipped”。可以定义CQL查询,用于当定单被“发出”,随后“在处理中”,但是即使在定单被“发出”之后,“estimatedTimeOfDelivery”已过去时,定单还未被“发货”时,来报告匹配。这里对于不同类型的定单,“estimatedTimeOfDelivery”可不同。“PurchaseOrderTracking”流的属性“estimatedTimeOfDelivery”可作为DURATIO子语句表达式。在一个实施例中,这可利用具有如下所示的可变持续时间语句的CQL查询(qDelayedShipments)被捕捉:
创建如下的查询qDelayedShipments
SELECT
T.id as orderId,T.desc as description
FROM PurchaseOrderTracking MATCH_RECOGNIZE(
PARTITION BY orderId
MEASURES
A.orderId as id,A.orderDesc as desc
ALL MATCHES
INCLUDE TIMER EVENTS
PATTERN(A B)DURATION estimatedTimeOfDelivery
DEFINE
A as A.eventType='placed',
B as B.eventType='inProcess'
)as T
这里,estimatedTimeOfDelivery是输入的事件流方案的属性。从而,对于接收的启动模式(AB)的模式匹配候选者的输入事件,根据启动所述模式的输入事件的estimatedTimeOfDelivery属性的值,确定模式匹配候选者的持续时间。
qDelayedShipments查询包含下面说明的几条CQL语句。在一个实施例中,CQL语言结构MATCH_RECOGNIZE语句用于在CQL查询中进行模式识别。利用MATCH_RECOGNIZE语句,用户能够定义关于输入事件的属性的条件,并通过利用称为关联变量的标识符,识别模式匹配的条件。输入流中的都满足某些条件的一连串连续事件或元组构成模式。模式识别功能使用户可以定义关于输入事件或元组的属性的条件,和通过利用称为关联变量的串名称,识别这些条件。在qDelayedShipments查询中,“A”和“B”是关联变量。在这些关联变量内,作为正则表达式,指定待匹配的模式,所述模式确定各个条件应被将被识别为有效匹配的不同输入事件满足的次序或顺序。输入流中的满足这些条件的一连串连续事件构成模式。在一个实施例中,MATCH_RECOGNIZE查询的输出是流。
在上面所示的查询qDelayedShipments中,MATCH_RECOGNIZE语句具有几条子语句。DEFINE子语句规定各个关联变量的Boolean条件。这可被规定成任何逻辑或算术表达式,可把任意单行或聚合函数应用于匹配条件的事件的属性。当经由输入流收到新的事件时,评估在该时刻相关的关联变量的条件。如果事件满足其定义条件,那么认为该事件匹配关联变量。特定输入可匹配0个、1个或更多的关联变量。收到输入的事件时待评估的有关条件由受PATTERN语句正则表达式以及模式识别处理中在处理较早的输入之后达到的状态支配的处理逻辑来确定。条件可引用流的方案的属性任意之一,或者评估成MATCH_RECOGNIZE正被应用于的流的视图。在DEFINE语句中,不需要指定PATTERN语句中的关联变量:这种关联变量的默认值是始终为真的谓词。这样的关联变量匹配每个事件。
PARTITION BY子语句规定MATCH_RECOGNIZE语句应按其划分其结果的流属性。如果没有PARTITION BY语句,那么所有的流属性属于相同分区。当随同模式匹配一起存在PARTITION BY语句时,根据在分区列表中提及的属性,逻辑地划分输入流,并在分区内进行模式匹配。
MEASURES子语句导出(例如,使之可包含在SELECT语句中)成功匹配指定的模式的事件的一个或多个属性值,还使得对于这些属性值能够指定表达式。该语句可用于定义关于匹配DEFINE语句中的条件(关联变量)的事件流中的事件的属性的表达式,和别称(alias)这些表达式,以致它们可适当地用在所述MATCH_RECOGNIZE条件为其一部分的主查询的SELECT语句中。可以直接地或者经由关联变量,引用事件流的属性。
ALL MATCHES子语句是可选的,用于规定将如何处理重叠模式。ALL MATCHES语句的存在使在接收特定输入时的所有匹配的模式实例被报告。省略ALL MATCHES语句导致仅仅输出一种模式(最长匹配)。例如,如果待匹配的模式是(AB*),那么ALL MATCHES将使所有匹配和重叠的模式被输出,比如A、AB、ABB、ABBB。省略该语句将只输出最长的匹配模式,即ABBB。
INCLUDE TIMER EVENTS子语句和DURATION语句(下面说明)一起用于非事件检测查询。一般,在多数模式匹配查询中,模式匹配输出总是由正对于其匹配模式的输入流上的输入事件触发。例外情况是其中可存在由定时器满期事件触发的输出(与输入流上的明确输入事件相反)的非事件检测查询。
PATTERN子语句把待匹配的模式指定为关于一个或多个关联变量的正则表达式。输入的事件必须按照给定的顺序(从左到右)匹配这些条件。正则表达式可由关联变量和如下的模式限定符构成:
*:0次或多次
+:1次或多次
?:0次或1次,等等
在一些实施例中,上面所示的1字符模式限定符是最大的或“贪婪的”;它们将试图匹配它们被应用于的正则表达式的尽可能多的实例。模式限定符也可以是2个字符,2字符模式限定符是最小的或者“勉强的”;它们将试图匹配它们被应用于的正则表达式的尽可能少的实例。2字符限定符的例子包括(但不限于):
*?:0次或多次
+?:1次或多次
??:0次或1次
作为模式匹配的例子,考虑以下模式:
PATTERN(AB*C)
该模式语句意味当连续到来的输入事件满足以下条件时,模式匹配将被识别:
State 1:正好一个事件元组匹配定义关联变量A的条件,继之以
State 2:匹配关联变量B的0个或多个元组,继之以
State 3:匹配关联变量C的正好一个元组。
状态State 1、State 2和State 3表示模式(AB*C)的各种状态,State3是该模式的终态。当模式匹配处于特定状态,并且或者可保留在相同的特定状态,或者归因于下一个事件可从特定状态转变到下一个状态时,这意味该绑定能够生长。如果绑定处于终态,那么认为模式被匹配。而在State 2,如果到来匹配关联变量B和C两者的元组或事件(因为它满足它们两者的定义条件),那么由于关于B的限定符是贪婪的,因此该元组将被认为匹配B,而不是C。从而,归因于贪婪性,B优先于C,我们匹配更大数目的B。在模式表达式为A B*?C的情况下,一个这样的模式表达式利用对于B的惰性或勉强限定符,从而匹配B和C两者的元组将被视为只匹配C。从而,C优先于B,我们将匹配较少的B。
在上面的qDelayedShipments查询中,在以下状态时,模式(A B)被匹配:
State 1:仅仅一个事件元组匹配定义关联变量A的条件,即,具有eventType“placed”的事件,继之以
State 2(终态):匹配关联变量B的仅仅一个元组,即,具有eventType“inProcess”的事件。
状态State 1和State 2表示模式(AB)的各种可能状态,State 2是所述模式的终态。
当编写涉及非事件检测的查询时,使用DURATION子语句。通过利用该语句,只有当PATTERN语句中的正则表达式被完全匹配,并且在DURATION语句中指定的持续时间满期之前,没有其它事件或输入到来时,才报告匹配。DURATION语句具有指定DURATION语句的持续时间的相关时间参数,例如
DURATION<time_parameter>
time_parameter用于计算归因于特定模式的输入事件而启动的绑定或模式匹配候选者(或绑定)的持续时间。持续时间指示所述绑定能够生长的时间长度,该时间长度从导致模式匹配或绑定的启动的事件的到来时间起算。
过去,time_parameter始终是不变值或固定值。本发明的一些实施例使在用于非事件检测的模式查询的DURATION语句中指定的time_parameter可变。如上所述,在以前的实现中,在DURATION语句中,用户只可具有不变或固定的值。本发明的一些实施例使可变的DURATION语句能够基于相应变化。
例如,DURATION语句的time_parameter可以是输入事件的一个或多个属性的函数。例如,对于查询qDelayedShipments中的模式(AB),DURATION语句的time_parameter是“estimatedTimeOfDelivery”,持续时间被设定成启动匹配的接收事件的estimatedTimeOfDelivery属性的值。由于对启动匹配的不同事件来说,该属性的值可不同,因此对于不同事件,由DURATION语句指定的持续时间的值可不同。从而,对于具有包含一个或多个属性的方案的基础输入流,DURATION语句的time_parameter可基于事件属性中的一个或多个。例如,如果事件“E”具有属性“attr”,那么DURATION语句的例子可以是“DURATION E.attr”。这里,time_parameter被设定成E.attr的值,这导致与由事件“E”的接收而产生的绑定相关的持续时间被设定成属性E.attr的值。
再例如,与DURATION语句相关的time_parameter可指定表达式(例如,算术表达式),所述表达式被评估,评估的结果是被赋予DURATION语句的作为结果的持续时间的值。在一些实施例中,表达式可涉及事件的一种或多种属性。例如,如果事件“E”具有属性“attr_1”、“attr_2”,那么time_parameter的算术表达式的例子可包括(但不限于):
DURATION E.attr_1
DURATION E.attr_1+C,其中C是某个常数(例如,E.attr_1+4)
DURATION E.attr_1+E.attr_2
DURATION 2*E.attr_2
由于接收的事件的属性的值可因事件而异,因此算术表达式的评估可导致与由归因于不同事件的匹配产生的绑定关联的不同持续时间值。从而,对于DURATION,本发明的实施例能够实现固定/不变值或者可变值。
在模式匹配的上下文中,当事件在输入事件流上到来,并且启动模式匹配(即,创建新的绑定)(或者多个模式匹配)时,在运行时评估DURATION语句。当这样的绑定启动时,评估与DURATION语句相关的表达式,从表达式的评估获得的值被识别成绑定的持续时间。从而,该表达式的值被视为在该事件启动的模式匹配(如果有的话)的DURATION值。
从而,用户可设计用于非事件检测的CQL查询,并指定DURATION的表达式(例如,算术表达式),以适合于用户的需求。用户能够把非事件检测的持续时间指定为可能涉及关于其定义模式查询的基本流的一个或多个属性的算术表达式。当逐个事件地看时,把可变值用于持续时间是有利的,即,对于每个输入事件,持续时间可不同。
图2是描述按照本发明的实施例,当收到事件时进行的处理的简化流程图200。图2中描述的处理可以用由一个或多个处理单元(例如,处理器内核)执行的软件(例如,代码、指令、程序)、硬件、或者两者的组合实现。软件可被保存在存储器中(例如,保存在存储设备上,保存在非临时性计算机可读存储介质上)。图2中描述的特定的一系列处理步骤并不是限制性的。在一些实施例中,每当经由事件流收到输入事件时,可作为连续查询的一部分进行图2中描述的处理。
在202,经由事件流接收输入事件。事件可具有相关的时间信息(例如,时间戳)。在一些情况下,与事件相关的时间可表示收到该事件的时间。
在204,判定在202中接收的事件是否启动模式匹配候选者(也称为绑定)。如果事件导致PATTERN中的第一关联变量被匹配,那么事件启动绑定。这种匹配意味在该事件,可启动新的模式匹配。如果事件启动新的绑定,那么处理继续进行206,否则处理继续进行214。以上面说明的qDelayedShipments查询为例,模式为(AB),其中A是其eventType为“placed”的事件,B是其eventType为“in Process”的事件。从而,如果在202中收到其eventType为“placed”的事件,那么它启动模式匹配,因为该事件匹配(AB)模式的“A”部分(即,State 1被满足)。模式匹配也可被称为绑定。模式匹配或绑定具有进一步生长的潜力。具有进一步生长的潜力的这种绑定被称为活性绑定。
在206,对于新启动的绑定,计算持续时间。绑定的持续时间基于在查询中的DURATION语句中指定的time_parameter。所述持续时间识别所述绑定在其之后满期的一段时间。构成模式匹配的所有事件在由持续时间指定的时间范围内发生,在发生促成匹配(按照PATTERN语句)的最后事件之后,和在持续时间满期/结束之前,不发生其它事件。从而,在206,评估DURATION语句的time_parameter,评估的结果是持续时间的值。
在一些情况下,和以前的实现中一样,time_parameter可以是固定值。在这种情况下,持续时间被设定成该固定值。
在一些实施例中,time_parameter可指定可变值。例如,DURATION语句的time_parameter可基于事件的属性。在其它情况下,time_parameter可被表示成涉及事件的一个或多个属性的表达式(例如,算术表达式)。作为206的一部分,确定在202中接收的事件的所述一个或多个属性的值,并用于计算持续时间。如果指定了涉及事件的一个或多个属性的表达式(例如,算术表达式),那么在206,确定所述一个或多个属性的值,并用于评估算术表达式。持续时间是算术表达式评估的结果。例如,对于DURATION语句,
DURATION c1+5,其中c1是事件的属性,
确定在202中接收的事件的属性c1的值,并利用确定的值评估“c1+5”算术表达式。评估的结果是新的绑定的持续时间。
由于对于启动新绑定的不同事件,属性的值可不同,因此对于不同的绑定,算术表达式的评估会产生不同的时段值。按照这种方式,与归因于对于相同的指定模式、经由相同的事件流接收的事件启动的不同绑定相关的持续时间可不同。
在208,根据在206中确定的持续时间值,对于新启动的绑定,确定满期时间(或目标时间)。通过相加在206中确定的持续时间值,和在202中接收的启动所述绑定的事件的时间戳,获得所述绑定的目标时间。从而,
目标时间(TT)=事件的时间(TE)+持续时间(TD)
例如,如果在202接收的事件具有5秒的相关时间戳,并且在206中确定的持续时间值为10秒,那么作为该事件的结果而启动的绑定的目标时间为5+10=15秒标记。所述15秒标记(second mark)标记与该绑定相关的满期时间。
在210,使在208中确定的目标时间与新启动的活性绑定关联。处理随后继续进行214。
在214,可进行由在202接收的事件触发的其它与事件相关的处理。例如,在一个实施例中,作为214的一部分,可以进行图3中所示的处理。在进行214中的处理之后,在212,事件处理系统等待下一个事件到达。随后可对下一个事件,重复图2中所示的处理。
一旦生成了新的绑定,当后续事件到来时,事件处理系统进行处理,以判定该绑定是否将生长,或者达到该绑定不能生长的状态。此外,事件处理系统跟踪绑定,和它们的相关目标时间或满期时间,当与绑定相关的满期时间过去或满期时(即,当绑定满期时),进行适当的处理。
图3是描述按照本发明的实施例,当收到关于现有绑定的事件时进行的处理的简化流程图300。图3中所示的处理可以用由一个或多个处理单元(例如,处理器内核)执行的软件(例如,代码、指令、程序),硬件,或者它们的组合实现。软件可被保存在存储器中(例如,保存在存储设备上,保存在非临时性计算机可读存储介质上)。图3中描述的特定的一系列处理步骤不是限制性的。在一些实施例中,每当经由事件流收到输入事件时,可作为连续查询执行的一部分,进行图3中所示的处理。
图3表示关于已存在的单个绑定的处理。不过,显然可以存在不止一个绑定,各个绑定是归因于基于先前接收的事件的模式匹配的启动而创建的。可利用图300中所示和下面说明的处理,处理这些多个绑定中的每个绑定。
在302,借助事件流接收事件。每个事件具有相关的时间信息(例如,时间戳)。该时间信息用于判定与先前存在的绑定相关的目标时间(或满期时间)是否已过去或满期,即,绑定是否已满期。
从而,在304,检查与先前存在的绑定相关的目标时间或满期时间是否等于或小于与在302中接收的事件相关的时间戳。如果在304,判定与先前存在的绑定相关的目标时间或满期时间等于或小于与在302中接收的事件相关的时间戳,那么指示该绑定已满期,从而处理继续进行314,否则指示该绑定未满期,从而处理继续进行306。
在306,判定基于在302中接收的事件,是否可使活性绑定生长。如前所述,当绑定处于正被匹配的模式的各种可能状态中的特定状态,并且可以或者保留在该相同的特定状态下,或者作为下一个事件的结果可以从该特定状态转变到下一个状态时,这意味该绑定能够生长。例如,如果在302中接收的输入事件匹配按照PATTERN正则表达式的下一个允许变量,那么可使绑定进一步生长,其中下一个允许变量取决于在模式匹配中,当前的活性绑定表示的点。从而,在306,判定作为在302中接收的事件的结果,是否可使先前存在的绑定生长。如果在306,判定该绑定可生长,那么在308,使该绑定生长,否则在310,从处理中丢弃该绑定。处理随后继续进行312,在312,事件处理系统等待下一个事件到来。
以qDelayedShipments查询为例,归因于已匹配A的在先事件,正被处理的先前存在的绑定可能处于模式(AB)的State 1。如果在302中接收的事件匹配模式的B(即,在302中接收的事件的eventType是“inProcess”),那么在308,该绑定可以并从A生长到AB(绑定的状态从State 1转变到State 2)。不过,如果在302中接收的事件不匹配B(即,在302中接收的事件的eventType不是“inProcess”),那么该绑定不能生长,从而经310,从处理中丢弃该绑定。
返回参见304,如果在304确定与先前存在的绑定相关的目标时间或满期时间等于或小于与在302中接收的事件相关的时间戳,那么这指示所述绑定已满期,从而处理继续进行314。在314,检查绑定是否处于模式匹配状态中的终态。如果绑定未处于终态,那么这意味在与绑定相关的持续时间内,指定的模式未被匹配,从而经310,从处理中丢弃该绑定。如果绑定处于终态,那么这意味在与该绑定相关的持续时间内,指定的模式已被匹配,随后在316,报告非事件。在一个实施例中,MEASURE语句识别待输出的信息。从而评估MEASURE语句表达式,随后输出信息。处理随后继续进行312,在312,系统等待下一个事件到来。
例如,对于qDelayedShipments中的(AB)模式,在314中,检查绑定是否处于State2(即,AB已被匹配)。如果否,那么意味在与绑定相关的持续时间内,AB模式未被匹配,从而经310,从处理中丢弃该绑定。如果在314,判定绑定处于终态(即,AB已被匹配),那么这指示收到指示定单已被发出(匹配A)的事件,继之以指示定单在处理中(匹配AB)的事件,但是未收到指示在与该绑定相关的持续时间(即,estimatedTimeOfDelivery)内,定单已被发货的后续事件。从而,在这种情况下报告非事件。
图2和3中所示和上面说明的处理假定在302中接收的事件是实际的数据事件。在一些实施例中,在302中接收的事件也可以是心跳事件,心跳事件是用于仅仅传达时间进展信息的一种特殊的输入事件。心跳事件不具有与普通的数据事件相关的其它属性的任何值。事件处理系统可被配置成每隔可由系统的用户配置的一定时间,自动发送心跳事件。于是每隔一定时间,自动生成和发送心跳事件,如果在这期间,没有收到其它实际事件(即,对于该时期,事件流静默)的话。例如,对于加上系统时间戳的源(常常用在事件处理应用中),当流/关系持续一段时间静默时,可指定自动发送心跳事件之后的时期。输入通道可被配置成每隔可配置的时期,发送心跳元组。要注意的是,不是所有系统都需要具有心跳事件发送机构。
由于心跳事件不包含任何数据属性,因此在图2中,当收到心跳事件时,处理会继续进行214。由于心跳事件传达时间消逝信息,因此在图3中,当收到心跳事件时,会进行304中的处理,以判定绑定是否已满期。如果判定满期,那么处理会继续进行314。如果未满期,那么处理会继续进行312。
可按照各种方式,报告非事件模式匹配处理的结果。例如,当指定ALL MATCHES子语句时,报告所有匹配的模式实例。省略ALL MATCHES语句导致仅仅输出一个模式(最长的匹配)。从而,当报告非事件时,在316进行适当的处理。例如,当不存在ALL MATCHES语句时,可以从多个重叠的绑定中只识别最长的匹配,然后报告最长的匹配,而不报告其它匹配。下面说明报告非事件的其它自定义方法。
图3中所示和上面说明的处理可用于处理(以前的实现中的)不变或固定时期DURATION语句,或者按照本发明的一些实施例的可变持续时间DURATION语句。从而,提供用于处理非事件检测的公共通用方法。
图4描述按照本发明的实施例,可用于利用可变持续时间,实现非事件检测的模块和数据结构。图4中描述的模块可以用软件或硬件,或者它们的组合来实现。此外,图4中所示的模块和数据结构不是限制性的。在各种排列和组合中,备选实施例可具有与图4中所示相比,更多或更少的模块。
在图4中描述的实施例中,模块包括新绑定生成器402、绑定管理器404、持续时间和满期时间评估器406、和输出模块410。事件处理系统接收的事件400可被转发给新绑定生成器402和绑定管理器404。在一些实施例中,新绑定生成器402被配置成判定接收的事件是否启动新的绑定或模式匹配。如果生成新的绑定,那么新绑定生成器402可利用持续时间和满期时间评估器406确定该绑定的持续时间,和该绑定的满期时间(目标时间)。持续时间和满期时间评估器406可评估与DURATION语句相关的time_paramater,以确定该绑定的持续时间。根据计算的持续时间,并根据与事件400相关的时间,评估器406可确定新生成的绑定的目标时间或满期时间。新绑定生成器402随后可使从评估器406接收的目标时间与新生成的绑定关联。新生成的绑定及其相关的目标时间随后可被转发给绑定管理器404。在一个实施例中,新绑定生成器404与持续时间和满期时间评估器406被组合地配置成进行图2中所示和上面说明的处理。
在一些实施例中,绑定管理器404可被配置成当事件处理系统收到事件时,进行管理绑定的处理。例如,在一个实施例中,绑定管理器404可被配置成进行图3中所示和上面说明的处理。当检测到非事件时,绑定管理器404可利用输出模块410的服务,报告所述非事件。
图4中描述的模块可利用各种数据结构408,使事件的处理和非事件的检测更容易。例如,按照本发明的实施例,新绑定生成器402和绑定管理器404可以利用各种数据结构,作为生成新的绑定和进行与绑定相关的处理(包括非事件的检测)的一部分。
以下查询(查询tkpattern_q1)表示用于检测非事件的另一个CQL查询。
利用以下简单的非限制性例子,说明可变持续时间非事件模式匹配的使用和结果。假定如下规定CQL查询:
create query tkpattern_q1 as select T.c2,T.p1,T.p2 from tkpattern_SMATCH_RECOGNIZE(
PARTITION BY c2
MEASURES A.c1 as p1,B.c1 as p2,A.c2 as c2
INCLUDE TIMER EVENTS
PATTERN(A B*)DURATION c1+4 DEFINE B as B.c1!=A.c1)as T
在这个例子中,DURATION被指定为“c1+4”,其中“c1”是输入事件流的属性。根据输入事件的属性c2的值,划分输入流。待匹配的模式是(AB*),基于每个分区,进行模式匹配。只要分区中的两个连续事件不具有属性c1的相同值,该模式就被匹配。
下面所示的表A表示事件流,和通过按照本发明的实施例,利用可变持续时间进行非事件模式匹配获得的输出。该例子不是限制性的。
表A
可如下解释表A中所示的输出:
(1)事件(1,10,ORCL)标记与“ORCL”的c2值对应的分区中的候选模式匹配的启动(即,生成新的绑定),因为它匹配A。此时,评估持续时间表达式c1+4,持续时间被计算为14秒(启动模式匹配候选者的事件的c1的值)+4=10+4=14)。该新生成的活性绑定的满期时间被计算为15秒标记(启动该活性绑定的事件的时间戳+持续时间表达式评估=1+14=15)。从而如果始于事件(1,10,ORCL)的绑定继续生长,那么它将在其目标时间15秒标记被输出。从表A中的事件流中可以看出,“ORCL”分区中的后续事件继续匹配B(即,B.c1!=A.c1),从而模式匹配AB*生长,直到达到目标时间(15秒标记)为止。当收到具有时间戳16的事件(16,13,ORCL)时,确定(经图3中的304)输入事件的时间大于与“ORCL”分区中的绑定相关的15秒的目标时间。随后检查绑定是否处于终态,并确定绑定确实处于终态(即,AB*模式已被匹配)。从而报告非事件的检测。按照查询指定的输出(Timestamp,T.c2,T.p1,T.p2),输出为(15,ORCL,10,15)。
(2)事件(1,10,GOOG)标记与“GOOG”的c2值对应的分区中的候选模式匹配的启动(即,生成新的绑定),因为它匹配A。此时,评估持续时间表达式c1+4,持续时间被计算为14秒(启动模式匹配候选者的事件的c1的值)+4=10+4=14)。该新生成的活性绑定的满期时间被计算为15秒标记(启动该活性绑定的事件的时间戳+持续时间表达式评估=1+14=15)。从而如果始于事件(1,10,GOOG)的绑定继续生长,那么它将在其目标时间15秒标记被输出。从表A中的事件流中可以看出,“GOOG”分区中的后续事件继续匹配B(即,B.c1!=A.c1),从而模式匹配AB*生长,直到达到目标时间(15秒标记)为止。当收到具有时间戳16的事件(16,13,ORCL)时,确定(经图3中的304)输入事件的时间大于与“GOOG”分区中的绑定相关的15秒的目标时间。随后检查绑定是否处于终态,并确定绑定确实处于终态(即,AB*模式已被匹配)。从而报告非事件的检测。按照查询指定的输出(Timestamp,T.c2,T.p1,T.p2),输出为(15,GOOG,10,100)。
(3)事件(1,4,MSFT)标记与“MSFT”的c2值对应的分区中的候选模式匹配的启动(即,生成新的绑定),因为它匹配A。此时,评估持续时间表达式c1+4,持续时间被计算为8秒(启动模式匹配候选者的事件的c1的值)+4=4+4=8)。该新生成的活性绑定的满期时间被计算为9秒标记(启动该活性绑定的事件的时间戳+持续时间表达式评估=1+8=9)。从而如果始于事件(1,4,MSFT)的绑定继续生长,那么它将在其目标时间9秒标记被输出。从表A中的事件流中可以看出,“MSFT”分区中的后续事件继续匹配B(即,B.c1!=A.c1),从而模式匹配AB*生长,直到达到目标时间(9秒标记)为止。当收到具有时间戳9的事件(9,88,ORCL)时,确定(经图3中的304)输入事件的时间等于与“MSFT”分区中的绑定相关的9秒的目标时间。随后检查绑定是否处于终态,并确定绑定确实处于终态(即,AB*模式已被匹配)。从而报告非事件的检测。按照查询指定的输出(Timestamp,T.c2,T.p1,T.p2),输出为(9,MSFT,4,2)。
在一个实施例中,用于模式语句(MATCH_RECOGNIZE)结构的DDL不需要变化。在解析器层面,DURATION子语句现在可映射到下述任意之一:
duration_clause
:RW_DURATION time_spec
|RW_DURATION RW_MULTIPLES RW_OF time_spec
|RW_DURATION non_const_arith_expr
|RW_DURATION non_const_arith_expr time_unit
其中规则中的最后两个产物对应于可变持续时间支持。在一个实施例中,默认时间单位为秒。
可按照各种方式,报告非事件模式匹配处理的结果。在一些实施例中,可以进行特殊的处理,以确保不会无序地输出匹配输出。例如,以下两种情形是其中可变持续时间非事件检测可导致无序报告匹配输出的例子:
1.无分区,ALL MATCHES
2.分区,SKIP PAST LAST ROW
对于以上情形,分别进行与输出相关的处理,以确保按次序输出结果。一些事件处理应用可使用按次序匹配,而其它事件处理应用可不使用按次序匹配。显然,下面说明的按次序相关处理并非如在权利要求书中记载的本发明的实施例所必需或必不可少的。
(1)无分区,ALL MATCHES
如上所述,当在查询中指定了ALL MATCHES语句时,报告所有匹配的模式实例,包括重叠的模式,而不仅仅最长的匹配。归因于与各个绑定相关的持续时间的可变性,可能碰到图5中示意描述的情形。如图5中所示,存在已结束它们各自持续时间的两个目前活性的绑定。在图5中所示的情况下,活性绑定2(第二个活性绑定)比活性绑定1(第一个活性绑定)晚启动(即,与引起第二个活性绑定的事件相关的时间戳晚于与引起第一个活性绑定的事件相关的时间戳),不过,第二个绑定比较早启动的第一个绑定更早地结束其持续时间。这是因为对于第二个绑定确定的持续时间小于与第一个绑定相关的持续时间。只有利用可变持续时间值的实施例,才会发生这种情况。
从而,在图5中的情况下,稍晚启动的绑定比较早启动的绑定更早地结束其持续时间。在这种情况下,在一些实施例中,期望的输出按照与绑定相关的目标时间或满期时间的顺序。不过,这里的问题是如果按照正常的顺序,即,启动绑定的顺序处理绑定,那么这会导致即使第二个输出绑定具有较小的相关目标时间,第一个匹配(即,第一个活性绑定)也早于第二个匹配(即,第二个输出绑定)被输出。
在一个实施例中,为了对于ALL MATCHES情况,确保绑定的按次序输出,利用数据结构(例如,树集)来保持按目标时间的升序排序的所有活性绑定。当这样的数据结构被遍历时,具有较早或较小的目标时间的绑定(例如,图5中的第二个绑定)将在具有较晚或较大的目标时间的绑定(例如,图5中的第一个绑定)之前被处理。这允许按照目标时间的正确顺序输出绑定。
在一些实施例中,为了进行匹配的按次序报告,引入“不确定”绑定的概念。不确定绑定是不能进一步生长,从而已达到终态,并且其相关目标时间已过去的绑定。它被标记为“不确定”,以指示即使匹配已完成,该绑定是否要被输出也是不确定的。与不确定绑定相关的目标时间被称为matchedT时间(matchedT与不确定绑定相关,而目标时间用于活性绑定,不过值相同)。一旦活性绑定的目标时间已满期,该绑定达到模式的终态(即,利用PATTERN指定的正则表达式被匹配),该绑定就被移动到不确定绑定的列表。也可维持其持续时间还未满期(即,其目标时间还未过去)的所有活性绑定的列表。
在一个实施例中,可以利用以下数据结构,实现对于“无分区ALL MATCHES”情况的处理:
(1)活性绑定树集:维持每个分区的按目标时间递增顺序保存活性绑定的树集。如果没有指定“partition by”语句,那么整个输入被视为一个分区。这是一个树集(以确保递增的目标时间顺序),从而避免无序匹配问题。
(2)活性项目:活性项目参照一个活性绑定,并且该活性绑定具有到该活性项目的回溯引用。这只有当指定了partition by时才需要。
(3)ActiveItems:只有当指定了partition by时,才维持活性项目的树集。该树集按目标时间递增顺序,保持活性项目,并且与分区无关。这允许跨所有分区,快速识别当新的输入到来时,已结束其目标时间的活性绑定。
(4)commonUnsureList:当活性绑定结束其目标时间时,它被移动到该不确定绑定的列表。这些稍后被输出。
在一个实施例中,EPS进行的处理无分区,ALL MATCHES情形以确保按次序输出的处理可包含如下6个步骤(下面所示的处理并不用来限制本发明的实施例的范围):
1.接收输入的元组。
2.如果(指定了“partition by”语句),那么对于ActiveItems中的具有小于等于当前输入的时间戳的目标时间的每个活性项目(与它是否属于当前输入的分区无关),进行以下操作:
(a)从ActiveItems数据结构中,除去该活性项目,还从该分区的活性绑定树集中,除去所涉及的活性绑定。
(b)涉及的活性绑定已结束PATTERN语句匹配,也结束指定的持续时间(因为目标时间小于等于输入事件的当前时间(ts))。从而将其移动到commonUnsureList。
(c)如果分区是空的(即,没有活性绑定被留下),那么除去该分区。
3.如果(未指定partition by语句)或者(指定了partition by语句,并且当前元组不是心跳元组),那么
对于当前元组的分区中的每个活性绑定,进行以下操作:
(a)如果当前元组是心跳元组,并且活性绑定的目标时间大于心跳时间,那么转到步骤6。
(b)从树集中和从ActiveItems中除去活性绑定(如果指定了“partition by”)
(c)处理活性绑定,以了解是否能够使它进一步生长。
如上所述,如果按照PATTERN正则表达式,当前的输入元组匹配下一个允许的变量,那么可使绑定进一步生长。下一个允许的变量取决于在模式匹配中,当前的活性绑定表示的点。例如,如果PATTERN(ABC)是规范,而A和B已被匹配(即,绑定表示部分匹配AB),那么下一个允许的变量是C。从而只有当当前的输入元组匹配C的DEFINE语句条件时,才可使匹配生长。
如果可以使匹配进一步生长,那么
把新的(生长的绑定)插入数据结构(该分区的ActiveItems(如果被维持的话)和活性绑定树集)中
否则
如果不能使绑定进一步生长,那么该绑定被丢弃,好像该绑定已从数据结构中被除去一样。
4.如果当前输入不是心跳元组,那么:
(a)设法了解当前的输入元组是否匹配PATTERN中的第一个变量,即,匹配是否能够在该元组启动。
(b)如果是,那么
a.利用当前元组的属性值,评估持续时间语句表达式,并计算持续时间值。
b.把它与当前元组时间戳相加,并把结果设定为该新的活性绑定的目标时间。
c.把该绑定插入该分区的活性绑定树集中。另外构成对应的ActiveItem,并将其插入ActiveItems数据结构中(如果被维持的话)。
5.如果指定了partition by,那么如果当前分区是空的,则除去当前分区。
6.在关于收集在commonUnsureList中的完成的匹配评估MEASURE语句表达式之后,输出所述匹配。在迭代绑定期间,从commonUnsureList中除去所述绑定,从而在该步骤结束时,commonUnsureList将是空的。
(2)分区,SKIP PAST LAST ROW
当未指定ALL MATCHES语句时,模式匹配输出最长的重叠模式匹配绑定。可存在两类重叠的模式匹配:
(a)完全重叠-考虑指定模式的开始于2000秒,并且具有8000秒的目标时间的第一个绑定,和对于相同模式的开始于3000秒,并且具有8000秒的目标时间的第二个绑定。当满期时,如果两个绑定匹配指定模式(即,处于终态),那么优选并输出较长的第一个绑定,而不是第二个较短的重叠绑定。
(b)部分重叠-考虑指定模式的开始于2000秒,并且具有8000秒的目标时间的第一个绑定,和对于相同模式的开始于5000秒,并且具有9000秒的目标时间的第二个绑定。当满期时,如果两个绑定匹配指定模式(即,处于终态),那么优选并输出启动时间较早的第一个绑定,而不是第二个绑定。
归因于对于不同的绑定计算的持续时间的可变性,可能碰到图6中示意描述的情形。这里,在两个分区P1和P2中存在绑定。如图所示,在分区P1中,存在不确定绑定(B2)和活性绑定(B1)。分区1中的不确定绑定B2归因于它已在活性绑定B1之后启动,并且已在活性绑定B1之前结束其持续时间,因为与活性绑定B1相比,持续时间的值较小。该不确定绑定将不被输出,因为P1中的目前活性的绑定B1会变得不确定,从而它将表示最长匹配。
此外,如图6中所示,第二个分区P2具有在当前时刻变得不确定的绑定B3。不过,该绑定不能被输出,因为如果稍后,分区1中的活性绑定B1未结束(归因于任何原因),从而被丢弃,那么分区P1中的不确定绑定B2需要首先被输出。由于它具有比分区2中的不确定绑定B3的matchedTs小的matchedTs,因此这会导致匹配的无序报告。
在一个实施例中,对于unsureList中的每个绑定,维持unsureItem,利用这种unsureItems的树集使得能够快速获得它们之中的最小matchedTs。所述最小matchedTs随后被用于判定绑定是否应被报告。
在一个实施例中,有所变化地利用上面说明的用于处理ALL MATCHES情况的数据结构。对于不确定绑定,不维持commonUnsureList,而是改为维持分区特有的不确定绑定列表。此外,如果指定了“partition by”语句,那么维持以下另外的数据结构:
(1)维持称为“readyToOutputBindings”的优先队列,该优先队列保持按“matchedTs”的升序排序的作好输出准备的不确定绑定。
(2)维持映射到不确定绑定的unsureItem(类似于activeItem)。所有这些不确定项目(与分区无关)被保持在称为unsureItems的树集中,并且是按matchedTs排序的。这种数据结构有助于跨所有分区,在所有不确定绑定之中识别最小的“matchedTs”。
在一个实施例中,EPS进行的处理分区,SKIP PAST LAST ROWS情形,以确保按次序输出的处理如下所示(下面所示的处理并不用来限制本发明的实施例的范围):
1.接收输入的元组,并把该元组所属的分区标记为“当前分区”。如果未指定partition by,那么整个输入为1个(“当前”)分区。
2.如果输入的元组是心跳,并且指定了partition by,那么转到步骤4。
3.进行doCommonProcessing()。
4.如果指定了partition by,那么进行doNonEventProcessing()。
5.输出结束的匹配:
如果未指定partition by,那么遍历不确定绑定列表,并在评估MEASURE语句表达式之后输出。
否则
遍历readyToOutputBindings优先队列(按matchedTs排序),输出其matchedTs小于在doCommonProcessing()中的步骤5(b)计算的minTs(为避免无序匹配报告问题而需要的跨分区的所有当前不确定绑定之中的最小matchedTs)的所有那些匹配。在输出之前,评估MEASURE语句表达式。
在一些实施例中,在上面在步骤3中调用的doCommonProcesssing()函数中进行的处理可如下:
doCommonProcessing()
注意:“当前分区”可不同于最近输入的分区,如果这是经由doNonEventProcessing调用的话。
1.对于“当前分区”的所有活性绑定(按目标时间顺序保持),进行以下操作:
(a)如果(活性绑定的目标时间>当前输入时间)并且
(当前的输入元组是心跳,或者我们正在处理除最近输入的分区外的某个分区),那么转到步骤2。
这是因为如果正在处理除当前元组的分区外的分区,或者输入是心跳,那么只有已结束其目标时间的那些活性绑定是有意义的。
(b)从这些数据结构中,除去活性绑定和对应的活性项目(如果保持的话)。
(c)如果
1.还未发现不确定绑定,或者
2.发现不确定绑定,但是迄今为止,当前的活性绑定早于该不确定绑定(unsureBind)启动。
“unsureBind”包含对在某个输入可能变得不确定的可能的许多绑定之中,具有最小startIndex的不确定绑定的引用。由于在不同时间启动的具有可变持续时间的绑定可结束于相同时间(可具有相同的目标时间),这些绑定之中的最长者是所关心的(最早启动的绑定)。
那么
处理该绑定。处理意味设法了解是否像在ALL MATCHES情况下一样,能够使该绑定随着当前的输入而进一步生长。如果能够使该绑定生长,那么把新生长的活性绑定放入保持的数据结构中。如果该绑定变得不确定,那么把Boolean“foundMatch”设定为真。
否则
该绑定被丢弃。
2.如果在步骤1.(c)发现匹配,那么
(a)把“unsureBind”(最长的匹配)追加到unsureList中,还追加unsureItem,如果该数据结构被保持的话。
(b)如果近期输入的分区正被处理,并且输入不是心跳,那么必须稍后试验近期的输入是否匹配模式的开始变量。这是通过把Boolean“applyS0trans”设定为真来跟踪的。
(c)如果在步骤1.(a)已退出,那么遍历“当前分区”的剩余活性绑定,删除晚于unsureBind启动的所有那些活性绑定(因为这里不允许任何重叠匹配,晚于unsureBind启动的那些绑定应被删除)。
(d)另外删除“当前分区”的晚于“unsureBind”启动,从而小于“unsureBind”的所有不确定绑定。
3.现在留在“当前分区”中的所有活性绑定早于“unsureBind”启动。获得第一个绑定的startIndex,并将其设定为“minActiveIndex”。如果未留下任何绑定,那么把“minActiveIndex”设定为Long.MAX_VALUE。该“minActiveIndex”用于确定“unsureBind”是否可被输出。
4.如果(在步骤2.(b)中设定applyS0trans,或者
(如果当前分区是最近的输入的分区,并且当前输入不是心跳,并且如果在步骤1.(c)中,未发现匹配)),那么
设法匹配当前输入的元组和PATTERN语句中的第一个变量,以了解在该元组,匹配是否能够启动,
如果是,那么利用当前元组的属性值,评估持续时间语句表达式,并计算持续时间值。
相加持续时间值和当前元组时间戳,把结果设定为该新的活性绑定的目标时间。
把该绑定插入该分区的活性绑定树集中。另外,构成对应的ActiveItem,并将其插入ActiveItems数据结构中(如果保持的话)。
5.如果(指定了partition by),那么InitReportBindings:
该步骤用于确保我们不会跨分区报告无序的匹配。
(a)对于“当前分区”中的每个不确定绑定
如果该绑定早于在步骤(3)中计算的“minActiveIndex”启动,那么从不确定列表中除去该绑定,并将其移动到“readyToOutputBindings”队列。这意味在该分区中,不存在早于该不确定绑定启动的活性绑定,从而该绑定作好输出准备。
否则
存在早于该不确定绑定启动的,从而如果在未来结束,那么会成为最长匹配的某个活性绑定,因此该不确定绑定仍然未作好输出准备。
(b)把minTs设定成跨所有分区的所有不确定绑定之中的最小的matchedTs。从而,如果某个绑定作好输出准备,但是存在具有比该绑定的matchedTs小的matchedTs的某个不确定绑定,那么我们不能输出该绑定。这是利用“minTs”处理的,unsureItem用于快速计算minTs。
6.如果当前分区变成空的(未留下任何活性绑定),那么删除当前分区。
在一些实施例中,在上面在步骤4中调用的doNonEventProcesssing()函数中进行的处理(分区,SKIP PAST LAST ROW情况)可如下所示:
doNonEventProcessing()
对于具有小于等于当前输入时间的目标时间的所有Active Items
(实质上,已越过其目标时间,从而将变得不确定的各个分区的所有那些活性绑定),进行以下操作:
(a)把活性项目(绑定)的分区设定为“当前分区”。
(b)doCommonProcessing()。
如上所述,非事件匹配处理中的绑定的DURATION可基于启动所述绑定的事件的一个或多个属性。在一些实施例中,DURATION值所基于的属性可以是输入事件流方案本身的一部分。不过,在一些实施例中,这样的属性可以不是接收的输入流的一部分。在一个这样的实施例中,通过从初始流中获得新的流,可把用于设定持续时间值的一个或多个属性增加到事件流中,其中持续时间计算所基于的一个或多个属性是获得的事件流的方案的一部分。
图7是图解说明可按照本发明的实施例使用的系统环境700的组件的简化方框图。如图所示,系统环境700包括一个或多个客户端计算设备702、704、706、708,所述客户端计算设备被配置成操作客户端应用,比如web浏览器,专用客户端(例如,Oracle Forms)等。在各个实施例中,客户端计算设备702、704、706和708可与事件处理系统712交互作用。
客户端计算设备702、704、706、708可以是通用个人计算机(例如,包括运行各种版本的Microsoft Windows和/或Apple Macintosh操作系统的个人计算机和/或膝上型计算机),蜂窝电话机或PDA(运行诸如Microsoft Windows Mobile之类的软件,并且允许因特网、电子邮件、SMS、黑莓或其它通信协议),和/或运行任意各种可从市场获得的UNIX或类UNIX操作系统(包括(但不限于)各种GNU/Linux操作系统)的工作站计算机。另一方面,客户端计算设备702、704、706和708中以是能够通过网络(例如,下面说明的网络710)通信的任何其它电子设备,比如精简型客户端计算机、支持因特网的游戏系统、和/或个人消息接发设备。尽管例证的系统环境700被表示成具有4个客户端计算设备,不过,可以支持任意数目的客户端计算设备。其它设备,比如具有传感器的设备等可与系统712相互作用。
网络710可便利客户端702、704、706和708与事件处理系统712之间的通信和数据交换。网络710可以是本领域的技术人员熟悉的能够利用各种可从市场获得的协议任意之一,包括(但不限于)TCP/IP、SNA、IPX、AppleTalk等,支持数据通信的任意类型的网络。仅仅作为例子,网络710可以是局域网(LAN),比如以太网,令牌环网等;广域网;虚拟网,包括(但不限于)虚拟专用网(VPN);因特网;内联网;外联网;公共交换电话网(PSTN);红外网络;无线网络(例如,按照IEEE 802.1X族协议任意之一,本领域中已知的蓝牙协议,和/或任何其它无线协议工作的网络);和/或这些和/或其它网络的任意组合。
事件处理系统712可包含一个或多个计算机和/或服务器,它们可以是通用计算机,专用服务器计算机(例如包括PC服务器,UNIX服务器,中型服务器,大型计算机,机架安装服务器等),服务器群,服务器集群,或者任何其它适当的排列和/或组合。在各个实施例中,系统712可适合于运行在前述公开中说明的一个或多个服务或应用软件。
系统712可运行包括上述那些操作系统任意之一的操作系统,以及任何可从市场获得的服务器操作系统。系统712还可运行各种另外的服务器应用和/或中间层应用任意之一,包括HTTP服务器程序、FTP服务器程序、CGI服务器程序、Java服务器程序、数据库服务器程序等。例证的数据库服务器程序包括(但不限于)可在市场上从Oracle、Microsoft、Sybase、IBM等获得的那些数据库服务程序。
系统环境700还可包括一个或多个数据库714和716。数据库714和716可存在于各个位置。例如,数据库714和716中的一个或多个可存在于在系统712本地(和/或存在于系统712中)的存储介质上。另一方面,数据库714和716可以远离系统712,经基于网络的连接或专用连接,与系统712通信。在一组实施例中,数据库714和716可存在于本领域的技术人员熟悉的存储区域网(SAN)中。类似地,可酌情在系统712本地和/或远程保存实现被认为是系统712所有的功能的任何必需文件。在一组实施例中,数据库714和716可包括适合于响应SQL格式化命令,保存、更新和检索数据的关系数据库,比如Oracle11g。
图8是按照本发明的一些实施例,可使用的计算机系统800的简化方框图。例如,系统800可用于实现图1中描述的事件处理系统100。计算机系统800包括可通过总线824电连接的各个组件。所述组件可包括一个或多个处理单元802,输入子系统804,输出子系统806,存储设备808,连接到计算机可读存储介质810的计算机可读存储介质读取器812,通信子系统814,处理加速子系统816,和工作存储器818。
总线子系统824提供允许计算机系统800的各个组件和子系统如预期那样相互通信的机构。尽管总线子系统824被示意表示成单一总线,不过,总线子系统的备选实施例可以利用多条总线。
输入子系统804可包括一个或多个输入设备,比如鼠标、键盘、指示设备,触控板等。通常,输入子系统804可包括用于把信息输入计算机系统800的任何设备或机构。
输出子系统806可包括用于从计算机系统800输出信息的一个或多个输出设备。输出设备的例子包括(但不限于)显示设备、打印机、投影设备等。通常,输出子系统806可包括用于从计算机系统800输出信息的任何设备或机构。
处理单元802可包括一个或多个处理器,处理器的一个或多个内核,它们的组合,等等。在一些实施例中,处理单元802可包括通用主处理器,以及一个或多个专用协处理器,比如图形处理器、数字信号处理器,等等。在一些实施例中,一些或所有处理单元802可利用定制的电路,比如专用集成电路(ASIC)或现场可编程门阵列(FPGA)实现。在一些实施例中,这样的集成电路执行保存在电路本身上的指令。在其它实施例中,处理单元802可执行保存在工作存储器818中或存储设备808上的指令。在各个实施例中,处理单元802可执行各种程序或代码指令,可维持多个同时执行的程序或进程。在任何给定时间,一些或所有的待执行的程序代码可存在于系统工作存储器818、存储设备808和/或计算机可读存储介质810上。通过适当的编程,处理单元802可提供上面说明的各种功能,以便进行与事件流相关的处理。在一些实施例中,计算机系统800还可包括处理加速单元816,它可包括数字信号处理器(DSP)、专用处理器和/或类似物。
存储设备808可包括诸如磁盘驱动器、光存储设备,和可编程、可闪速更新等的固态存储设备,比如随机存取存储器(RAM)和/或只读存储器(ROM)。当由处理单元802执行时,提供上述功能的软件(程序、代码模块、指令)可被保存在存储设备808上。存储设备808也可提供用于保存按照本发明的实施例使用的数据的储存库。
计算机可读存储介质读取器812可进一步连接到计算机可读存储介质810,一起(并且可选地,与存储设备808结合)全面表示远程、本地、固定和/或可拆卸存储设备,加上用于临时和/或更永久地包含计算机可读信息的存储介质。
通信子系统814可允许与网络710,和/或上面关于系统环境700说明的任何其它计算机交换数据。通信子系统814充当从其它系统接收数据,和从计算机系统800向其它系统传送数据的接口。可利用有线或无线协议,提供通信。例如,通信子系统814可使计算机800能够经因特网,连接到客户端设备。通信子系统814可包括调制解调器,网卡(无线或有线),红外通信设备,GPS接收器等。
工作存储器子系统818可包括许多存储器,包括在程序执行期间,存储指令和数据的主随机存取存储器(RAM),和其中保存固定指令的只读存储器(ROM)。软件元件,比如操作系统820和/或其它代码822,比如应用程序(可以是客户端应用、Web浏览器、中间层应用、RDBMS等)可被保存在工作存储器818中。在例证实施例中,工作存储器818可包括用于处理事件,和使得能够实现如上所述的可变持续时间窗口处理的可执行代码和相关数据结构(比如高速缓存)。
应意识到计算机系统800的备选实施例可具有更多或更少的组件,所述更多或更少的组件具有与上面所述的众多变化。例如,也可利用定制的硬件,和/或可用硬件、软件(包括可移植软件,比如Java小程序)或者这两者,实现特定元件。此外,可采用与其它计算设备,比如网络输入/输出设备的连接。
图9是按照本发明的一些实施例,可使用的计算设备900的简化方框图。计算设备900的部件可用硬件,软件或者硬件和软件的组合实现,以实现本发明的原理。本公开的技术人员明白图9中描述的部件可被组合或分离成子部件,以实现如上所述的本发明的原理。于是,这里说明可支持在此说明的功能部件的任何可能的组合或分离或者另外的定义。
如图9中所示,计算设备900包含第一确定单元901、第二确定单元902、第一计算单元903和第二计算单元904。可选地,计算设备900还可包含第一评估单元905、第二评估单元906、输出单元907、第一关联单元908和第二关联单元909。
在实施例中,第一确定单元901可被配置成确定计算设备经由事件流接收的第一事件导致对于模式,启动第一模式匹配候选者。第一计算单元903可被配置成对于第一模式匹配候选者,计算第一持续时间。第二确定单元902可被配置成确定经由事件流接收的第二事件导致对于模式,启动第二模式匹配候选者。第二计算单元904可被配置成对于第二模式匹配候选者,计算第二持续时间。第二持续时间不同于第一持续时间。
在实施例中,第一确定单元901可被配置成确定第一事件的属性的第一值。第一计算单元903可被配置成利用第一值计算第一持续时间。第二确定单元902可被配置成确定第二事件的属性的第二值。第二值不同于第一值。第二计算单元904可被配置成利用第二值计算第二持续时间。
在实施例中,第一确定单元901可被配置成确定第一事件的属性的第一值。第一评估单元905可被配置成利用第一值评估表达式,以计算第一持续时间。第二确定单元902可被配置成确定第二事件的属性的第二值。第二值不同于第一值。第二评估单元906可被配置成利用第二值评估表达式,以计算第二持续时间。
在实施例中,第一确定单元901可被配置成在第一事件的第一持续时间过去之后,判定第一模式匹配候选者是否匹配模式。当判定第一模式匹配候选者匹配模式时,输出单元907可被配置成输出表示与第一模式匹配候选者对应的非事件发生的信息。
在实施例中,第一确定单元901可被配置成根据与第一事件相关的第一时间,和第一持续时间,对于第一模式匹配候选者确定第一满期时间。第一关联单元908可被配置成使第一满期时间与第一模式匹配候选者关联。第二确定单元902可被配置成根据与第一事件相关的第二时间,和第二持续时间,对于第二模式匹配候选者确定第二满期时间。第二关联单元909可被配置成使第二满期时间与第二模式匹配候选者关联。
在实施例中,第一确定单元901可被配置成通过相加第一持续时间和与第一事件相关的第一时间,确定第一满期时间。第二确定单元902可被配置成通过相加第二持续时间和与第二事件相关的第二时间,确定第二满期时间。
在实施例中,第一确定单元901可被配置成在与第一模式匹配候选者相关的第一满期时间之际或之后,判定第一模式匹配候选者是否匹配模式。当判定第一模式匹配候选者匹配模式时,输出单元907被配置成输出表示与第一模式匹配候选者对应的非事件发生的信息。
尽管说明了本发明的具体实施例,不过众多的修改、变更、备选结构和等同物也包含在本发明的范围内。本发明的实施例并不局限于在某些特定的数据处理环境内的操作,相反,可自由地在多个数据处理环境内工作。另外,尽管利用特定的一系列事务和步骤,说明了本发明的实施例,不过对本领域的技术人员来说,本发明的范围显然并不限于说明的一系列事务和步骤。
此外,尽管利用硬件和软件的特定组合,说明了本发明的实施例,不过应认识到硬件和软件的其它结合也在本发明的范围内。本发明的实施例可以只用硬件实现,或者只用软件实现,或者利用硬件和软件的组合来实现。在任何组合中,可在相同的处理器或者不同的处理器上实现这里说明的各个处理。从而,在组件或模块被描述成被配置成进行某些操作的情况下,例如可通过设计电子电路进行所述操作,通过对可编程电子电路(比如微处理器)编程以进行所述操作,或者它们的任何组合,来实现这样的结构。处理可利用各种技术进行通信,所述各种技术包括(但不限于)用于处理间通信的常规技术,不同的各对处理可利用不同的技术,或者相同的一对处理可在不同的时间利用不同的技术。
从而,说明书和附图应被视为对本发明的举例说明,而不是对本发明的限制。不过,显然可对其作出增减、删除和其它修改及变化,而不脱离记载在权利要求书中的更宽的精神和范围。从而,尽管说明了具体的发明实施例,不过,这些实施例并不是限制性的。各种修改和等同物在以下权利要求的范围之内。
Claims (24)
1.一种方法,包括:
通过计算设备,确定计算设备经由事件流接收的第一事件导致对于模式启动第一模式匹配候选者;
通过计算设备,计算第一模式匹配候选者的第一持续时间;
通过计算设备,根据与第一事件相关的第一时间和第一持续时间,确定第一模式匹配候选者的第一满期时间;
通过计算设备,使第一满期时间与第一模式匹配候选者关联;
通过计算设备,确定经由事件流接收的第二事件导致对于所述模式启动第二模式匹配候选者;
通过计算设备,计算第二模式匹配候选者的第二持续时间,第二持续时间不同于第一持续时间;
通过计算设备,根据与第二事件相关的第二时间和第二持续时间,确定第二模式匹配候选者的第二满期时间;和
通过计算设备,使第二满期时间与第二模式匹配候选者关联。
2.按照权利要求1所述的方法,其中:
第一事件和第二事件包含属性;
计算第一持续时间包含:
确定第一事件的属性的第一值;和
利用第一值计算第一持续时间;和
计算第二持续时间包含:
确定第二事件的属性的第二值,第二值不同于第一值;和
利用第二值计算第二持续时间。
3.按照权利要求1所述的方法,其中:
第一事件和第二事件包含属性;
计算第一持续时间包含:
确定第一事件的属性的第一值;和
利用第一值评估表达式,以计算第一持续时间;和
计算第二持续时间包含:
确定第二事件的属性的第二值,第二值不同于第一值;和
利用第二值评估表达式,以计算第二持续时间。
4.按照权利要求1-3任意之一所述的方法,还包括:
在第一事件的第一持续时间过去之后,判定第一模式匹配候选者是否匹配模式;和
当判定第一模式匹配候选者匹配模式时,输出表示与第一模式匹配候选者对应的非事件发生的信息。
5.按照权利要求1所述的方法,还包括:
通过相加第一持续时间和与第一事件相关的第一时间,确定第一满期时间;和
通过相加第二持续时间和与第二事件相关的第二时间,确定第二满期时间。
6.按照权利要求1所述的方法,还包括:
在与第一模式匹配候选者相关的第一满期时间之际或之后,判定第一模式匹配候选者是否匹配模式;和
当判定第一模式匹配候选者匹配模式时,输出表示与第一模式匹配候选者对应的非事件发生的信息。
7.一种计算设备,包括:
存储器;和
一组处理单元,其中所述一组处理单元中的一个或多个处理单元适合于:
确定计算设备经由事件流接收的第一事件导致对于模式启动第一模式匹配候选者;
计算第一模式匹配候选者的第一持续时间;
根据与第一事件相关的第一时间和第一持续时间,确定第一模式匹配候选者的第一满期时间;
使第一满期时间与第一模式匹配候选者关联;
确定经由事件流接收的第二事件导致对于所述模式启动第二模式匹配候选者;
计算第二模式匹配候选者的第二持续时间,第二持续时间不同于第一持续时间;
根据与第二事件相关的第二时间和第二持续时间,确定第二模式匹配候选者的第二满期时间;和
使第二满期时间与第二模式匹配候选者关联。
8.按照权利要求7所述的计算设备,其中所述一组处理单元中的所述一个或多个处理单元适合于:
确定第一事件的属性的第一值;和
利用第一值计算第一持续时间;
确定第二事件的属性的第二值,第二值不同于第一值;和
利用第二值计算第二持续时间。
9.按照权利要求7所述的计算设备,其中所述一组处理单元中的所述一个或多个处理单元适合于:
确定第一事件的属性的第一值;和
利用第一值评估表达式,以计算第一持续时间;
确定第二事件的属性的第二值,第二值不同于第一值;和
利用第二值评估表达式,以计算第二持续时间。
10.按照权利要求7-9任意之一所述的计算设备,其中所述一组处理单元中的所述一个或多个处理单元还适合于:
在第一事件的第一持续时间过去之后,判定第一模式匹配候选者是否匹配模式;和
当判定第一模式匹配候选者匹配模式时,输出表示与第一模式匹配候选者对应的非事件发生的信息。
11.按照权利要求7所述的计算设备,其中所述一组处理单元中的所述一个或多个处理单元适合于:
通过相加第一持续时间和与第一事件相关的第一时间,确定第一满期时间;和
通过相加第二持续时间和与第二事件相关的第二时间,确定第二满期时间。
12.按照权利要求7所述的计算设备,其中所述一组处理单元中的所述一个或多个处理单元还适合于:
在与第一模式匹配候选者相关的第一满期时间之际或之后,判定第一模式匹配候选者是否匹配模式;和
当判定第一模式匹配候选者匹配模式时,输出表示与第一模式匹配候选者对应的非事件发生的信息。
13.一种保存可由一个或多个处理单元执行的多个指令的计算机可读存储器,所述多个指令包含:
使所述一个或多个处理单元中的至少一个处理单元确定经由事件流接收的第一事件导致对于模式启动第一模式匹配候选者的指令;
使所述一个或多个处理单元中的至少一个处理单元计算第一模式匹配候选者的第一持续时间的指令;
使所述一个或多个处理单元中的至少一个处理单元根据与第一事件相关的第一时间和第一持续时间,确定第一模式匹配候选者的第一满期时间的指令;
使所述一个或多个处理单元中的至少一个处理单元使第一满期时间与第一模式匹配候选者关联的指令;
使所述一个或多个处理单元中的至少一个处理单元确定经由事件流接收的第二事件导致对于所述模式启动第二模式匹配候选者的指令;
使所述一个或多个处理单元中的至少一个处理单元计算第二模式匹配候选者的第二持续时间的指令,第二持续时间不同于第一持续时间;
使所述一个或多个处理单元中的至少一个处理单元根据与第二事件相关的第二时间和第二持续时间,确定第二模式匹配候选者的第二满期时间的指令;和
使所述一个或多个处理单元中的至少一个处理单元使第二满期时间与第二模式匹配候选者关联的指令。
14.按照权利要求13所述的计算机可读存储器,其中:
使所述一个或多个处理单元中的至少一个处理单元计算第一持续时间的指令包含:
使所述一个或多个处理单元中的至少一个处理单元确定第一事件的属性的第一值的指令;和
使所述一个或多个处理单元中的至少一个处理单元利用第一值计算第一持续时间的指令;和
使所述一个或多个处理单元中的至少一个处理单元计算第二持续时间的指令包含:
使所述一个或多个处理单元中的至少一个处理单元确定第二事件的属性的第二值的指令,第二值不同于第一值;和
使所述一个或多个处理单元中的至少一个处理单元利用第二值计算第二持续时间的指令。
15.按照权利要求13所述的计算机可读存储器,其中:
使所述一个或多个处理单元中的至少一个处理单元计算第一持续时间的指令包含:
使所述一个或多个处理单元中的至少一个处理单元确定第一事件的属性的第一值的指令;和
使所述一个或多个处理单元中的至少一个处理单元利用第一值评估表达式,以计算第一持续时间的指令;和
使所述一个或多个处理单元中的至少一个处理单元计算第二持续时间的指令包含:
使所述一个或多个处理单元中的至少一个处理单元确定第二事件的属性的第二值的指令,第二值不同于第一值;和
使所述一个或多个处理单元中的至少一个处理单元利用第二值评估表达式,以计算第二持续时间的指令。
16.按照权利要求13-15任意之一所述的计算机可读存储器,其中所述多个指令还包含:
使所述一个或多个处理单元中的至少一个处理单元在第一事件的第一持续时间过去之后,判定第一模式匹配候选者是否匹配模式的指令;和
使所述一个或多个处理单元中的至少一个处理单元在判定第一模式匹配候选者匹配模式时,输出表示与第一模式匹配候选者对应的非事件发生的信息的指令。
17.按照权利要求13所述的计算机可读存储器,其中:
使所述一个或多个处理单元中的至少一个处理单元确定第一满期时间的指令包含使所述一个或多个处理单元中的至少一个处理单元通过相加第一持续时间和与第一事件相关的第一时间,确定第一满期时间的指令;和
使所述一个或多个处理单元中的至少一个处理单元确定第二满期时间的指令包含使所述一个或多个处理单元中的至少一个处理单元通过相加第二持续时间和与第二事件相关的第二时间,确定第二满期时间的指令。
18.按照权利要求13所述的计算机可读存储器,其中所述多个指令还包含:
使所述一个或多个处理单元中的至少一个处理单元在与第一模式匹配候选者相关的第一满期时间之际或之后,判定第一模式匹配候选者是否匹配模式的指令;和
使所述一个或多个处理单元中的至少一个处理单元在判定第一模式匹配候选者匹配模式时,输出表示与第一模式匹配候选者对应的非事件发生的信息的指令。
19.一种设备,包括:
确定计算设备经由事件流接收的第一事件导致对于模式启动第一模式匹配候选者的装置;
计算第一模式匹配候选者的第一持续时间的装置;
根据与第一事件相关的第一时间和第一持续时间,确定第一模式匹配候选者的第一满期时间的装置;
使第一满期时间与第一模式匹配候选者关联的装置;
确定经由事件流接收的第二事件导致对于所述模式启动第二模式匹配候选者的装置;
计算第二模式匹配候选者的第二持续时间的装置,第二持续时间不同于第一持续时间;
根据与第二事件相关的第二时间和第二持续时间,确定第二模式匹配候选者的第二满期时间的装置;和
使第二满期时间与第二模式匹配候选者关联的装置。
20.按照权利要求19所述的设备,其中:
第一事件和第二事件包含属性;
计算第一持续时间的装置包含:
确定第一事件的属性的第一值的装置;和
利用第一值计算第一持续时间的装置;和
计算第二持续时间的装置包含:
确定第二事件的属性的第二值的装置,第二值不同于第一值;和
利用第二值计算第二持续时间的装置。
21.按照权利要求19所述的设备,其中:
第一事件和第二事件包含属性;
计算第一持续时间的装置包含:
确定第一事件的属性的第一值的装置;和
利用第一值评估表达式,以计算第一持续时间的装置;和
计算第二持续时间的装置包含:
确定第二事件的属性的第二值的装置,第二值不同于第一值;和
利用第二值评估表达式,以计算第二持续时间的装置。
22.按照权利要求19-21任意之一所述的设备,还包括:
在第一事件的第一持续时间过去之后,判定第一模式匹配候选者是否匹配模式的装置;和
当判定第一模式匹配候选者匹配模式时,输出表示与第一模式匹配候选者对应的非事件发生的信息的装置。
23.按照权利要求19所述的设备,还包括:
通过相加第一持续时间和与第一事件相关的第一时间,确定第一满期时间的装置;和
通过相加第二持续时间和与第二事件相关的第二时间,确定第二满期时间的装置。
24.按照权利要求19所述的设备,还包括:
在与第一模式匹配候选者相关的第一满期时间之际或之后,判定第一模式匹配候选者是否匹配模式的装置;和
当判定第一模式匹配候选者匹配模式时,输出表示与第一模式匹配候选者对应的非事件发生的信息的装置。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361752855P | 2013-01-15 | 2013-01-15 | |
US61/752,855 | 2013-01-15 | ||
US13/839,288 | 2013-03-15 | ||
US13/839,288 US9098587B2 (en) | 2013-01-15 | 2013-03-15 | Variable duration non-event pattern matching |
PCT/US2014/010832 WO2014113263A1 (en) | 2013-01-15 | 2014-01-09 | Variable duration non-event pattern matching |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104937591A CN104937591A (zh) | 2015-09-23 |
CN104937591B true CN104937591B (zh) | 2018-10-16 |
Family
ID=51166046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480004736.4A Active CN104937591B (zh) | 2013-01-15 | 2014-01-09 | 可变持续时间非事件模式匹配 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9098587B2 (zh) |
EP (1) | EP2946314A1 (zh) |
JP (2) | JP6826812B2 (zh) |
CN (1) | CN104937591B (zh) |
WO (1) | WO2014113263A1 (zh) |
Families Citing this family (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10102091B2 (en) | 2008-06-04 | 2018-10-16 | Oracle International Corporation | System and method for supporting a testing framework for an event processing system using multiple input event streams |
US10140196B2 (en) * | 2008-06-04 | 2018-11-27 | Oracle International Corporation | System and method for configuring a sliding window for testing an event processing system based on a system time |
US9430494B2 (en) | 2009-12-28 | 2016-08-30 | Oracle International Corporation | Spatial data cartridge for event processing systems |
US9305057B2 (en) | 2009-12-28 | 2016-04-05 | Oracle International Corporation | Extensible indexing framework using data cartridges |
US8713049B2 (en) | 2010-09-17 | 2014-04-29 | Oracle International Corporation | Support for a parameterized query/view in complex event processing |
US9189280B2 (en) | 2010-11-18 | 2015-11-17 | Oracle International Corporation | Tracking large numbers of moving objects in an event processing system |
US8990416B2 (en) | 2011-05-06 | 2015-03-24 | Oracle International Corporation | Support for a new insert stream (ISTREAM) operation in complex event processing (CEP) |
US9329975B2 (en) | 2011-07-07 | 2016-05-03 | Oracle International Corporation | Continuous query language (CQL) debugger in complex event processing (CEP) |
US9361308B2 (en) | 2012-09-28 | 2016-06-07 | Oracle International Corporation | State initialization algorithm for continuous queries over archived relations |
US9563663B2 (en) | 2012-09-28 | 2017-02-07 | Oracle International Corporation | Fast path evaluation of Boolean predicates |
US10956422B2 (en) | 2012-12-05 | 2021-03-23 | Oracle International Corporation | Integrating event processing with map-reduce |
US10298444B2 (en) * | 2013-01-15 | 2019-05-21 | Oracle International Corporation | Variable duration windows on continuous data streams |
US9047249B2 (en) | 2013-02-19 | 2015-06-02 | Oracle International Corporation | Handling faults in a continuous event processing (CEP) system |
US9390135B2 (en) | 2013-02-19 | 2016-07-12 | Oracle International Corporation | Executing continuous event processing (CEP) queries in parallel |
US9418113B2 (en) | 2013-05-30 | 2016-08-16 | Oracle International Corporation | Value based windows on relations in continuous data streams |
US9934279B2 (en) | 2013-12-05 | 2018-04-03 | Oracle International Corporation | Pattern matching across multiple input data streams |
US10489375B1 (en) * | 2013-12-18 | 2019-11-26 | Amazon Technologies, Inc. | Pattern-based detection using data injection |
US10360196B2 (en) | 2014-04-15 | 2019-07-23 | Splunk Inc. | Grouping and managing event streams generated from captured network data |
US10462004B2 (en) | 2014-04-15 | 2019-10-29 | Splunk Inc. | Visualizations of statistics associated with captured network data |
US11086897B2 (en) | 2014-04-15 | 2021-08-10 | Splunk Inc. | Linking event streams across applications of a data intake and query system |
US10523521B2 (en) | 2014-04-15 | 2019-12-31 | Splunk Inc. | Managing ephemeral event streams generated from captured network data |
US10366101B2 (en) | 2014-04-15 | 2019-07-30 | Splunk Inc. | Bidirectional linking of ephemeral event streams to creators of the ephemeral event streams |
US10127273B2 (en) | 2014-04-15 | 2018-11-13 | Splunk Inc. | Distributed processing of network data using remote capture agents |
US9838512B2 (en) | 2014-10-30 | 2017-12-05 | Splunk Inc. | Protocol-based capture of network data using remote capture agents |
US9762443B2 (en) | 2014-04-15 | 2017-09-12 | Splunk Inc. | Transformation of network data at remote capture agents |
US10693742B2 (en) | 2014-04-15 | 2020-06-23 | Splunk Inc. | Inline visualizations of metrics related to captured network data |
US9923767B2 (en) * | 2014-04-15 | 2018-03-20 | Splunk Inc. | Dynamic configuration of remote capture agents for network data capture |
US10700950B2 (en) | 2014-04-15 | 2020-06-30 | Splunk Inc. | Adjusting network data storage based on event stream statistics |
US11281643B2 (en) | 2014-04-15 | 2022-03-22 | Splunk Inc. | Generating event streams including aggregated values from monitored network data |
US10061808B2 (en) * | 2014-06-03 | 2018-08-28 | Sap Se | Cached views |
US9244978B2 (en) | 2014-06-11 | 2016-01-26 | Oracle International Corporation | Custom partitioning of a data stream |
US9712645B2 (en) | 2014-06-26 | 2017-07-18 | Oracle International Corporation | Embedded event processing |
US20150378795A1 (en) | 2014-06-27 | 2015-12-31 | Pivotal Software, Inc. | Stream computing event models |
US9380068B2 (en) | 2014-08-18 | 2016-06-28 | Bank Of America Corporation | Modification of computing resource behavior based on aggregated monitoring information |
US10965573B1 (en) | 2014-09-09 | 2021-03-30 | Wells Fargo Bank, N.A. | Systems and methods for online user path analysis |
US9886486B2 (en) | 2014-09-24 | 2018-02-06 | Oracle International Corporation | Enriching events with dynamically typed big data for event processing |
US10120907B2 (en) | 2014-09-24 | 2018-11-06 | Oracle International Corporation | Scaling event processing using distributed flows and map-reduce operations |
US9596253B2 (en) | 2014-10-30 | 2017-03-14 | Splunk Inc. | Capture triggers for capturing network data |
US10334085B2 (en) | 2015-01-29 | 2019-06-25 | Splunk Inc. | Facilitating custom content extraction from network packets |
US10152480B2 (en) * | 2015-01-31 | 2018-12-11 | Splunk Inc. | Archiving indexed data |
US10148719B2 (en) | 2015-06-05 | 2018-12-04 | Microsoft Technology Licensing, Llc. | Using anchors for reliable stream processing |
US9942272B2 (en) | 2015-06-05 | 2018-04-10 | Microsoft Technology Licensing, Llc. | Handling out of order events |
US10868741B2 (en) | 2015-06-05 | 2020-12-15 | Microsoft Technology Licensing, Llc | Anchor shortening across streaming nodes |
US9880769B2 (en) | 2015-06-05 | 2018-01-30 | Microsoft Technology Licensing, Llc. | Streaming joins in constrained memory environments |
WO2017018901A1 (en) | 2015-07-24 | 2017-02-02 | Oracle International Corporation | Visually exploring and analyzing event streams |
WO2017135837A1 (en) * | 2016-02-01 | 2017-08-10 | Oracle International Corporation | Pattern based automated test data generation |
WO2017135838A1 (en) | 2016-02-01 | 2017-08-10 | Oracle International Corporation | Level of detail control for geostreaming |
US10824951B2 (en) * | 2016-03-14 | 2020-11-03 | Huawei Technologies Co., Ltd. | System and method for rule generation using data processed by a binary classifier |
US10789250B2 (en) | 2016-09-15 | 2020-09-29 | Oracle International Corporation | Non-intrusive monitoring output of stages in micro-batch streaming |
US11977549B2 (en) | 2016-09-15 | 2024-05-07 | Oracle International Corporation | Clustering event processing engines |
WO2018059298A1 (zh) * | 2016-09-27 | 2018-04-05 | 腾讯科技(深圳)有限公司 | 模式挖掘方法、高效用项集挖掘方法及相关设备 |
CN108269049B (zh) * | 2016-12-30 | 2021-01-12 | 广东精点数据科技股份有限公司 | 一种状态转移对象的数据检测方法及装置 |
US10282436B2 (en) | 2017-01-04 | 2019-05-07 | Samsung Electronics Co., Ltd. | Memory apparatus for in-place regular expression search |
US10606502B2 (en) * | 2017-07-05 | 2020-03-31 | Sap Se | Data aging infrastructure for automatically determining aging temperature |
US11399096B2 (en) * | 2017-11-29 | 2022-07-26 | Afiniti, Ltd. | Techniques for data matching in a contact center system |
US11551113B2 (en) | 2018-11-30 | 2023-01-10 | JetClosing Inc. | Intelligent machine processing of queries for cloud-based network file store |
CN110083626B (zh) * | 2019-03-29 | 2021-08-31 | 奇安信科技集团股份有限公司 | 流式事件序列匹配方法及装置 |
CN110096504B (zh) * | 2019-03-29 | 2021-08-20 | 奇安信科技集团股份有限公司 | 流式事件特征匹配方法及装置 |
US11237847B1 (en) | 2019-12-19 | 2022-02-01 | Wells Fargo Bank, N.A. | Automated standards-based computing system reconfiguration |
US11502905B1 (en) | 2019-12-19 | 2022-11-15 | Wells Fargo Bank, N.A. | Computing infrastructure standards assay |
CN112860762B (zh) * | 2021-02-05 | 2023-07-28 | 北京百度网讯科技有限公司 | 用于检测时间段重叠的方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101059688A (zh) * | 2006-04-20 | 2007-10-24 | 重庆杰信模具有限公司 | 基于kbe及web技术的锻模设计与制造系统 |
Family Cites Families (344)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5051947A (en) | 1985-12-10 | 1991-09-24 | Trw Inc. | High-speed single-pass textual search processor for locating exact and inexact matches of a search pattern in a textual stream |
US4996687A (en) | 1988-10-11 | 1991-02-26 | Honeywell Inc. | Fault recovery mechanism, transparent to digital system function |
US5761493A (en) | 1990-04-30 | 1998-06-02 | Texas Instruments Incorporated | Apparatus and method for adding an associative query capability to a programming language |
US5495600A (en) | 1992-06-03 | 1996-02-27 | Xerox Corporation | Conversion of queries to monotonically increasing incremental form to continuously query a append only database |
US5918225A (en) | 1993-04-16 | 1999-06-29 | Sybase, Inc. | SQL-based database system with improved indexing methodology |
US5664172A (en) | 1994-07-19 | 1997-09-02 | Oracle Corporation | Range-based query optimizer |
EP0702294A3 (en) | 1994-09-13 | 1997-05-02 | Sun Microsystems Inc | Method and device for diagnosing lexical errors |
US6397262B1 (en) | 1994-10-14 | 2002-05-28 | Qnx Software Systems, Ltd. | Window kernel |
US5706494A (en) | 1995-02-10 | 1998-01-06 | International Business Machines Corporation | System and method for constraint checking bulk data in a database |
US5850544A (en) | 1995-06-06 | 1998-12-15 | International Business Machines Corporation | System and method for efficient relational query generation and tuple-to-object translation in an object-relational gateway supporting class inheritance |
US6158045A (en) | 1995-11-13 | 2000-12-05 | Object Technology Licensing Corporation | Portable debugging services utilizing a client debugger object and a server debugger object with flexible addressing support |
US5913214A (en) | 1996-05-30 | 1999-06-15 | Massachusetts Inst Technology | Data extraction from world wide web pages |
US5802523A (en) | 1996-06-21 | 1998-09-01 | Oracle Corporation | Method and apparatus for reducing the memory required to store bind variable descriptors in a database |
US5893104A (en) | 1996-07-09 | 1999-04-06 | Oracle Corporation | Method and system for processing queries in a database system using index structures that are not native to the database system |
US5920716A (en) | 1996-11-26 | 1999-07-06 | Hewlett-Packard Company | Compiling a predicated code with direct analysis of the predicated code |
US5937401A (en) | 1996-11-27 | 1999-08-10 | Sybase, Inc. | Database system with improved methods for filtering duplicates from a tuple stream |
US5937195A (en) | 1996-11-27 | 1999-08-10 | Hewlett-Packard Co | Global control flow treatment of predicated code |
US5857182A (en) | 1997-01-21 | 1999-01-05 | International Business Machines Corporation | Database management system, method and program for supporting the mutation of a composite object without read/write and write/write conflicts |
US6108666A (en) | 1997-06-12 | 2000-08-22 | International Business Machines Corporation | Method and apparatus for pattern discovery in 1-dimensional event streams |
US6041344A (en) | 1997-06-23 | 2000-03-21 | Oracle Corporation | Apparatus and method for passing statements to foreign databases by using a virtual package |
US6112198A (en) | 1997-06-30 | 2000-08-29 | International Business Machines Corporation | Optimization of data repartitioning during parallel query optimization |
US5822750A (en) | 1997-06-30 | 1998-10-13 | International Business Machines Corporation | Optimization of correlated SQL queries in a relational database management system |
US6081801A (en) | 1997-06-30 | 2000-06-27 | International Business Machines Corporation | Shared nothing parallel execution of procedural constructs in SQL |
US6278994B1 (en) | 1997-07-10 | 2001-08-21 | International Business Machines Corporation | Fully integrated architecture for user-defined search |
US6006220A (en) | 1997-09-30 | 1999-12-21 | International Business Machines Corporation | Determining the optimal access path for a query at execution time using an actual value for each variable in a query for estimating a filter factor |
US6006235A (en) | 1997-11-26 | 1999-12-21 | International Business Machines Corporation | Method and apparatus for invoking a stored procedure or a user defined interpreted language function in a database management system |
US6389436B1 (en) | 1997-12-15 | 2002-05-14 | International Business Machines Corporation | Enhanced hypertext categorization using hyperlinks |
US6092065A (en) | 1998-02-13 | 2000-07-18 | International Business Machines Corporation | Method and apparatus for discovery, clustering and classification of patterns in 1-dimensional event streams |
US6341281B1 (en) | 1998-04-14 | 2002-01-22 | Sybase, Inc. | Database system with methods for optimizing performance of correlated subqueries by reusing invariant results of operator tree |
US6011916A (en) | 1998-05-12 | 2000-01-04 | International Business Machines Corp. | Java I/O toolkit for applications and applets |
GB9812635D0 (en) | 1998-06-11 | 1998-08-12 | Olivetti Telemedia Spa | Location system |
US6477571B1 (en) | 1998-08-11 | 2002-11-05 | Computer Associates Think, Inc. | Transaction recognition and prediction using regular expressions |
US6263332B1 (en) | 1998-08-14 | 2001-07-17 | Vignette Corporation | System and method for query processing of structured documents |
US6367034B1 (en) | 1998-09-21 | 2002-04-02 | Microsoft Corporation | Using query language for event filtering and aggregation |
US6988271B2 (en) | 1998-10-02 | 2006-01-17 | Microsoft Corporation | Heavyweight and lightweight instrumentation |
US6546381B1 (en) | 1998-11-02 | 2003-04-08 | International Business Machines Corporation | Query optimization system and method |
US6763353B2 (en) | 1998-12-07 | 2004-07-13 | Vitria Technology, Inc. | Real time business process analysis method and apparatus |
US6108659A (en) | 1998-12-22 | 2000-08-22 | Computer Associates Think, Inc. | Method and apparatus for executing stored code objects in a database |
US6370537B1 (en) | 1999-01-14 | 2002-04-09 | Altoweb, Inc. | System and method for the manipulation and display of structured data |
US6427123B1 (en) | 1999-02-18 | 2002-07-30 | Oracle Corporation | Hierarchical indexing for accessing hierarchically organized information in a relational system |
US6438559B1 (en) | 1999-04-02 | 2002-08-20 | Sybase, Inc. | System and method for improved serialization of Java objects |
US7080062B1 (en) | 1999-05-18 | 2006-07-18 | International Business Machines Corporation | Optimizing database queries using query execution plans derived from automatic summary table determining cost based queries |
US6339772B1 (en) | 1999-07-06 | 2002-01-15 | Compaq Computer Corporation | System and method for performing database operations on a continuous stream of tuples |
US6453314B1 (en) | 1999-07-30 | 2002-09-17 | International Business Machines Corporation | System and method for selective incremental deferred constraint processing after bulk loading data |
JP2001060161A (ja) | 1999-08-24 | 2001-03-06 | Nec Ic Microcomput Syst Ltd | デバッグ装置、方法及び記録媒体 |
WO2001018712A1 (en) | 1999-09-10 | 2001-03-15 | Rodgers William C | Web-based system to facilitate purchase, pick-up, and delivery of, and escrow and payment for, merchandise |
US7457279B1 (en) | 1999-09-10 | 2008-11-25 | Vertical Communications Acquisition Corp. | Method, system, and computer program product for managing routing servers and services |
US6766330B1 (en) | 1999-10-19 | 2004-07-20 | International Business Machines Corporation | Universal output constructor for XML queries universal output constructor for XML queries |
US6721727B2 (en) | 1999-12-02 | 2004-04-13 | International Business Machines Corporation | XML documents stored as column data |
US6418448B1 (en) | 1999-12-06 | 2002-07-09 | Shyam Sundar Sarkar | Method and apparatus for processing markup language specifications for data and metadata used inside multiple related internet documents to navigate, query and manipulate information from a plurality of object relational databases over the web |
US20020116371A1 (en) | 1999-12-06 | 2002-08-22 | David Dodds | System and method for the storage, indexing and retrieval of XML documents using relation databases |
JP3937380B2 (ja) | 1999-12-14 | 2007-06-27 | 富士通株式会社 | パスサーチ回路 |
US6615203B1 (en) | 1999-12-17 | 2003-09-02 | International Business Machines Corporation | Method, computer program product, and system for pushdown analysis during query plan generation |
US6594651B2 (en) | 1999-12-22 | 2003-07-15 | Ncr Corporation | Method and apparatus for parallel execution of SQL-from within user defined functions |
US6507834B1 (en) | 1999-12-22 | 2003-01-14 | Ncr Corporation | Method and apparatus for parallel execution of SQL from stored procedures |
US6353821B1 (en) | 1999-12-23 | 2002-03-05 | Bull Hn Information Systems Inc. | Method and data processing system for detecting patterns in SQL to allow optimized use of multi-column indexes |
WO2001052090A2 (en) | 2000-01-14 | 2001-07-19 | Saba Software, Inc. | Method and apparatus for a web content platform |
US20010047372A1 (en) | 2000-02-11 | 2001-11-29 | Alexander Gorelik | Nested relational data model |
US6996557B1 (en) | 2000-02-15 | 2006-02-07 | International Business Machines Corporation | Method of optimizing SQL queries where a predicate matches nullable operands |
US7072896B2 (en) | 2000-02-16 | 2006-07-04 | Verizon Laboratories Inc. | System and method for automatic loading of an XML document defined by a document-type definition into a relational database including the generation of a relational schema therefor |
AU2001239998A1 (en) | 2000-02-28 | 2001-09-12 | Fibercycle Networks, Inc. | System and method for high speed string matching |
US20020029207A1 (en) | 2000-02-28 | 2002-03-07 | Hyperroll, Inc. | Data aggregation server for managing a multi-dimensional database and database management system having data aggregation server integrated therein |
US6449620B1 (en) | 2000-03-02 | 2002-09-10 | Nimble Technology, Inc. | Method and apparatus for generating information pages using semi-structured data stored in a structured manner |
US7823066B1 (en) | 2000-03-03 | 2010-10-26 | Tibco Software Inc. | Intelligent console for content-based interactivity |
US6751619B1 (en) | 2000-03-15 | 2004-06-15 | Microsoft Corporation | Methods and apparatus for tuple management in data processing system |
US6523102B1 (en) | 2000-04-14 | 2003-02-18 | Interactive Silicon, Inc. | Parallel compression/decompression system and method for implementation of in-memory compressed cache improving storage density and access speed for industry standard memory subsystems and in-line memory modules |
US7020696B1 (en) | 2000-05-20 | 2006-03-28 | Ciena Corp. | Distributed user management information in telecommunications networks |
US7076647B2 (en) | 2000-06-09 | 2006-07-11 | Hewlett-Packard Development Company, L.P. | Dynamic kernel tunables |
US6578032B1 (en) | 2000-06-28 | 2003-06-10 | Microsoft Corporation | Method and system for performing phrase/word clustering and cluster merging |
US6708186B1 (en) | 2000-08-14 | 2004-03-16 | Oracle International Corporation | Aggregating and manipulating dictionary metadata in a database system |
US7095744B2 (en) | 2000-11-22 | 2006-08-22 | Dune Networks | Method and system for switching variable sized packets |
US20040003132A1 (en) | 2000-12-06 | 2004-01-01 | Biosentients, Inc. | Data pool architecture, system, and method for intelligent object data in heterogeneous data environments |
US7062749B2 (en) | 2000-12-15 | 2006-06-13 | Promenix, Inc. | Measuring, monitoring and tracking enterprise communications and processes |
DE60132243T2 (de) | 2000-12-15 | 2008-12-11 | British Telecommunications P.L.C. | Verfahren zum indizieren von entitäten |
US7185232B1 (en) | 2001-02-28 | 2007-02-27 | Cenzic, Inc. | Fault injection methods and apparatus |
US6542911B2 (en) | 2001-03-01 | 2003-04-01 | Sun Microsystems, Inc. | Method and apparatus for freeing memory from an extensible markup language document object model tree active in an application cache |
WO2002071260A1 (en) | 2001-03-01 | 2002-09-12 | Aalborg Universitet | Adaptable query optimization and evaluation in temporal middleware |
US6748386B1 (en) | 2001-04-24 | 2004-06-08 | Nec Corporation | System and method for automated construction of URL, cookie, and database query mapping |
US6785677B1 (en) | 2001-05-02 | 2004-08-31 | Unisys Corporation | Method for execution of query to search strings of characters that match pattern with a target string utilizing bit vector |
US6850925B2 (en) | 2001-05-15 | 2005-02-01 | Microsoft Corporation | Query optimization by sub-plan memoization |
US7757225B2 (en) | 2001-06-29 | 2010-07-13 | Microsoft Corporation | Linktime recognition of alternative implementations of programmed functionality |
WO2003023548A2 (en) | 2001-09-12 | 2003-03-20 | Raqia Networks, Inc. | High speed data stream pattern recognition |
US7203927B2 (en) | 2001-09-20 | 2007-04-10 | International Business Machines Corporation | SQL debugging using XML dataflows |
AU2002334721B2 (en) | 2001-09-28 | 2008-10-23 | Oracle International Corporation | An index structure to access hierarchical data in a relational database system |
US20030065655A1 (en) | 2001-09-28 | 2003-04-03 | International Business Machines Corporation | Method and apparatus for detecting query-driven topical events using textual phrases on foils as indication of topic |
US6915290B2 (en) | 2001-12-11 | 2005-07-05 | International Business Machines Corporation | Database query optimization apparatus and method that represents queries as graphs |
US7475058B2 (en) | 2001-12-14 | 2009-01-06 | Microsoft Corporation | Method and system for providing a distributed querying and filtering system |
US7117200B2 (en) | 2002-01-11 | 2006-10-03 | International Business Machines Corporation | Synthesizing information-bearing content from multiple channels |
US20030135304A1 (en) | 2002-01-11 | 2003-07-17 | Brian Sroub | System and method for managing transportation assets |
AU2003205166A1 (en) | 2002-01-14 | 2003-07-30 | Jerzy Lewak | Identifier vocabulary data access method and system |
US7225188B1 (en) | 2002-02-13 | 2007-05-29 | Cisco Technology, Inc. | System and method for performing regular expression matching with high parallelism |
US6985904B1 (en) | 2002-02-28 | 2006-01-10 | Oracle International Corporation | Systems and methods for sharing of execution plans for similar database statements |
US7567953B2 (en) | 2002-03-01 | 2009-07-28 | Business Objects Americas | System and method for retrieving and organizing information from disparate computer network information sources |
CA2374271A1 (en) | 2002-03-01 | 2003-09-01 | Ibm Canada Limited-Ibm Canada Limitee | Redundant join elimination and sub-query elimination using subsumption |
US7107285B2 (en) | 2002-03-16 | 2006-09-12 | Questerra Corporation | Method, system, and program for an improved enterprise spatial system |
US20080010241A1 (en) | 2002-04-02 | 2008-01-10 | Mcgoveran David O | Computer-implemented method for managing through symbolic abstraction of a membership expression multiple logical representations and storage structures |
WO2003094051A1 (en) | 2002-04-29 | 2003-11-13 | Laboratory For Computational Analytics And Semiotics, Llc | Sequence miner |
US20030236766A1 (en) | 2002-05-14 | 2003-12-25 | Zenon Fortuna | Identifying occurrences of selected events in a system |
US7093023B2 (en) | 2002-05-21 | 2006-08-15 | Washington University | Methods, systems, and devices using reprogrammable hardware for high-speed processing of streaming data to find a redefinable pattern and respond thereto |
DE10392750T5 (de) | 2002-06-05 | 2005-11-03 | Sap Aktiengesellschaft | Vorrichtung und Verfahren zum Abstimmen von variablen Hilfsinformationen auf Hauptbüroinformationen in einem Firmensystem |
AU2003263987A1 (en) | 2002-08-05 | 2004-02-23 | John Campbell | System of finite state machines |
US7451143B2 (en) | 2002-08-28 | 2008-11-11 | Cisco Technology, Inc. | Programmable rule processing apparatus for conducting high speed contextual searches and characterizations of patterns in data |
US8165993B2 (en) | 2002-09-06 | 2012-04-24 | Oracle International Corporation | Business intelligence system with interface that provides for immediate user action |
US7120645B2 (en) | 2002-09-27 | 2006-10-10 | Oracle International Corporation | Techniques for rewriting XML queries directed to relational database constructs |
US7043476B2 (en) | 2002-10-11 | 2006-05-09 | International Business Machines Corporation | Method and apparatus for data mining to discover associations and covariances associated with data |
FR2846181B1 (fr) | 2002-10-16 | 2005-09-02 | Canon Kk | Procede et dispositif de selection de donnees dans un reseau de communication |
US7653645B1 (en) | 2002-10-29 | 2010-01-26 | Novell, Inc. | Multi-epoch method for saving and exporting file system events |
US7213040B1 (en) | 2002-10-29 | 2007-05-01 | Novell, Inc. | Apparatus for policy based storage of file data and meta-data changes over time |
US20040088404A1 (en) | 2002-11-01 | 2004-05-06 | Vikas Aggarwal | Administering users in a fault and performance monitoring system using distributed data gathering and storage |
US7134143B2 (en) | 2003-02-04 | 2006-11-07 | Stellenberg Gerald S | Method and apparatus for data packet pattern matching |
GB0228447D0 (en) | 2002-12-06 | 2003-01-08 | Nicholls Charles M | System for detecting and interpreting transactions events or changes in computer systems |
US7051034B1 (en) | 2002-12-18 | 2006-05-23 | Oracle International Corporation | Dynamic optimization for processing a restartable sub-tree of a query execution plan |
US20050096124A1 (en) | 2003-01-21 | 2005-05-05 | Asip Holdings, Inc. | Parimutuel wagering system with opaque transactions |
US7954109B1 (en) | 2003-01-24 | 2011-05-31 | Jds Uniphase Corporation | Systems and methods for time based sorting and display of captured data events in a multi-protocol communications system |
US7437675B2 (en) | 2003-02-03 | 2008-10-14 | Hewlett-Packard Development Company, L.P. | System and method for monitoring event based systems |
US7634501B2 (en) | 2003-02-05 | 2009-12-15 | Next Generation Software | Method and apparatus for mediated cooperation |
US7305391B2 (en) | 2003-02-07 | 2007-12-04 | Safenet, Inc. | System and method for determining the start of a match of a regular expression |
US7062507B2 (en) | 2003-02-24 | 2006-06-13 | The Boeing Company | Indexing profile for efficient and scalable XML based publish and subscribe system |
US7185315B2 (en) | 2003-02-25 | 2007-02-27 | Sheet Dynamics, Ltd. | Graphical feedback of disparities in target designs in graphical development environment |
US7693810B2 (en) | 2003-03-04 | 2010-04-06 | Mantas, Inc. | Method and system for advanced scenario based alert generation and processing |
US7324108B2 (en) | 2003-03-12 | 2008-01-29 | International Business Machines Corporation | Monitoring events in a computer network |
US7392239B2 (en) | 2003-04-14 | 2008-06-24 | International Business Machines Corporation | System and method for querying XML streams |
CA2427209A1 (en) | 2003-04-30 | 2004-10-30 | Ibm Canada Limited - Ibm Canada Limitee | Optimization of queries on views defined by conditional expressions having mutually exclusive conditions |
US7386568B2 (en) | 2003-05-01 | 2008-06-10 | Oracle International Corporation | Techniques for partial rewrite of XPath queries in a relational database |
US7103611B2 (en) | 2003-05-01 | 2006-09-05 | Oracle International Corporation | Techniques for retaining hierarchical information in mapping between XML documents and relational data |
US6836778B2 (en) | 2003-05-01 | 2004-12-28 | Oracle International Corporation | Techniques for changing XML content in a relational database |
US7546284B1 (en) | 2003-06-11 | 2009-06-09 | Blue Titan Software, Inc. | Virtual message persistence service |
US7146352B2 (en) | 2003-06-23 | 2006-12-05 | Microsoft Corporation | Query optimizer system and method |
US7519577B2 (en) | 2003-06-23 | 2009-04-14 | Microsoft Corporation | Query intermediate language method and system |
CA2433750A1 (en) | 2003-06-27 | 2004-12-27 | Ibm Canada Limited - Ibm Canada Limitee | Automatic collection of trace detail and history data |
US20050010896A1 (en) | 2003-07-07 | 2005-01-13 | International Business Machines Corporation | Universal format transformation between relational database management systems and extensible markup language using XML relational transformation |
WO2005008529A2 (en) | 2003-07-07 | 2005-01-27 | Netezza Corporation | Optimized sql code generation |
WO2005010727A2 (en) | 2003-07-23 | 2005-02-03 | Praedea Solutions, Inc. | Extracting data from semi-structured text documents |
US7873645B2 (en) | 2003-09-05 | 2011-01-18 | Oracle International Corporation | Method and mechanism for handling arbitrarily-sized XML in SQL operator tree |
US20050097128A1 (en) | 2003-10-31 | 2005-05-05 | Ryan Joseph D. | Method for scalable, fast normalization of XML documents for insertion of data into a relational database |
US7167848B2 (en) | 2003-11-07 | 2007-01-23 | Microsoft Corporation | Generating a hierarchical plain-text execution plan from a database query |
GB0327589D0 (en) | 2003-11-27 | 2003-12-31 | Ibm | Searching in a computer network |
US9116929B2 (en) | 2003-12-08 | 2015-08-25 | Teradata Us, Inc. | Workload priority influenced data temperature |
US7508985B2 (en) | 2003-12-10 | 2009-03-24 | International Business Machines Corporation | Pattern-matching system |
US7308561B2 (en) | 2003-12-12 | 2007-12-11 | Alcatel Lucent | Fast, scalable pattern-matching engine |
US7672964B1 (en) | 2003-12-31 | 2010-03-02 | International Business Machines Corporation | Method and system for dynamically initializing a view for a streaming data base system |
US8775412B2 (en) | 2004-01-08 | 2014-07-08 | International Business Machines Corporation | Method and system for a self-healing query access plan |
US7376656B2 (en) | 2004-02-10 | 2008-05-20 | Microsoft Corporation | System and method for providing user defined aggregates in a database system |
US20050204340A1 (en) | 2004-03-10 | 2005-09-15 | Ruminer Michael D. | Attribute-based automated business rule identifier and methods of implementing same |
US7398265B2 (en) | 2004-04-09 | 2008-07-08 | Oracle International Corporation | Efficient query processing of XML data using XML index |
US20050273450A1 (en) | 2004-05-21 | 2005-12-08 | Mcmillen Robert J | Regular expression acceleration engine and processing model |
US7552365B1 (en) | 2004-05-26 | 2009-06-23 | Amazon Technologies, Inc. | Web site system with automated processes for detecting failure events and for selecting failure events for which to request user feedback |
US7516121B2 (en) | 2004-06-23 | 2009-04-07 | Oracle International Corporation | Efficient evaluation of queries using translation |
US7599924B2 (en) | 2004-06-25 | 2009-10-06 | International Business Machines Corporation | Relationship management in a data abstraction model |
US7370273B2 (en) | 2004-06-30 | 2008-05-06 | International Business Machines Corporation | System and method for creating dynamic folder hierarchies |
US20060007308A1 (en) | 2004-07-12 | 2006-01-12 | Ide Curtis E | Environmentally aware, intelligent surveillance device |
US7668806B2 (en) | 2004-08-05 | 2010-02-23 | Oracle International Corporation | Processing queries against one or more markup language sources |
US20060047696A1 (en) | 2004-08-24 | 2006-03-02 | Microsoft Corporation | Partially materialized views |
GB0420097D0 (en) | 2004-09-10 | 2004-10-13 | Cotares Ltd | Apparatus for and method of providing data to an external application |
US7668856B2 (en) | 2004-09-30 | 2010-02-23 | Alcatel-Lucent Usa Inc. | Method for distinct count estimation over joins of continuous update stream |
US7310638B1 (en) | 2004-10-06 | 2007-12-18 | Metra Tech | Method and apparatus for efficiently processing queries in a streaming transaction processing system |
US7519962B2 (en) | 2004-10-07 | 2009-04-14 | Thomson Financial Llc | Command script parsing using local and extended storage for command lookup |
US20080077570A1 (en) | 2004-10-25 | 2008-03-27 | Infovell, Inc. | Full Text Query and Search Systems and Method of Use |
WO2006047654A2 (en) | 2004-10-25 | 2006-05-04 | Yuanhua Tang | Full text query and search systems and methods of use |
US7403945B2 (en) | 2004-11-01 | 2008-07-22 | Sybase, Inc. | Distributed database system providing data and space management methodology |
US7533087B2 (en) | 2004-11-05 | 2009-05-12 | International Business Machines Corporation | Method, system, and program for executing a query having a union all operator and data modifying operations |
US20060100969A1 (en) | 2004-11-08 | 2006-05-11 | Min Wang | Learning-based method for estimating cost and statistics of complex operators in continuous queries |
US7493304B2 (en) | 2004-11-12 | 2009-02-17 | International Business Machines Corporation | Adjusting an amount of data logged for a query based on a change to an access plan |
US7526461B2 (en) | 2004-11-17 | 2009-04-28 | Gm Global Technology Operations, Inc. | System and method for temporal data mining |
JP2006155404A (ja) * | 2004-11-30 | 2006-06-15 | Toshiba Corp | 時間情報抽出装置、時間情報抽出方法、及び時間情報抽出プログラム |
US7383253B1 (en) | 2004-12-17 | 2008-06-03 | Coral 8, Inc. | Publish and subscribe capable continuous query processor for real-time data streams |
US20060155719A1 (en) | 2005-01-10 | 2006-07-13 | International Business Machines Corporation | Complex event discovery in event databases |
EP1684192A1 (en) | 2005-01-25 | 2006-07-26 | Ontoprise GmbH | Integration platform for heterogeneous information sources |
AU2006217563B2 (en) | 2005-02-22 | 2012-05-17 | Connectif Solutions Inc. | Distributed asset management system and method |
KR100690787B1 (ko) | 2005-02-25 | 2007-03-09 | 엘지전자 주식회사 | 무선통신 시스템에서 이벤트 통지방법 |
AU2006221023A1 (en) | 2005-03-03 | 2006-09-14 | Washington University | Method and apparatus for performing biosequence similarity searching |
US8463801B2 (en) | 2005-04-04 | 2013-06-11 | Oracle International Corporation | Effectively and efficiently supporting XML sequence type and XQuery sequence natively in a SQL system |
US7428555B2 (en) | 2005-04-07 | 2008-09-23 | Google Inc. | Real-time, computer-generated modifications to an online advertising program |
US7685150B2 (en) | 2005-04-19 | 2010-03-23 | Oracle International Corporation | Optimization of queries over XML views that are based on union all operators |
JP4687253B2 (ja) | 2005-06-03 | 2011-05-25 | 株式会社日立製作所 | ストリームデータ処理システムのクエリ処理方法 |
US20060294095A1 (en) | 2005-06-09 | 2006-12-28 | Mantas, Inc. | Runtime thresholds for behavior detection |
US9792351B2 (en) | 2005-06-10 | 2017-10-17 | International Business Machines Corporation | Tolerant and extensible discovery of relationships in data using structural information and data analysis |
US9747560B2 (en) | 2005-07-13 | 2017-08-29 | Sap Se | Method and system for combination of independent demand data streams |
JP4723301B2 (ja) | 2005-07-21 | 2011-07-13 | 株式会社日立製作所 | ストリームデータ処理システムおよびストリームデータ処理方法 |
US7962616B2 (en) | 2005-08-11 | 2011-06-14 | Micro Focus (Us), Inc. | Real-time activity monitoring and reporting |
US20090172014A1 (en) | 2005-08-23 | 2009-07-02 | Raymond John Huetter | Stream-Oriented Database Machine and Method |
US7990646B2 (en) * | 2005-09-30 | 2011-08-02 | Seagate Technology Llc | Data pattern detection using adaptive search windows |
US7937257B2 (en) | 2005-10-10 | 2011-05-03 | Oracle International Corporation | Estimating performance of application based on automatic resizing of shared memory for messaging |
KR100813000B1 (ko) | 2005-12-01 | 2008-03-13 | 한국전자통신연구원 | 데이터 중복 처리 방지 기능을 가지는 스트림 데이터 처리시스템 및 그 방법 |
US7702629B2 (en) | 2005-12-02 | 2010-04-20 | Exegy Incorporated | Method and device for high performance regular expression pattern matching |
US20070136254A1 (en) | 2005-12-08 | 2007-06-14 | Hyun-Hwa Choi | System and method for processing integrated queries against input data stream and data stored in database using trigger |
US7502889B2 (en) | 2005-12-30 | 2009-03-10 | Intel Corporation | Home node aware replacement policy for caches in a multiprocessor system |
US7814111B2 (en) | 2006-01-03 | 2010-10-12 | Microsoft International Holdings B.V. | Detection of patterns in data records |
US7844829B2 (en) | 2006-01-18 | 2010-11-30 | Sybase, Inc. | Secured database system with built-in antivirus protection |
US20070192301A1 (en) | 2006-02-15 | 2007-08-16 | Encirq Corporation | Systems and methods for indexing and searching data records based on distance metrics |
US20070198479A1 (en) | 2006-02-16 | 2007-08-23 | International Business Machines Corporation | Streaming XPath algorithm for XPath expressions with predicates |
US7446352B2 (en) | 2006-03-09 | 2008-11-04 | Tela Innovations, Inc. | Dynamic array architecture |
US7536396B2 (en) | 2006-03-21 | 2009-05-19 | At&T Intellectual Property Ii, L.P. | Query-aware sampling of data streams |
US7877381B2 (en) | 2006-03-24 | 2011-01-25 | International Business Machines Corporation | Progressive refinement of a federated query plan during query execution |
US20070226188A1 (en) | 2006-03-27 | 2007-09-27 | Theodore Johnson | Method and apparatus for data stream sampling |
US7644066B2 (en) | 2006-03-31 | 2010-01-05 | Oracle International Corporation | Techniques of efficient XML meta-data query using XML table index |
US8788569B2 (en) | 2006-03-31 | 2014-07-22 | British Telecommunications Public Limited Company | Server computer system running versions of an application simultaneously |
WO2007122347A1 (fr) | 2006-04-20 | 2007-11-01 | France Telecom | Procede d'optimisation de la collecte d'evenements, procede de supervision, produits programmes d'ordinateur et dispositifs correspondants |
US7636703B2 (en) | 2006-05-02 | 2009-12-22 | Exegy Incorporated | Method and apparatus for approximate pattern matching |
US7548937B2 (en) | 2006-05-04 | 2009-06-16 | International Business Machines Corporation | System and method for scalable processing of multi-way data stream correlations |
US8131696B2 (en) | 2006-05-19 | 2012-03-06 | Oracle International Corporation | Sequence event processing using append-only tables |
US7613848B2 (en) | 2006-06-13 | 2009-11-03 | International Business Machines Corporation | Dynamic stabilization for a stream processing system |
US20070294217A1 (en) | 2006-06-14 | 2007-12-20 | Nec Laboratories America, Inc. | Safety guarantee of continuous join queries over punctuated data streams |
US7921046B2 (en) | 2006-06-19 | 2011-04-05 | Exegy Incorporated | High speed processing of financial information using FPGA devices |
US20080010093A1 (en) | 2006-06-30 | 2008-01-10 | Laplante Pierre | System and Method for Processing Health Information |
US7499909B2 (en) | 2006-07-03 | 2009-03-03 | Oracle International Corporation | Techniques of using a relational caching framework for efficiently handling XML queries in the mid-tier data caching |
US20080016095A1 (en) | 2006-07-13 | 2008-01-17 | Nec Laboratories America, Inc. | Multi-Query Optimization of Window-Based Stream Queries |
US7496683B2 (en) | 2006-07-27 | 2009-02-24 | International Business Machines Corporation | Maximization of sustained throughput of distributed continuous queries |
US20080034427A1 (en) | 2006-08-02 | 2008-02-07 | Nec Laboratories America, Inc. | Fast and scalable process for regular expression search |
US8671091B2 (en) | 2006-08-02 | 2014-03-11 | Hewlett-Packard Development Company, L.P. | Optimizing snowflake schema queries |
US7580946B2 (en) | 2006-08-11 | 2009-08-25 | Bizweel Ltd. | Smart integration engine and metadata-oriented architecture for automatic EII and business integration |
US8099400B2 (en) | 2006-08-18 | 2012-01-17 | National Instruments Corporation | Intelligent storing and retrieving in an enterprise data system |
KR100778314B1 (ko) | 2006-08-21 | 2007-11-22 | 한국전자통신연구원 | 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장데이터에 대한 통합 연속 질의 처리 시스템 및 그 방법 |
US8260910B2 (en) * | 2006-09-19 | 2012-09-04 | Oracle America, Inc. | Method and apparatus for monitoring a data stream to detect a pattern of data elements using bloom filters |
US20080082484A1 (en) | 2006-09-28 | 2008-04-03 | Ramot At Tel-Aviv University Ltd. | Fast processing of an XML data stream |
US20080082514A1 (en) | 2006-09-29 | 2008-04-03 | International Business Machines Corporation | Method and apparatus for integrating relational and hierarchical data |
US20080098359A1 (en) | 2006-09-29 | 2008-04-24 | Ventsislav Ivanov | Manipulation of trace sessions based on address parameters |
US8645176B2 (en) | 2006-10-05 | 2014-02-04 | Trimble Navigation Limited | Utilizing historical data in an asset management environment |
US7988817B2 (en) | 2006-11-10 | 2011-08-02 | Adp Engineering Co., Ltd. | Lift pin driving device and a flat panel display manufacturing apparatus having same |
JP4933222B2 (ja) | 2006-11-15 | 2012-05-16 | 株式会社日立製作所 | インデックス処理方法及び計算機システム |
US9436779B2 (en) | 2006-11-17 | 2016-09-06 | Oracle International Corporation | Techniques of efficient XML query using combination of XML table index and path/value index |
US20080120283A1 (en) | 2006-11-17 | 2008-05-22 | Oracle International Corporation | Processing XML data stream(s) using continuous queries in a data stream management system |
US7827190B2 (en) | 2006-12-08 | 2010-11-02 | Pandya Ashish A | Complex symbol evaluation for programmable intelligent search memory |
US7716210B2 (en) | 2006-12-20 | 2010-05-11 | International Business Machines Corporation | Method and apparatus for XML query evaluation using early-outs and multiple passes |
US7895187B2 (en) | 2006-12-21 | 2011-02-22 | Sybase, Inc. | Hybrid evaluation of expressions in DBMS |
US20080195577A1 (en) | 2007-02-09 | 2008-08-14 | Wei Fan | Automatically and adaptively determining execution plans for queries with parameter markers |
US7630982B2 (en) | 2007-02-24 | 2009-12-08 | Trend Micro Incorporated | Fast identification of complex strings in a data stream |
US20090327102A1 (en) | 2007-03-23 | 2009-12-31 | Jatin Maniar | System and method for providing real time asset visibility |
US7827146B1 (en) | 2007-03-30 | 2010-11-02 | Symantec Operating Corporation | Storage system |
US8065319B2 (en) | 2007-04-01 | 2011-11-22 | Nec Laboratories America, Inc. | Runtime semantic query optimization for event stream processing |
US8098248B2 (en) | 2007-04-02 | 2012-01-17 | International Business Machines Corporation | Method for semantic modeling of stream processing components to enable automatic application composition |
US7818292B2 (en) | 2007-04-05 | 2010-10-19 | Anil Kumar Nori | SQL change tracking layer |
JP2008262046A (ja) | 2007-04-12 | 2008-10-30 | Hitachi Ltd | 会議可視化システム、会議可視化方法、及び集計処理サーバ |
US7788206B2 (en) | 2007-04-30 | 2010-08-31 | Lsi Corporation | State machine compression using multi-character state transition instructions |
US7945540B2 (en) | 2007-05-04 | 2011-05-17 | Oracle International Corporation | Method to create a partition-by time/tuple-based window in an event processing service |
US7912853B2 (en) | 2007-05-07 | 2011-03-22 | International Business Machines Corporation | Query processing client-server database system |
US7953728B2 (en) | 2007-05-18 | 2011-05-31 | Oracle International Corp. | Queries with soft time constraints |
US20080301135A1 (en) | 2007-05-29 | 2008-12-04 | Bea Systems, Inc. | Event processing query language using pattern matching |
US7975109B2 (en) | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
US7933894B2 (en) | 2007-06-15 | 2011-04-26 | Microsoft Corporation | Parameter-sensitive plans for structural scenarios |
US7689622B2 (en) | 2007-06-28 | 2010-03-30 | Microsoft Corporation | Identification of events of search queries |
US8832073B2 (en) | 2007-06-29 | 2014-09-09 | Alcatel Lucent | Method and apparatus for efficient aggregate computation over data streams |
US7676461B2 (en) | 2007-07-18 | 2010-03-09 | Microsoft Corporation | Implementation of stream algebra over class instances |
US8055653B2 (en) | 2007-08-09 | 2011-11-08 | International Business Machines Corporation | Processing overlapping continuous queries |
US20090070786A1 (en) | 2007-09-11 | 2009-03-12 | Bea Systems, Inc. | Xml-based event processing networks for event server |
US7827299B2 (en) | 2007-09-11 | 2010-11-02 | International Business Machines Corporation | Transitioning between historical and real time data streams in the processing of data change messages |
US20090076899A1 (en) | 2007-09-14 | 2009-03-19 | Gbodimowo Gbeminiyi A | Method for analyzing, searching for, and trading targeted advertisement spaces |
US7979420B2 (en) | 2007-10-16 | 2011-07-12 | Oracle International Corporation | Handling silent relations in a data stream management system |
US7996388B2 (en) | 2007-10-17 | 2011-08-09 | Oracle International Corporation | Adding new continuous queries to a data stream management system operating on existing queries |
US8700608B2 (en) | 2007-10-17 | 2014-04-15 | Oracle International Corporation | SQL execution plan verification |
US8296316B2 (en) | 2007-10-17 | 2012-10-23 | Oracle International Corporation | Dynamically sharing a subtree of operators in a data stream management system operating on existing queries |
US7739265B2 (en) | 2007-10-18 | 2010-06-15 | Oracle International Corporation | Deleting a continuous query from a data stream management system continuing to operate on other queries |
US8073826B2 (en) | 2007-10-18 | 2011-12-06 | Oracle International Corporation | Support for user defined functions in a data stream management system |
US7991766B2 (en) | 2007-10-20 | 2011-08-02 | Oracle International Corporation | Support for user defined aggregations in a data stream management system |
US7673065B2 (en) | 2007-10-20 | 2010-03-02 | Oracle International Corporation | Support for sharing computation between aggregations in a data stream management system |
US8521867B2 (en) | 2007-10-20 | 2013-08-27 | Oracle International Corporation | Support for incrementally processing user defined aggregations in a data stream management system |
US8335782B2 (en) | 2007-10-29 | 2012-12-18 | Hitachi, Ltd. | Ranking query processing method for stream data and stream data processing system having ranking query processing mechanism |
US8103655B2 (en) | 2007-10-30 | 2012-01-24 | Oracle International Corporation | Specifying a family of logics defining windows in data stream management systems |
US8019747B2 (en) | 2007-10-30 | 2011-09-13 | Oracle International Corporation | Facilitating flexible windows in data stream management systems |
US20090125550A1 (en) | 2007-11-08 | 2009-05-14 | Microsoft Corporation | Temporal event stream model |
US8315990B2 (en) | 2007-11-08 | 2012-11-20 | Microsoft Corporation | Consistency sensitive streaming operators |
WO2009114615A1 (en) | 2008-03-11 | 2009-09-17 | Virtual Agility, Inc. | Techniques for integrating parameterized information request into a system for collaborative work |
US8429601B2 (en) | 2007-11-29 | 2013-04-23 | Red Hat, Inc. | Code completion for object relational mapping query language (OQL) queries |
US7870124B2 (en) | 2007-12-13 | 2011-01-11 | Oracle International Corporation | Rewriting node reference-based XQuery using SQL/SML |
CN101932999A (zh) | 2007-12-20 | 2010-12-29 | 汇丰技术股份有限公司 | 用于并行开发和部署项目的自动方法和系统 |
JP2009171193A (ja) * | 2008-01-16 | 2009-07-30 | Kyocera Mita Corp | 通信装置、通信方法及び通信制御プログラム |
US9489495B2 (en) | 2008-02-25 | 2016-11-08 | Georgetown University | System and method for detecting, collecting, analyzing, and communicating event-related information |
US8903802B2 (en) | 2008-03-06 | 2014-12-02 | Cisco Technology, Inc. | Systems and methods for managing queries |
US7958114B2 (en) | 2008-04-04 | 2011-06-07 | Microsoft Corporation | Detecting estimation errors in dictinct page counts |
US7872948B2 (en) | 2008-04-14 | 2011-01-18 | The Boeing Company | Acoustic wide area air surveillance system |
US8122050B2 (en) | 2008-04-16 | 2012-02-21 | International Business Machines Corporation | Query processing visualization system and method of visualizing query processing |
US8155880B2 (en) | 2008-05-09 | 2012-04-10 | Locomatix Inc. | Location tracking optimizations |
US8850409B2 (en) | 2008-05-21 | 2014-09-30 | Optumsoft, Inc. | Notification-based constraint set translation to imperative execution |
US7930322B2 (en) | 2008-05-27 | 2011-04-19 | Microsoft Corporation | Text based schema discovery and information extraction |
US8918507B2 (en) | 2008-05-30 | 2014-12-23 | Red Hat, Inc. | Dynamic grouping of enterprise assets |
US8291006B2 (en) | 2008-05-30 | 2012-10-16 | International Business Machines Corporation | Method for generating a distributed stream processing application |
US8112378B2 (en) | 2008-06-17 | 2012-02-07 | Hitachi, Ltd. | Methods and systems for performing root cause analysis |
US8316012B2 (en) | 2008-06-27 | 2012-11-20 | SAP France S.A. | Apparatus and method for facilitating continuous querying of multi-dimensional data streams |
US20110105857A1 (en) * | 2008-07-03 | 2011-05-05 | Panasonic Corporation | Impression degree extraction apparatus and impression degree extraction method |
US8086644B2 (en) | 2008-07-10 | 2011-12-27 | International Business Machines Corporation | Simplifying complex data stream problems involving feature extraction from noisy data |
US8447739B2 (en) | 2008-07-16 | 2013-05-21 | SAP France S.A. | Systems and methods to create continuous queries via a semantic layer |
US9135583B2 (en) | 2008-07-16 | 2015-09-15 | Business Objects S.A. | Systems and methods to create continuous queries associated with push-type and pull-type data |
US8037040B2 (en) | 2008-08-08 | 2011-10-11 | Oracle International Corporation | Generating continuous query notifications |
US8335793B2 (en) | 2008-08-22 | 2012-12-18 | Disney Enterprises, Inc. | System and method for optimized filtered data feeds to capture data and send to multiple destinations |
US9305238B2 (en) | 2008-08-29 | 2016-04-05 | Oracle International Corporation | Framework for supporting regular expression-based pattern matching in data streams |
EP2329419A4 (en) | 2008-09-15 | 2016-01-13 | James A Aman | AUTOMATED SESSION RECORDING WITH RULE-BASED INDEXING, ANALYSIS AND EXPRESSION OF CONTENT |
US8032544B2 (en) | 2008-09-24 | 2011-10-04 | The Boeing Company | Methods and apparatus for generating dynamic program files based on input queries that facilitate use of persistent query services |
US20100094838A1 (en) | 2008-10-10 | 2010-04-15 | Ants Software Inc. | Compatibility Server for Database Rehosting |
JP5465413B2 (ja) | 2008-10-29 | 2014-04-09 | 株式会社日立製作所 | ストリームデータ処理方法、及びそのシステム |
US8538981B2 (en) | 2008-11-20 | 2013-09-17 | Sap Ag | Stream sharing for event data within an enterprise network |
US8392402B2 (en) | 2008-12-03 | 2013-03-05 | International Business Machines Corporation | Hybrid push/pull execution of continuous SQL queries |
US8145621B2 (en) | 2008-12-19 | 2012-03-27 | Ianywhere Solutions, Inc. | Graphical representation of query optimizer search space in a database management system |
US8352517B2 (en) | 2009-03-02 | 2013-01-08 | Oracle International Corporation | Infrastructure for spilling pages to a persistent store |
US8145859B2 (en) | 2009-03-02 | 2012-03-27 | Oracle International Corporation | Method and system for spilling from a queue to a persistent store |
US8935293B2 (en) | 2009-03-02 | 2015-01-13 | Oracle International Corporation | Framework for dynamically generating tuple and page classes |
US8161035B2 (en) | 2009-06-04 | 2012-04-17 | Oracle International Corporation | Query optimization by specifying path-based predicate evaluation in a path-based query operator |
US8868725B2 (en) | 2009-06-12 | 2014-10-21 | Kent State University | Apparatus and methods for real-time multimedia network traffic management and control in wireless networks |
US8572589B2 (en) | 2009-06-30 | 2013-10-29 | Agilent Technologies, Inc. | Programming language translator and enabling translation of machine-centric commands for controlling instrument |
US8180801B2 (en) | 2009-07-16 | 2012-05-15 | Sap Ag | Unified window support for event stream data management |
US8321450B2 (en) | 2009-07-21 | 2012-11-27 | Oracle International Corporation | Standardized database connectivity support for an event processing server in an embedded context |
US8387076B2 (en) | 2009-07-21 | 2013-02-26 | Oracle International Corporation | Standardized database connectivity support for an event processing server |
US8386466B2 (en) | 2009-08-03 | 2013-02-26 | Oracle International Corporation | Log visualization tool for a data stream processing server |
US8527458B2 (en) | 2009-08-03 | 2013-09-03 | Oracle International Corporation | Logging framework for a data stream processing server |
CA2754159C (en) | 2009-08-11 | 2012-05-15 | Certusview Technologies, Llc | Systems and methods for complex event processing of vehicle-related information |
JP4925143B2 (ja) | 2009-08-12 | 2012-04-25 | 株式会社日立製作所 | ストリームデータ処理システム、ストリームデータ処理方法及びストリームデータ処理プログラム |
US8204873B2 (en) | 2009-08-26 | 2012-06-19 | Hewlett-Packard Development Company, L.P. | System and method for query expression optimization |
US8195648B2 (en) | 2009-10-21 | 2012-06-05 | Microsoft Corporation | Partitioned query execution in event processing systems |
US8959106B2 (en) | 2009-12-28 | 2015-02-17 | Oracle International Corporation | Class loading using java data cartridges |
US9430494B2 (en) | 2009-12-28 | 2016-08-30 | Oracle International Corporation | Spatial data cartridge for event processing systems |
US9305057B2 (en) | 2009-12-28 | 2016-04-05 | Oracle International Corporation | Extensible indexing framework using data cartridges |
US9307038B2 (en) | 2009-12-29 | 2016-04-05 | Motorola Solutions, Inc. | Method for presence notification based on a sequence of events |
US8423576B2 (en) | 2010-01-11 | 2013-04-16 | International Business Machines Corporation | System and method for querying data streams |
EP2348416A1 (en) | 2010-01-21 | 2011-07-27 | Software AG | Analysis system and method for analyzing continuous queries for data streams |
US8484243B2 (en) | 2010-05-05 | 2013-07-09 | Cisco Technology, Inc. | Order-independent stream query processing |
US20110314019A1 (en) | 2010-06-18 | 2011-12-22 | Universidad Politecnica De Madrid | Parallel processing of continuous queries on data streams |
US8627329B2 (en) | 2010-06-24 | 2014-01-07 | International Business Machines Corporation | Multithreaded physics engine with predictive load balancing |
US8713049B2 (en) | 2010-09-17 | 2014-04-29 | Oracle International Corporation | Support for a parameterized query/view in complex event processing |
EP2628093A1 (en) | 2010-10-11 | 2013-08-21 | Hewlett-Packard Development Company, L.P. | System and method for querying a data stream |
WO2012050582A1 (en) | 2010-10-14 | 2012-04-19 | Hewlett-Packard Development Company, L.P. | Continuous querying of a data stream |
US9189280B2 (en) | 2010-11-18 | 2015-11-17 | Oracle International Corporation | Tracking large numbers of moving objects in an event processing system |
US20120130963A1 (en) | 2010-11-24 | 2012-05-24 | Teradata Us, Inc. | User defined function database processing |
EP2469420B1 (en) | 2010-12-22 | 2019-11-27 | Software AG | CEP engine and method for processing CEP queries |
US8788484B2 (en) | 2010-12-27 | 2014-07-22 | Software Ag | Systems and/or methods for user feedback driven dynamic query rewriting in complex event processing environments |
US8799271B2 (en) | 2011-01-25 | 2014-08-05 | Hewlett-Packard Development Company, L.P. | Range predicate canonization for translating a query |
US9350567B2 (en) | 2011-01-25 | 2016-05-24 | International Business Machines Corporation | Network resource configurations |
US8655825B2 (en) | 2011-03-10 | 2014-02-18 | Sap Ag | Efficient management of data quality for streaming event data |
US8751639B2 (en) | 2011-04-27 | 2014-06-10 | Rackspace Us, Inc. | Event queuing and distribution system |
US8990416B2 (en) | 2011-05-06 | 2015-03-24 | Oracle International Corporation | Support for a new insert stream (ISTREAM) operation in complex event processing (CEP) |
WO2012152315A1 (en) | 2011-05-10 | 2012-11-15 | Telefonaktiebolaget L M Ericsson (Publ) | Optimised data stream management system |
US9965520B2 (en) | 2011-06-17 | 2018-05-08 | Microsoft Corporation | Efficient logical merging over physically divergent streams |
US9329975B2 (en) | 2011-07-07 | 2016-05-03 | Oracle International Corporation | Continuous query language (CQL) debugger in complex event processing (CEP) |
US9286354B2 (en) | 2011-08-15 | 2016-03-15 | Software Ag | Systems and/or methods for forecasting future behavior of event streams in complex event processing (CEP) environments |
US8635208B2 (en) | 2011-11-03 | 2014-01-21 | Sap Ag | Multi-state query migration in data stream management |
US9424150B2 (en) | 2011-12-06 | 2016-08-23 | Sap Se | Fault tolerance based query execution |
WO2013131570A1 (en) | 2012-03-08 | 2013-09-12 | Telefonaktiebolaget L M Ericsson (Publ) | Data stream management systems |
US20130332240A1 (en) | 2012-06-08 | 2013-12-12 | University Of Southern California | System for integrating event-driven information in the oil and gas fields |
US9563663B2 (en) | 2012-09-28 | 2017-02-07 | Oracle International Corporation | Fast path evaluation of Boolean predicates |
US9361308B2 (en) | 2012-09-28 | 2016-06-07 | Oracle International Corporation | State initialization algorithm for continuous queries over archived relations |
US10956422B2 (en) | 2012-12-05 | 2021-03-23 | Oracle International Corporation | Integrating event processing with map-reduce |
US9053210B2 (en) | 2012-12-14 | 2015-06-09 | Microsoft Technology Licensing, Llc | Graph query processing using plurality of engines |
US10298444B2 (en) | 2013-01-15 | 2019-05-21 | Oracle International Corporation | Variable duration windows on continuous data streams |
US9047249B2 (en) | 2013-02-19 | 2015-06-02 | Oracle International Corporation | Handling faults in a continuous event processing (CEP) system |
US9390135B2 (en) | 2013-02-19 | 2016-07-12 | Oracle International Corporation | Executing continuous event processing (CEP) queries in parallel |
US9418113B2 (en) | 2013-05-30 | 2016-08-16 | Oracle International Corporation | Value based windows on relations in continuous data streams |
-
2013
- 2013-03-15 US US13/839,288 patent/US9098587B2/en active Active
-
2014
- 2014-01-09 EP EP14704710.4A patent/EP2946314A1/en not_active Withdrawn
- 2014-01-09 CN CN201480004736.4A patent/CN104937591B/zh active Active
- 2014-01-09 WO PCT/US2014/010832 patent/WO2014113263A1/en active Application Filing
- 2014-01-09 JP JP2015552765A patent/JP6826812B2/ja active Active
-
2019
- 2019-03-05 JP JP2019039695A patent/JP6952067B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101059688A (zh) * | 2006-04-20 | 2007-10-24 | 重庆杰信模具有限公司 | 基于kbe及web技术的锻模设计与制造系统 |
Also Published As
Publication number | Publication date |
---|---|
JP6952067B2 (ja) | 2021-10-20 |
WO2014113263A1 (en) | 2014-07-24 |
EP2946314A1 (en) | 2015-11-25 |
JP6826812B2 (ja) | 2021-02-10 |
CN104937591A (zh) | 2015-09-23 |
JP2019125383A (ja) | 2019-07-25 |
US20140201225A1 (en) | 2014-07-17 |
JP2016503216A (ja) | 2016-02-01 |
US9098587B2 (en) | 2015-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104937591B (zh) | 可变持续时间非事件模式匹配 | |
CN105379183B (zh) | 连续数据流上的可变持续时间窗口 | |
CN104838377B (zh) | 利用映射缩减集成事件处理 | |
Chen | An intelligent value stream-based approach to collaboration of food traceability cyber physical system by fog computing | |
CN106104533B (zh) | 处理大型数据储存库中的数据集 | |
CN104885077B (zh) | 利用归档的关系管理连续查询 | |
US20140108414A1 (en) | Scalable distributed processing of rdf data | |
US20170109657A1 (en) | Machine Learning-Based Model for Identifying Executions of a Business Process | |
US9311617B2 (en) | Processing event instance data in a client-server architecture | |
CN108701254A (zh) | 用于动态族系跟踪、重建和生命周期管理的系统和方法 | |
CN104345974B (zh) | 对输入数据记录集执行基于集成模型的预测的方法和系统 | |
US20180004781A1 (en) | Data lineage analysis | |
US9098630B2 (en) | Data selection | |
CN107679192A (zh) | 多集群协同数据处理方法、系统、存储介质及设备 | |
US20170109636A1 (en) | Crowd-Based Model for Identifying Executions of a Business Process | |
US9424311B2 (en) | Query routing based on complexity class determination | |
CN108694195A (zh) | 一种分布式数据仓库的管理方法及系统 | |
CN110457333B (zh) | 数据实时更新方法、装置及计算机可读存储介质 | |
Adams et al. | A framework for extracting and encoding features from object-centric event data | |
CN103365946A (zh) | 数据库性能分析 | |
US20110145518A1 (en) | Systems and methods for using pre-computed parameters to execute processes represented by workflow models | |
US20170212937A1 (en) | Method for generating an event log | |
US20170109640A1 (en) | Generation of Candidate Sequences Using Crowd-Based Seeds of Commonly-Performed Steps of a Business Process | |
Koncilia et al. | Interval OLAP: Analyzing interval data | |
CN110262973B (zh) | 数据养成维护方法、装置、设备及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |