对复杂事件处理(cep)中的新插入流(istream)操作的支持的制作方法

xiaoxiao2020-7-22  10

对复杂事件处理(cep)中的新插入流(istream)操作的支持的制作方法
【专利摘要】本发明的一个实施例包括处理流式数据的方法。该方法包括初始化数据流,以及设置要应用于数据流的时间间隔。时间间隔包括用于分析数据流内的数据的窗口。该方法还包括标识数据流内的一个或多个列、指定要被监测在所述时间间隔内所述数据内的差异的所述列中的一个或多个,以及监测在所述时间间隔内所指定的列。进一步地,该方法包括判断所指定的列中的至少一个的至少一个值已经变化,响应于至少一个值变化,从所指定的列输出变化的值。
【专利说明】对复杂事件处理(CEP)中的新插入流(I STREAM)操作的支持
[0001]对相关申请的交叉引用
[0002]此“专利合作条約”申请要求2011年5月6日提交的标题为“SUPPORT FOR A NEWINSERT STREAM (ISTREAM) OPERATION IN COMPLEX EVENT PROCESSING (CEP) ” 的美国非临时专利申请N0.13/102,665的优先权,此处引用了其全部内容作为參考。
【背景技术】
[0003]通常,“复杂事件处理”(CEP)是实时地聚集来自分布式基于消息的系统、数据库和应用的信息并且动态地应用规则以辨别否则可能不被注意的模式和趋势的方法。这可以给予公司跨高度复杂、分布式的,并且异种环境来识别并且甚至预期由表面上不相关的事件所表示的异常和机会的能力,CEP还被用来几乎实时地关联、聚集、丰富,以及检测高速度流式数据中的模式。此外,CEP还通过流的概念来支持无限制的数据的成流。流是数据项的无限制的集合,最为对比,选择是数据项的有限集合——非常像在传统的数据库系统中那样。目前,存在各种从流转换为关系以及执行相反的操作的操作符。
[0004]此外,ISTREAM (或插入流)是操作符中的将关系转换为流的ー个操作符。ISTREAM在考虑ー个关系的所有列的情况下根据时间R(t)和R(t-l)来计算ー个关系的多重集差异。如此,由于考虑了所有列,因此,输出数据可能包括不必要的或不希望有的信息。因此,通过本发明来补救这些及其他缺点。
【专利附图】

【附图说明】
[0005]结合附图描述本发明:
[0006]图1是示出了根据本发明的各实施例的对流式数据的处理的流程图;
[0007]图2是示出了根据本发明的进ー步的实施例的对流式数据的处理的流程图;
[0008]图3是示出了根据本发明的各实施例的用于处理流式数据的系统的框图;
[0009]图4是示出了根据本发明的各实施例的与处理流式数据相关的表的图示;
[0010]图5是能够用于本发明的设备或系统的至少某些部分中,或实现本发明的方法的至少某些部分的示例性计算机系统的框图;以及
[0011]图6是示出了用于实现本发明的各实施例的示例性联网系统的框图。
[0012]在附图中,类似的组件和/或特征可以具有相同的数字附图标记。进ー步地,相同类型的各种组件可以通过在附图标记之后添加区别类似的组件和/或特征的字母来区別。如果只有第一数字附图标记用于说明书中,则描述适用于具有相同第一数字附图标记的类似的组件和/或特征中的任何ー个,不管字母后缀是什么。

【发明内容】

[0013]本发明的一个实施例包括处理流式数据的方法。该方法包括初始化数据流,以及设置要应用于数据流的时间间隔。该时间间隔包括用于分析数据流内的数据的窗ロ。该方法还包括标识数据流内的ー个或多个列,指定要被监测在所述时间间隔内所述数据内的差异的所述列中的ー个或多个,以及,在所述时间间隔内监测所述指定的列。进ー步地,该方法包括判断所述指定的列中的至少ー个的至少ー个值已经变化,并且响应于至少ー个值变化,从所述指定的列输出变化的值。
[0014]在再一个实施例中,描述了用于处理流式数据的系统。该系统包括在其上存储了指令集的存储器以及与存储器耦合的处理器。指令集在由处理器执行时,使处理器:初始化数据流,以及,设置要应用于数据流的时间间隔。该时间间隔包括用于分析数据流内的数据的窗ロ。指令进ー步使处理器标识数据流内的ー个或多个列,指定要被监测在所述时间间隔内所述数据内的差异的所述列中的ー个或多个,在所述时间间隔内监测所述指定的列,判断所述指定的列中的至少ー个的至少ー个值已经变化,以及,响应于至少ー个值变化,从所述指定的列输出变化的值。
[0015]本发明的进ー步的实施例包括用于处理流式数据的计算机可读介质。该计算机可读介质包括用于初始化数据流,以及设置要应用于数据流的时间间隔的指令。该时间间隔包括用于分析数据流内的数据的窗ロ。该计算机可读介质还包括用于标识数据流内的ー个或多个列、指定要被监测在所述时间间隔内所述数据内的差异的所述列中的ー个或多个,以及在所述时间间隔内监测所述指定的列的指令。进ー步地,该计算机可读介质包括用于判断所述指定的列中的至少ー个的至少ー个值已经变化,并且响应于至少ー个值变化,从所述指定的列输出变化的值的指令。
【具体实施方式】
[0016]下面的描述只提供示例性实施例,不打算限制本发明的范围、适用性,或配置。相反,随后的对示例性实施例的描述将为那些熟悉本领域技术人员提供用于实现ー个或多个示例性实施例的支持性描述,可以理解,在不偏离如在所附权利要求书中阐述的本发明的精神和范围的情况下,可以对元件的功能和布局进行各种更改。
[0017]在下面的描述中给出了具体细节以提供对各实施例的全面的理解。然而,本领域技术人员将理解,这些实施例也可以在没有这些具体细节的情况下实施。例如,本发明中的电路、系统、网络、进程,及其他元素可以以框图形式作为组件示出,以便不致以不必要的细节使各实施例模糊。在其他情况下,已知的电路、进程、算法、结构,以及技术可以在没有不必要的细节的情况下被示出,以便避免使各实施例模糊。
[0018]此外,还要注意,各个实施例可以描述为被描绘成流图、流程图、数据流程图、结构图或框图的进程。虽然流图可以将操作描述为顺序进程,但是,许多操作可以并行地或同时执行。另外,还可以重新排列操作的顺序。当其操作完成时,进程可以结束,但是,可以具有图中未讨论或包括的额外的步骤。此外,并非任何具体描述的进程中的所有的操作都可以在所有实施例中出现。进程可以对应于方法、函数、进程、子例程、子程序等等。当进程对应于函数时,其结束对应于函数返回到调用函数或主函数。
[0019]术语“机器可读取的介质”包括但不仅限干:便携式或固定存储器设备、光存储设备、无线信道,以及能够存储、包含或携帯指令和/或数据的各种其他介质。代码段或机器可执行指令可以表示过程、函数、子程序、程序、例程、子例程、模块、软件程序包、类,或指令、数据结构,或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、自变量、參数或存储器内容,耦合到另一代码段或硬件电路。可以通过包括存储器共享、消息传递、令牌传递、网络传输等等的任何合适的手段,传递、转发或传输信息、自变量、參数、数据
坐坐寸寸O
[0020]此外,本发明的各实施例还可以至少部分地人工地或自动地来实现。手动或自动实现可以通过使用机器、硬件、软件、固件、中间件、微代码、硬件描述语言,或其任何组合来执行,或至少协助。当以软件、固件、中间件或微代码来实现时,执行必要的任务的程序代码或代码段可以存储在机器可读的介质中。处理器可以执行必要的任务。
[0021]本发明的各方面涉及元组的某些列值(或派生值)经常在两个连续的时间实例(SP,t和t+1)之间变化而其他列值不变化的概念。可能有应用关注只对列的子集的更改的情况;然而,ISTREAM当前考虑所有列,甚至在所关注的列的值(或派生值)不变化的情况下,也报告元组。如此,可以输出数据中的与应用无关的变化。为此,本发明的各方面提供不仅考虑列的子集,而且还包括诸如NOT IN语义之类的新的语义的ISTREAM。查询可能十分复杂,并且由于ISTREAM实际处理从查询的执行实体化的关系,本发明的各方面还可以将如前所述的逻辑应用到SELECT列表表达式,并将它应用到其子集。对带有NOT IN语义的列的子集应用ISTREAM操作符提供了以简洁的方式来表达输出的方便的句法符号。
[0022]现在,考虑下列查询:
[0023]CREATE QUERY qOAS
[0024]ISTREAM
[0025](
[0026]SELECT*FR0M S[RANGE1NAN0SEC0NDS]
[0027])
[0028]DIFFERENCE USING (cl, c2)
[0029]这实际可能导致非确定性的输出(即,挑选哪ー个元组(因而c3的列值)和不考虑哪ー个)。另ー替代方案是只允许基于在USING子句中指定的列的列或表达式:
[0030]CREATE QUERY qOAS
[0031]ISTREAM
[0032](
[0033]SELECT cl, c2, func(cl, c2)FROM tkdatal_S[RANGE1NAN0SEC0NDS]
[0034])
[0035]DIFFERENCE USING (cl, c2)
[0036]或者
[0037]CREATE QUERY tkdatal_qlAS
[0038]ISTREAM
[0039](
[0040]SELECT func(cl, c2)FROM tkdatal_S[RANGE1NAN0SEC0NDS]
[0041])
[0042]DIFFERENCE USING (cl, c2)
[0043]然而,这些表达式限制性太强,没有用。因此,本发明的各方面可以使用NOT IN(这与MINUS语义相同,只是MINUS严格地对集合起作用,而本发明允许多重集/袋),这恰好导致所需行为,而没有如前所述的任何ー个限制。相应地,利用给定语义,对于下列查询和给定输入流,输出可以如下所示:
【权利要求】
1.一种处理流式数据的方法,所述方法包括: 初始化数据流; 设置要应用于所述数据流的时间间隔,其中,所述时间间隔包括用于分析所述数据流内的数据的窗ロ; 标识所述数据流内的ー个或多个列; 指定所述列中的ー个或多个以监测在所述时间间隔内所述数据内的差异; 在所述时间间隔内监测所指定的列; 判断来自所指定的列中的至少ー个的至少ー个值已经变化;以及 响应于至少ー个值变化,从所指定的列输出变化的值。
2.如权利要求1所述的处理流式数据的方法,进ー步包括在下一时间间隔内继续从所述数据流接收数据。
3.如权利要求2所述的处理流式数据的方法,其中,所述从所述数据流接收数据基本上是实时的。
4.如权利要求1所述的处理流式数据的方法,其中,所述ー个或多个列被包括在ー个或多个表中,所述ー个或多个表是从所述时间间隔内的所述数据流构建的。
5.如权利要求1所述的处理流式数据方法,其中,所述输出只包括所述数据流内的变化。
6.如权利要求1所述的处理 流式数据的方法,其中,对所述流式数据的处理包括复杂事件处理CEP。
7.如权利要求1所述的处理流式数据的方法,其中,所述输出包括所述流式数据内的在所述时间间隔内已经变化的数据的子集。
8.一种在其上存储了指令集的用于处理流式数据的非瞬时计算机可读介质,该指令集当由计算机执行时,使所述计算机: 通过应用istream操作符将关系数据转换为流式数据; 确定由限制约束应用的所述流式数据内的ー个或多个段,其中,所述限制约束指定段边界; 从数据流标识列; 选择所确定的段上的所标识的列; 选择列以监测所确定的段上的所述列内的数据的变化; 对被应用于所监测的列的所确定的段上的所选择的列执行多重集istream操作;以及 从所述多重集istream操作输出所产生的数据。
9.如权利要求8所述的用于处理流式数据的非瞬时计算机可读介质,其中,所述指令集当进ー步由所述计算机执行时,使所述计算机将所述流式数据转换回关系数据。
10.如权利要求8所述的用于处理流式数据的非瞬时计算机可读介质,其中,所述段边界包括时间间隔。
11.如权利要求10所述的用于处理流式数据的非瞬时计算机可读介质,其中,所述时间间隔包括用于分析所指定的列数据内的变化的时间窗ロ。
12.如权利要求10所述的用于处理流式数据的非瞬时计算机可读介质,其中,所述输出包括所述数据流内的在所述段内已经变化的数据的子集。
13.一种用于处理流式数据的系统,所述系统包括: 在其上存储了指令集的存储器;以及 与所述存储器耦合的处理器,其中,所述指令集当由所述处理器执行时,使所述处理器: 初始化数据流; 设置要应用于所述数据流的时间间隔,其中,所述时间间隔包括用于分析所述数据流内的数据的窗ロ; 标识所述数据流内的ー个或多个列; 指定所述列中的ー个或多个以监测在所述时间间隔内所述数据内的差异; 在所述时间间隔内监测所指定的列; 判断来自所指定的列中的至少ー个的至少ー个值已经变化;以及 响应于至少ー个值变化,从所指定的列输出变化的值。
14.如权利要求13所述的用于处理流式数据的系统,进一歩包括数据库,其中,所述数据库被配置成存储所述数据流内的数据。
15.如权利要求14所述的用于处理流式数据的系统,其中,所述指令集进ー步使所述处理器在下ー时间间隔内继续从所述数据流接收数据。
16.如权利要求15所述的用于处`理流式数据的系统,其中,从所述数据流接收数据基本上是实时的。
17.如权利要求13所述的用于处理流式数据的系统,其中,所述ー个或多个列被包括在ー个或多个表中,所述ー个或多个表是从所述时间间隔内的所述数据流构建的。
18.如权利要求13所述的用于处理流式数据的系统,其中,所述输出只包括在所述时间间隔内所述数据流内的变化。
19.如权利要求13所述的用于处理流式数据的系统,其中,所述处理器被配置成实现监测应用,所述监测应用实现由所述处理器执行的所述指令集。
20.如权利要求1所述用于处理流式数据的方法,其中,对所述流式数据的处理包括复杂事件处理CEP。
【文档编号】G06F7/00GK103502930SQ201280022008
【公开日】2014年1月8日 申请日期:2012年4月25日 优先权日:2011年5月6日
【发明者】V·舒克拉, A·斯里尼瓦桑 申请人:甲骨文国际公司

最新回复(0)