链接连续查询的机制.pdf

上传人:柴****2 文档编号:4025110 上传时间:2018-08-12 格式:PDF 页数:37 大小:2.41MB
返回 下载 相关 举报
摘要
申请专利号:

CN201380056099.0

申请日:

2013.09.26

公开号:

CN104756112A

公开日:

2015.07.01

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 17/30申请日:20130926|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

甲骨文国际公司

发明人:

E·希奥; H·帕克; A·斯里尼瓦桑

地址:

美国加利福尼亚

优先权:

61/707,641 2012.09.28 US; 13/830,735 2013.03.14 US

专利代理机构:

中国国际贸易促进委员会专利商标事务所11038

代理人:

袁玥

PDF下载: PDF下载
内容摘要

本发明提供了用于实现用来链接连续查询的机制的技术。在某些示例中,第一连续查询的结果可以存储于数据对象内。例如,第一连续查询可以被配置为处理业务事件数据并将结果存储于数据对象内。另外,然后可以至少部分基于存储于数据对象内的结果来处理第二连续查询。

权利要求书

权利要求书
1.  一种系统,包含:
用于以复杂事件处理引擎来处理针对事件流的第一连续查询的装置;
用于将所述第一连续查询的结果存储于所述复杂事件处理引擎的数据对象内的装置,所述第一连续查询被配置为处理所述事件流的业务事件数据;以及
用于以所述复杂事件处理引擎至少部分基于存储于所述数据对象内的所述结果来处理第二连续查询的装置。

2.  根据权利要求1所述的系统,还包含用于审核存储于所述数据对象内的所述结果的装置。

3.  根据权利要求1或2所述的系统,其中所述数据对象被配置为流数据对象。

4.  根据权利要求3所述的系统,其中所述流数据对象被配置为仅执行“插入”动作。

5.  根据权利要求1至4中的任一项所述的系统,还包含用于将所述数据对象映射到可视化的装置。

6.  根据权利要求5所述的系统,还包含用于准备所述可视化以由与所述业务事件数据关联的用户的用户接口显示的装置。

7.  根据权利要求1至6中的任一项所述的系统,其中所述第一连续查询的所述结果被存储于所述数据对象内达至少第一时段。

8.  根据权利要求7所述的系统,其中所述第二连续查询在所述第一时段结束之前被处理。

9.  根据权利要求7或8所述的系统,其中所述第一时段是至少部分基于性能指标来确定的。

10.  根据权利要求1所述的系统,还包含用于使得能够对所述数据对象进行修改的装置。

11.  根据权利要求1所述的系统,其中存储于所述数据对象内的所述结果包括关于所述第一连续查询的拓扑的信息。

12.  一种方法,包括:
使用复杂事件处理引擎来初始化针对与用户关联的业务事件数据的第一连续查询,以在时间间隔内收集第一结果;
处理针对包含与所述用户关联的所述业务事件数据的事件流的所述第一连续查询;
将所述第一结果作为所述复杂事件处理引擎的数据对象存储于存储器内;
至少部分基于触发的接收而将所述数据对象的所述第一结果提交给第二连续查询;
使用所述复杂事件处理引擎至少部分基于所述数据对象的所述第一结果来处理所述第二连续查询以识别第二结果;并且
至少部分基于来自所述第二连续查询的所述第二结果来给所述用户提供警报。

13.  根据权利要求12所述的方法,其中与所述用户关联的所述业务事件数据对应于流或与所述流关联的存档关系。

14.  根据权利要求12所述的方法,其中所述第一结果是基于移动窗口收集的。

15.  根据权利要求14所述的方法,其中所述移动窗口或所述时间间隔中的至少一项由所述用户确定。

16.  根据权利要求12所述的方法,其中所述触发指示存储于所述数据对象内的所述第一结果的变化。

17.  一种方法,包括:
使用复杂事件处理引擎来实现针对与用户关联的业务事件数据的第一连续查询,以在时间间隔内收集第一结果;
处理针对包含与所述用户关联的所述业务事件数据的事件流的所述第一连续查询;
将所述第一结果作为所述复杂事件处理引擎的数据对象存储于存储器内;
至少部分基于触发的接收而将所述数据对象的所述第一结果提供给第二连续查询;
使用所述复杂事件处理引擎至少部分基于所述数据对象的所述第一结果来处理所述第二连续查询以识别第二结果;
提供所述第一结果或所述第二结果中的至少一项到可视化的映射,以由所述用户的用户接口显示;以及
至少部分基于来自所述第二连续查询的所述第二结果给所述用户提供警报。

18.  根据权利要求17所述的方法,其中所述第一连续查询被配置为接收来自流或存档关系的数据。

19.  根据权利要求18所述的方法,所述存档关系包含与所述流关 联的无序时变元组集。

20.  根据权利要求17所述的方法,其中所述映射被配置为提供所述第一结果或所述第二结果中的至少一项的变化的实时可视化。

21.  根据权利要求17所述的方法,其中所述数据对象被配置为仅处理“插入”指令。

22.  一种存储可由一个或多个处理器执行的多个指令的计算机可读程序,所述多个指令包括:
使得所述一个或多个处理器使用复杂事件处理引擎来初始化针对与用户关联的业务事件数据的第一连续查询以在时间间隔内收集第一结果的指令;
使得所述一个或多个处理器处理针对包含与所述用户关联的所述业务事件数据的事件流的所述第一连续查询的指令;
使得所述一个或多个处理器将所述第一结果作为所述复杂事件处理引擎的数据对象存储于存储器内的指令;
使得所述一个或多个处理器至少部分基于触发的接收而将所述数据对象的所述第一结果提交给第二连续查询的指令;
使得所述一个或多个处理器使用所述复杂事件处理引擎至少部分基于所述数据对象的所述第一结果来处理所述第二连续查询以识别第二结果的指令;以及
使得所述一个或多个处理器至少部分基于来自所述第二连续查询的所述第二结果来给所述用户提供警报的指令。

23.  根据权利要求22所述的计算机可读程序,其中与所述用户关联的所述业务事件数据对应于流或与所述流关联的存档关系。

24.  根据权利要求22或23所述的计算机可读程序,其中所述第一 结果基于移动窗口来收集。

25.  根据权利要求22所述的计算机可读程序,其中所述移动窗口或所述时间间隔中的至少一项由所述用户确定。

26.  根据权利要求22至25中的任一项所述的计算机可读程序,其中所述触发指示存储于所述数据对象内的所述第一结果的变化。

说明书

说明书链接连续查询的机制
相关申请的交叉引用
本申请要求在2013年3月14日提交的、标题为“Mechanism to Chain Continuous Queries”的美国专利申请No.13/830,735(代理人案号88325-859821(128080US))以及在2012年9月28日提交的、标题为“Real-time Business Event Analysis and Monitoring”的美国临时申请No.61/707,641的优先权和权益,这两个申请通过引用的方式全文并入本文。
背景技术
在传统的数据库系统中,数据通常以表的形式存储于一个或多个数据库内。所存储的数据然后使用诸如结构化查询语言(SQL)的数据管理语言来查询和操作。例如,SQL查询可以被定义并被执行以从存储于数据库内的数据中识别出相关数据。从而对存储于数据库内的有限数据集执行SQL查询。此外,当执行SQL查询时,该SQL查询对有限数据集执行一次并产生有限静态结果。因而,数据库被最佳地配备为运行对存储的有限数据集的查询。
但是,许多现代应用和系统生成形式为连续数据或事件流的数据,而不是有限数据集。此类应用的示例包括但不限于传感器数据应用、金融行情收报机(financial tickers)、网络性能测量工具(例如,网络监测与流量管理应用)、点击流分析工具、汽车交通监测等。这样的应用已经引起了对能够处理数据流的新一代应用的需求。例如,温度传感器可以被配置为发送温度读数。
为这些类型的基于事件流的应用管理和处理数据涉及建立时间聚焦强的数据管理和查询能力。需要不同种类的查询机制,包括对连续无界数据集的长时间运行的查询。虽然现在有些供应商在供应面向事件流处 理的产品套件,但是这些产品供应仍然缺少应对现今的事件处理需求所需要的处理灵活性。
发明内容
本发明提供了用于链接连续查询的技术。根据至少一个示例,系统可以包含用于存储多个指令的存储器和配置为访问存储器的一个或多个处理器。在某些示例中,该一个或多个处理器可以被配置为执行该多个指令以至少将第一连续查询的结果存储于数据对象内。第一连续查询可以被配置为处理业务事件数据(例如,与特定的业务实体关联的动作、事件和/或事务的日志信息)。在某些示例中,业务事件数据可以包括但不限于为记录事务而创建的记录;这些记录在某些情况下可以包含时间戳。另外,在某些示例中,该一个或多个处理器可以被进一步配置为执行该多个指令,以至少部分基于存储于数据对象内的结果来至少处理第二连续查询。此外,在某些示例中,该一个或多个处理器可以被进一步配置为执行该多个指令,以至少审核存储于数据对象内的结果。数据对象可以被配置为流数据对象,并且在某些情况下,流数据对象可以被配置为仅执行插入动作。另外,在某些示例中,该一个或多个处理器可以被进一步配置用于执行该多个指令,以至少映射数据对象可视化(visualization)和/或准备该可视化以由与业务事件数据关联的用户的用户接口显示。在某些示例中,第一连续查询的结果可以在至少第一时段内存储于数据对象内,第二连续查询可以在第一时段结束之前进行处理,和/或第一时段可以至少部分基于性能标准来确定。此外,在某些情况下,该一个或多个处理器可以被进一步配置为执行该多个指令,以至少能够对数据对象进行修改。
根据至少一个示例,计算机可读存储器可以存储指令,这些指令在由一个或多个处理器执行时使得该一个或多个处理器:初始化对与用户关联的业务事件数据的第一连续查询以在时间间隔内收集第一结果;将第一结果作为数据对象存储于存储器内;至少部分基于触发的接收而将数据对象的第一结果提交给第二连续查询;和/或至少部分基于来自第 二连续查询的第二结果来向用户提供警报。在某些示例中,与用户关联的业务事件数据可以与流或者与流相关的存档关系对应。另外,在某些示例中,第一结果可以基于移动窗口来收集。在某些情况下,移动窗口或时间间隔中的至少一项可以由用户确定。此外,在某些示例中,触发可以指示存储于数据对象内的第一结果的变化。作为选择,可以提供实施上述指令的计算机可读程序。
根据至少一个示例,一种计算机实现的方法可以包括:实施对与用户关联的业务事件数据的第一连续查询以在时间间隔内收集第一结果;将第一结果作为数据对象存储于存储器内;至少部分基于触发的接收来将数据对象的第一结果提供给第二连续查询;提供第一结果或第二结果中的至少一项到可视化的映射,以由用户的用户接口显示;和/或至少部分基于来自第二连续查询的第二结果来给用户提供警报。在某些示例中,第一连续查询可以被配置为接收来自流或存档关系的数据。另外,在某些情况下,存档关系可以被配置为和/或包含与流关联的无序时变元组集。在某些方面中,映射可以被配置为提供第一结果或第二结果中的至少一项的变化的实时可视化。此外,在某些示例中,数据对象可以被配置为仅处理“插入”指令。
根据至少一个示例,一种系统可以包含:用于处理对事件流的第一连续查询的装置,以及用于将第一连续查询的结果存储于数据对象内的装置。第一连续查询可以被配置为处理事件流的业务事件数据。另外,该系统还可以包含用于至少部分基于存储于数据对象内的结果来处理第二连续查询的装置。此外,在某些示例中,该系统还可以包含用于审核存储于数据对象内的结果的装置。数据对象可以被配置为流数据对象,并且在某些情况下,流数据对象可以被配置为仅执行插入动作。另外,在某些示例中,该系统还包含用于映射数据对象的可视化和/或准备可视化以由与业务事件数据关联的用户的用户接口显示的装置。在某些示例中,第一连续查询的结果可以在至少第一时段内存储于数据对象内,第二连续查询可以在第一时段结束之前被处理,和/或第一时段可以至少部分基于性能标准来确定。此外,在某些情况下,该系统还可以包含 用于能够对数据对象进行修改的装置。
在参考下面的说明、权利要求及附图时,前述内容连同其他特征和实施例一起将变得更加清晰。
附图说明
具体实施方式部分参照附图来阐述。在附图中,附图标记的最左侧数字标识该附图标记首次出现于其中的附图。在不同附图中相同附图标记的使用指示相似的或相同的项。
图1是示出根据至少一个示例的用于管理与连续查询关联的子查询和/或链接技术的示例体系结构的简化框图。
图2是示出根据至少一个示例的与本文所描述的连续查询关联的子查询和/或链接技术的管理的至少一些特征的简化框图。
图3是示出根据至少一个示例的与本文所描述的连续查询关联的子查询和/或链接技术的管理的至少一些附加特征的简化流程图。
图4是示出根据至少一个示例的与本文所描述的连续查询关联的子查询和/或链接技术的管理的至少一些附加特征的简化流程图。
图5是示出根据至少一个示例的与本文所描述的连续查询关联的子查询和/或链接技术的管理的至少一些特征的简化处理流程。
图6是示出根据至少一个示例的与本文所描述的连续查询关联的子查询和/或链接技术的管理的至少一些特征的另一个简化处理流程。
图7是示出根据至少一个示例的与本文所描述的连续查询关联的子查询和/或链接技术的管理的至少一些特征的另一个简化处理流程。
图8是示出根据至少一个示例的与本文所描述的连续查询关联的子查询和/或链接技术的管理的至少一些特征的简化处理流程。
图9是示出根据至少一个示例的与本文所描述的连续查询关联的子查询和/或链接技术的管理的至少一些特征的另一个简化处理流程。
图10是示出根据至少一个示例的与本文所描述的连续查询关联的子查询和/或链接技术的管理的至少一些特征的另一个简化处理流程。
图11是示出根据至少一个示例的可以根据与本文所描述的连续查 询关联的子查询和/或链接技术的管理的实施例来使用的系统环境的组件的简化框图。
图12是示出根据至少一个示例的可以根据与本文所描述的连续查询关联的子查询和/或链接技术的管理的实施例来使用的计算机系统的简化框图。
具体实施方式
在下面的描述中,将对各种实施例进行描述。出于解释的目的,本文阐明了具体的配置和细节,以便提供对这些实施例的全面理解。但是,对本领域技术人员而言将会同样明显的是,这些实施例可以在没有这些具体细节的情况下实施。而且,可以省略或简化众所周知的特征,以便不会使所描述的实施例变得晦涩难懂。
在某些示例中,可以提供支持具有一个或多个连续子查询(例如,包括但不限于嵌套的子查询、在时间间隔内操作的子查询、查询流数据或关系数据的子查询等)的连续查询语言(CQL)查询(也称为“查询语句”)的机制。例如,在某些情况下,查询可以依靠从流、关系或存档关系收集数据的子查询。该查询然后可以使用子查询的结果来运行。另外,在某些示例中,可以提供支持查询和/或数据对象(DO)的链接(也称为“菊花链”)的机制。例如,连续查询可以收集来自流或关系的数据并将该数据存储于数据对象内。数据对象可以是可更新的,可以被分析,和/或被显示。还可以对数据对象执行附加的审核。另外,在某些示例中,附加的连续查询可以依靠DO。
连续数据流(也称为事件流)可以包含可以是连续的或本质上没有明确终点的无界的数据流或事件流。在逻辑上,事件流或数据流可以是数据元素(也称为事件)的序列,每个数据元素都具有关联的时间戳。连续事件流在逻辑上可以表示为元素包或元素集(s,T),其中“s”代表数据部分,而“T”在时域中。“s”部分一般称为元组或事件。因而,事件流可以是带时间戳的元组或事件的序列。
在某些方面中,与流中的事件关联的时间戳可以等于时钟时间。但 是,在其他示例中,与事件流中的事件关联的时间可以由应用领域定义,并且可以不对应于时钟时间,而是可以改由例如序列数字来表示。因此,与事件流中的事件关联的时间信息可以由数字、时间戳或者表示时间概念的任何其他信息表示。对于接收输入事件流的系统,事件按照时间戳递增的顺序到达系统。可能有多个事件具有相同时间戳。
在某些示例中,在事件流中的事件可以表示某些世间(worldly)事件的发生(例如,当温度传感器的值改变为新值时,当股票代号的价格改变时),并且与事件关联的时间信息可以指示由数据流事件表示的世间事件发生的时间。
对于经由事件流接收到的事件,与事件关联的时间信息可以被用来确保事件流中的事件按照时间戳的值递增的顺序到达。这可以使在事件流中接收到的事件能够基于它们所关联的时间信息来排序。为了能够进行该排序,时间戳可以按照非递减的方式与事件流中的事件关联,使得后生成的事件具有比先生成的事件更晚的时间戳。作为另一个示例,如果序列数字正被用作时间信息,则与后生成的事件关联的序列数字可以大于与先生成的事件关联的序列数字。在某些示例中,多个事件可以与同一非时间戳或序列数字关联,例如,当由数据流事件表示的世间事件同时发生时。属于同一事件流的事件一般可以按照由关联的时间信息赋予事件的顺序来处理,先前的事件在后面的事件之前处理。
与事件流中的事件关联的时间信息(例如,时间戳)可以由流的源来设定,或者作为选择,可以由接收流的系统来设定。例如,在某些实施例中,可以在接收事件流的系统上保持心跳,并且与事件关联的时间可以基于通过该心跳测得的事件到达系统的时间。在事件流中的两个事件可以具有相同的时间信息。应当注意,虽然时间戳排序要求对于一个事件流是特定的,但是不同流的事件能够任意交错。
事件流具有关联的模式(schema)“S”,该模式包含时间信息以及一个或多个命名属性的集合。属于特定事件流的所有事件都符合与该特定事件流关联的模式。因此,对于事件流(s,T),该事件流可以具有像(<时间戳>,<属性>)一样的模式“S”,其中<属性>表示模式的数 据部分,并且能够包含一个或多个属性。例如,股票行情收报机(stock ticker)事件流的模式可以包含属性<股票代号>和<股票价格>。经由这样的流接收到的每个事件都将具有时间戳和这两个属性。例如,股票行情收报机事件流可以接收下列事件及关联的时间戳:

(<时间戳_N>,<NVDA,4>)
(<时间戳_N+1>,<ORCL,62>)
(<时间戳_N+2>,<PCAR,38>)
(<时间戳_N+3>,<SPOT,53>)
(<时间戳_N+4>,<PDCO,44>)
(<时间戳_N+5>,<PTEN,50>)

在上述流中,对于流元素(<时间戳_N+1>,<ORCL,62>),事件为具有属性“股票代号”和“股票价值”的<ORCL,62>。与该流元素关联的时间戳是“时间戳_N+1”。因而,连续事件流是事件的流(a flow of events),每个事件都具有相同系列的属性。
正如已经提到的,流可以是CQL查询可以作用于其上的主要数据源。流S可以是元素包(也称为“多重集”)(s,T),其中“s”为S的模式,而“T”在时域中。另外,流元素可以是能够表示为带时间戳的元组插入的序列的元组-时间戳对。换言之,流可以是带时间戳的元组的序列。在某些情况下,可能有多个元组具有相同时间戳。并且,输入流的元组可以被要求按照时间戳递增的顺序到达系统。作为选择,关系(也称为“时变关系”,但不要与“关系型数据”混淆,“关系型数据”可以包含来自关系型数据库的数据)可以是从时域到模式R的无界元组包的映射。在某些示例中,关系可以是无序的时变元组包(即,瞬时关系)。在某些情况下,在每个瞬间,关系可以是有界集。它同样能够表示为带时间戳的元组的序列,该序列可以包括插入、删除和/或更新,以采集关系的变化状态。类似于流,关系可以具有关系的每个元组可以符合的固定模式。此外,如同本文所使用的,连续查询一般能够处理流 和/或关系的数据(即,对其进行查询)。另外,关系还可以参考流的数据。
在某些示例中,商业智能(BI)可以帮助按照特定的间隔(例如,按照周间隔等)来驱动和优化业务运营。与以数据为中心的传统的BI系统不同,以活动为中心的新型系统可以包含操作型商业智能、实时商业智能或操作型智能(OI)。操作型智能通常包括下列组件——业务活动监控(BAM)、BPM和复杂事件处理(CEP),因为它被用来实时地监控业务活动。例如,BI可以集中于历史数据的周期性查询。正因如此,它可以具有后顾型焦点。但是,与BI结合的OI系统(例如,BAM/CEP/BPM)可以被放置于操作型应用内,并且它因此可以从单纯的策略分析工具扩展到业务运营的第一线。正因如此,BAM同样可以被配置为分析事件流并实时地计算汇总。
在某些示例中,连续查询语言服务(CQ服务)可以被配置为扩展BI分析服务器,以处理连续查询并能够实时警报。在某些方面中,CQ服务可以提供与BI分析服务器和CQL引擎的集成。仅仅作为示例,BI分析服务器可以将连续查询委托给CQ服务,并且CQ服务还可以充当CQL引擎的逻辑数据库(DB)网关。这样,CQL引擎可以利用BI分析服务器的分析能力及语义建模。在某些示例中,CQL引擎可以被包装于CQ服务内。
在某些示例中,CQ服务尤其可以提供下列功能:
●作为CQL引擎网关用于BI分析服务器的远程服务;
●事件源/接收器适配器;
●由逻辑SQL加CQL扩展来生成数据定义语言(DDL);
●为所有类型的连续查询以及实施方式选择提供统一模型;
●保持元数据并支持可重启性;以及
●高可用性和可伸缩性支持。
另外,在某些示例中,OI是实时动态的业务分析的形式,该业务分析能够提供对业务运营的可见性和洞察力。OI通常链接至BI或实时BI或者与其比较,其意义在于两者均可帮助理解大量的信息。但是存 在某些基本的区别:OI可以主要以活动为中心,然而BI可以主要以数据为中心。另外,OI可以更适合于检测及响应发展状况(例如,趋势与模式),与BI不同,BI在传统上可以用作识别模式的事后和基于报告的方法。
在某些示例中,业务事件分析与监控(BEAM)系统可以包含CQL引擎以处理和/或接收运行中的数据。例如,CQL引擎可以是配置为查询或处理传入的实时信息(例如,BI或OI)的内存(in-memory)数据库引擎。CQL引擎可以利用或了解时间语义,并且被配置为允许定义待处理的数据窗口。在某些情况下,使用CQL引擎可以涉及总是运行对传入数据的查询。
在某些方面中,CQL引擎可以包含成熟的查询语言。正因如此,用户可以根据查询来指定计算。另外,CQL引擎可以被设计用于:优化存储器、使用查询语言特征、运算符共用、丰富的模式匹配、丰富的语言结构等。另外,在某些示例中,CQL引擎可以处理历史数据和流数据两者。例如,用户能够设定查询,以在加州的销售量达到某个目标以上时发送警报。因而,在某些示例中,警报可以至少部分地基于历史销售数据,以及传入的现场(即,实时)销售数据。
在某些示例中,CQL引擎或者下文所描述的概念的其他特征可以被配置为将历史背景(即,仓库数据)与以实时方式传入的数据结合。因而,在某些情况下,本公开内容可以描述数据库存储的信息与运行中信息的边界。数据库存储的信息和运行中信息两者都可以包含BI数据。正因如此,在某些示例中,数据库可以是BI服务器,或者它可以是任何类型的数据库。此外,在某些示例中,本公开内容的特征可以在用户不知道如何编程或编写代码的情况下使上述特征能够实现。换言之,这些特征可以提供于特征富集的用户接口(UI)中,或者按照允许非开发人员实现历史数据与实时数据的结合的其他方式来提供。
另外,在某些示例中,本公开内容可以描述仪表盘定制和/或个性化。CEP引擎可以被配置为包含对实时信息和历史数据的高级的连续分析。业务流程模型(BPM)可以包括执行战略与流程的模型驱动型执 行,被定义为BPM标注(BPMN)模型。关键结果指标(KRI)可以被用来告知用户它们已经如何以某一角度或者关键成功因素(CSF)来完成。例如,它可以提供许多动作的结果,它可以覆盖比关键性能指标(KPI)更长的时段,和/或它可以按照月份或季度周期来回顾。结果指标(RI)可以被用来告知用户它们已经完成了什么。例如,它可以总结活动和财务性能度量,和/或它可以每天、每周或每月更新。此外,在某些方面中,性能指标(PI)可以被用来通知用户要采取什么行动或者至少提出建议。另外,它可以包含非财务信息,并且在某些情况下可以补足KPI。
在某些方面中,PI可以24/7、每天、每周地或者不定期地被回顾。在某些情况下,KPI可以包含对于组织的当前及未来的成功最关键的度量集。某些KPI可以每天或者甚至是24/7进行更新,而其余信息可以每周进行报告。KPI通知的示例可以包括但不限于:飞机或其他服务车辆是否已延误,或者挂车是否已在前一天在重量不足的情况下为配送公司发出(例如,用于寻求卡车的更佳利用)。
在某些示例中,用于管理实时业务事件的实施例可以包括将业务活动监控、复杂事件处理和商业智能(例如,无缝地)集成起来,以提供复杂的且实时的操作型信息集。另外,业务事件的连续监控可以被用来获得业务过程和/或工作流的实时可见性。在某些示例中,OI可以用传统的商业智能来补充。正因如此,操作型智能与BI相比可以给出对业务运营更深入的洞察,而如同上文所提及的,BI是更偏向以数据为中心的。例如,OI可以进到内部以按照实时的方式确定业务进展如何。然而BI可能更类似于数据仓库(例如,指示事后的信息)。
KPI的示例可以包括实时调用处理时间。例如,相对于每周或每天,用户可以将实时KPI设定为15分钟。正因如此,可以使用户能够立即采取行动。此外,通过将来自BI仓库的历史(以数据为中心的)信息与当前的实时数据耦合,用户可以能够观察到业务在当前的状态下运行情况如何(包括连续更新的流数据)。在某些示例中,实时信息的高级连续分析可以包含于数据处理内。另外,增加的计算可以被执行, 并且可以包含于显示器、可视化、用户接口(UI)等内。
在某些示例中,可以支持子查询。另外,CQL和/或CQL引擎可以支持嵌套的和/或其他类型的查询聚合,并且可以提供增加的计算。此外,在某些示例中,还可以使用缓变维度表;CQL引擎仍然可以执行高效的处理。在一个示例中,在将FACT表与缓变维度表连接的同时,一个或多个连接运算符可以不被实例化。这样,可以大大减少存储器的使用。
在某些方面中,增加的计算可以包括不针对特定的查询而将所有关系型源(即,仓库数据)和/或流数据放入存储器中。例如,对于由查询使用的或参考的某些维度(例如,与软件产品关联的数据源),数据可以不用经常改变(例如,大概每月一次)。正因如此,可能没有必要对于每次查询都将整个源加载到存储器中。所以,在某些情况下,数据可以作为维度表来导入。然后,在维度表发生变化的任何时候,异常都可以在运行时被抛出。在某些情况下,异常可以由CQ服务来接收并处理。然后,至少部分基于关于该异常已被知晓和被理解的指示,CQ服务可以重新发送查询。换言之,异常可以被格式化为指示CQ服务该查询应当被重新发送以便考虑维度的变化的特殊异常。否则,其他相关因素、流、数据或查询树分支可能不是精确的或者不与维度表的数据同步。在某些示例中,子查询可以是配置为针对流或关系进行查询的连续子查询。
在某些示例中,至少部分基于查询树,父运算符(例如,连接或者可以依赖来自查询树的多个其他运算符或分支的数据的某些其他运算符)可以负责启动查询的生成和/或执行。也就是,有状态的运算符可以通过加载适当的关系型数据、流数据或关系数据来初始化该状态。另外,父运算符可以委托给子运算符之一,但不委托给其他子运算符(至少部分基于哪些运算符包含维度表)。此外,一旦知道了运算符之一包含维度(例如,至少部分基于与关系型源关联的指示它是维度的元数据),父运算符就可以被配置为侦听维度表的变化。如同所指出的,当维度表的变化被发现时,可以提供异常或其他指示以通知CQ服务来重 启查询。作为选择,可以将维度表变化直接通知给父运算符;因而,父运算符发信号通知它应当重新发送和/或重新初始化查询。
另外,在某些示例中,可以提供查询和/或DO链接。回写DO可以是专用的数据对象,并且它能够被配置为持久的。它可以被用来存储CQL查询的输出事件,因而它能够被分析/被审核,或者它能够以菊花链的方式用于让另一个CQL置于其上。在某些示例中,第一查询可以针对DO来运行,并且将输出事件插入回写DO内;然后,用户能够出于审核的目的来检查回写DO,将其映射到可视化,或者创建(author)针对回写DO的另一个查询。
在某些方面中,回写DO可以用于链接查询或者绑定于可视化。回写DO可以是(存档)流/存档关系DO。另外,在某些示例中,带有子查询的复杂查询能够分解成两个单独的查询。菊花链查询能够通过以下操作来完成:
(Ql→WB DOl→Q2→WB DO2)
●在本示例中,查询1至少部分基于移动窗口(例如,过去60分钟、30分钟等的移动平均执行时间)在时间间隔的基础上(例如,每10分钟、每20分钟等)收集数据。
●查询的输出可以进入DO1内,并且变化数据控制(CDC)可以开始生效并将增量(delta)发送到CQL引擎内以由Q2消耗(例如,模式检测)。
●如果Q2是运行模式匹配查询(即,对于在行中至少执行几次趋势每次持续上升10%),则它可以向运算符输出警报。
以这种方法,Q1不需要将事件保留于存储器中;相反,它可以被配置为可以每几分钟(例如,10或更多)就运行的战术性查询。这允许连续查询的复杂拓扑结构在无需重新部署现有查询的情况下被动态地创建,并且能够被容易地扩展。
在某些示例中,连续查询可以被注册一次,并且它可以长时间运行(至少直到被指示结束)。该连续查询可以接收传入的事件,并且执行存储器中的计算(例如,模式匹配、聚合函数增量、移动平均计算 等)。它同样可以具有范围(移动窗口)和滑动(输出节流阀)的概念。例如:
SELECT customerLocation Id,
customerStatus,
MAX(callProcessingtime)AS MAXcallProcessingTime
FROM CALLCENTER_TEST1.CALLCENTER_FACT[RANGE60minute ON callClosedTime SLIDE 10minute]
随着范围增大,存储器占用空间(footprint)会变大,因为它必须将所有这些事件保留在存储器中。当事件超过范围大小时,这些事件会失效(expire)。随着查询数量增加,存储器占用空间会变得更大。至少由于这些原因,利用回写DO和链接查询可以优化存储器使用。
上文和下文所描述的技术可以按照多种方式以及在多种背景下实现。如在下文更详细描述的,参考附图提供若干示例实施方式和背景。但是,下面的实施方式和背景只是众多实施方式和背景中的一些。
图1示出了可以实现用于在CQL内管理子查询和/或查询链接的技术的简化示例系统或体系结构100。在体系结构100中,一个或多个用户102(例如,账户持有者)可以使用用户计算设备104(1)-(N)(共同称为“用户设备104”)经由一个或多个网络108来访问一个或多个服务提供商计算机106。在某些方面中,服务提供商计算机106同样可以经由网络108与一个或多个流数据源计算机110和/或一个或多个数据库112通信。例如,用户102可以使用服务提供商计算机106来访问或管理流数据源计算机110和/或数据库112的数据(例如,查询可以针对110、112之一或两者来运行)。数据库112可以是关系型数据库、SQL服务器等,并且在某些示例中可以代表用户102管理历史数据、事件数据、关系、存档关系等。另外,数据库112可以接收或存储由流数据源计算机110提供的数据。在某些示例中,用户102可以使用用户设备104通过提供对数据(例如,历史事件数据、流事件数据等)的查询(也称为"查询语句")或其他请求来与服务提供商计算机106交互。然后,这样的查询或请求可以由服务提供商计算机106执行,以处理数据 库112的数据和/或流数据源计算机110的传入数据。此外,在某些示例中,流数据源计算机110和/或数据库112可以是与服务提供商计算机106关联的集成分布式环境的一部分。
在某些示例中,网络108可以包括诸如线缆网络、因特网、无线网络、蜂窝网络、内联网系统和/或其他专用网络和/或公共网络之类的多个不同类型的网络中的任一种或者它们的组合。虽然所示出的示例表示用户102经由网络108来访问服务提供商计算机106,但是所描述的技术可以同等地应用于其中用户102经由一个或多个用户设备104通过固定电话、通过公用电话亭或者按照任何其他方式与一个或多个服务提供商计算机106交互的情形中。还应当注意,所描述的技术可以应用于其他客户端/服务器布置(例如,机顶盒等)中,以及应用于非客户端/服务器布置(例如,本地存储的应用等)中。
用户设备104可以是任何类型的计算设备,比如但不限于移动电话、智能电话、个人数字助理(PDA)、笔记本电脑、台式电脑、瘦客户端设备、平板电脑等。在某些示例中,用户设备104可以经由网络108或者经由其他网络连接与服务提供商计算机106通信。此外,用户设备104还可以被配置为提供用于请求待处理的数据库112的数据(或其他数据存储)的一个或多个查询或查询语句。
在某些方面中,服务提供商计算机106还可以是任何类型的计算设备,比如但不限于移动设备、台式设备、瘦客户端设备和/或云计算设备,比如服务器。在某些示例中,服务提供商计算机106可以经由网络108或者经由其他网络连接与用户设备104通信。服务提供商计算机106可以包括一个或多个服务器,可能被布置为集群中的服务器机群或者彼此不关联的个体服务器。这些服务器可以被配置为执行或托管本文所描述的特征,包括但不限于,本文所描述的布尔型谓词的快速路径评价。另外,在某些方面中,服务提供商计算机106可以被配置为包含流数据源计算机110和/或数据库112的集成分布式计算环境的一部分。
在一种说明性的配置中,服务提供商计算机106可以包含至少一个存储器136以及一个或多个处理单元(或处理器)138。处理器138可 以适当地以硬件、计算机可执行指令、固件或者它们的组合来实现。处理器138的计算机可执行指令或固件的实现方式可以包括以任意合适的编程语言编写的计算机可执行的或机器可执行的指令,以执行所描述的各种功能。
存储器136可以存储可加载到处理器138上并可由其执行的程序指令,以及在这些程序的执行期间生成的数据。依据服务提供商计算机106的配置和类型,存储器136可以是易失性的(例如,随机存取存储器(RAM))和/或非易失性的(例如,只读存储器(ROM)、闪存等)。服务提供商计算机106或服务器还可以包含附加存储装置140,该存储装置140可以包括可移动的存储装置和/或不可移动的存储装置。附加存储装置140可以包括但不限于磁存储装置,光盘和/或磁带存储装置。硬盘驱动器以及它们关联的计算机可读介质可以提供计算机可读指令、数据结构、程序模块以及用于计算设备的其他数据的非易失性存储。在某些实现方式中,存储器136可以包含多种不同类型的存储器,例如,静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或ROM。
存储器136、附加存储装置140(可移动的和不可移动的两种)全都是计算机可读存储介质的示例。例如,计算机可读存储介质可以包括按照用于诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的存储的任何方法或技术来实现的易失性的或非易失性的、可移动的或不可移动的介质。存储器136和附加存储装置140全都是计算机存储介质的示例。
服务提供商计算机106还可以含有通信连接142,该通信连接142允许身份接口计算机120与在网络108上的所存储的数据库、另外的计算设备或服务器、用户终端和/或其他设备通信。服务提供商计算机106还可以包含输入/输出(I/O)设备144,例如,键盘、鼠标、手写笔、语音输入设备、触摸输入设备、显示器、一个或多个扬声器、打印机等。
更详细地,至于存储器136的内容,存储器136可以包含用于实现 本文所公开的特征的操作系统146以及一个或多个应用程序或服务,这些应用程序或服务至少包括子查询模块148和/或查询链模块149。如同本文所使用的,模块可以指的是由作为服务的一部分、由服务器或服务器集群执行的编程模块。在这种特定情形中,模块可以由作为服务提供商计算机106的一部分的服务器或服务器集群来执行。在某些示例中,子查询模块148可以被配置为接收、识别、生成或提供可以含有子查询152、154(例如,连续和/或战术性子查询)的一个或多个连续查询150。例如,连续查询150(例如,配置为针对流或关系来运行的查询)可以包含该查询位于其上的(即,它所依赖的)一个或多个子查询152、154或者嵌套的子查询154。更具体地,连续查询150可以包含子查询152,该子查询152进而可以包含子查询154(例如,嵌套于第一子查询152内)。如若需要,其他情况也是可能的,例如,连续查询150可以包含没有嵌套的子查询154的两个或更多个子查询152等。
在某些示例中,CQL引擎可以支持一个或多个查询经由视图的机制嵌套于和/或嵌入另一个查询之内。例如,下列CQL代码可以被用来配置包含子查询的此类查询:
create view sales_vl as select prodid,sales as sales from sales_stream[RANGE 24hours];
create query q0as select prodid,sum(sales)from sales_v1group by prodid;
在某些方面中,这种方法可以提供模块化和重用。另外,它还可以在视图sales_v1上创建查询q0的依赖关系。所以,在某些情况下,视图sales_v1的定义可以不改变,只要仍存在依赖它的连续查询。即使是新的视图定义为一致(即,比如说,项目列表在项目数量、数据类型和项目位置方面不改变)的情形,它也可以请求动态地替换每个查询。作为选择或除此之外,对于设定的查询,可以使用非标准的标注法(例如,<view>UNION<view>)。这种类型的句法可以不是ANSI兼容的;但是,CQ服务和/或CQ引擎可以被配置为处理它。此外,在某些方面中,某些查询可以通过工作流程步骤的序列来生成和/或在运行中 被销毁。在此类情形中,视图机制实际上可能是不可行的,因为它要求客户端知道依赖关系。
对嵌套的子查询(也称为内联查询(inline query)或子选择)的支持可以通过在源关系/流被指定的查询的FROM子句中指定子查询来实现。子查询支持还将被扩展以设定操作查询。下列的CQL代码集示出了至少三个非限制性的示例:
示例1:
本示例示出了嵌入另一个select-from-where(SFW)查询内的SFW查询:
CREATE QUERY q0ASSELECT prodid,sum(sales)FROM(SELECT prodid AS prodid,sales AS sales FROM sales_stream[RANGE 24HOURS])AS foo
GROUP BY prodid;
示例2:
本示例示出了具有一组操作的子查询。利用子查询特征,可以指定定义视图的查询以作为集合操作的操作数内联,如下所示(与<view1>UNION ALL<view2>不符):
(SELECT c1,c2,c3FROM S0[RANGE 5HOURS])UNION ALL
(SELECT c1,c2,c3FROM S1[RANGE 5HOURS])
示例3:
本查询示出了SFW查询、集合操作查询和子查询如何能够以强有力的方式结合起来,以组成查询:
CREATE QUERY q0AS
SELECT*
FROM
(
(SELECT c1,c2,c3FROM S0[RANGE 5HOURS])
UNION ALL
(SELECT c1,c2,c3FROM S1[RANGE 5HOURS])
)AS foo
GROUP BY c1
ORDER BY c1
在某些示例中,在含有表达式的子查询的SELECT子句(或项目列表)中的每个项目可以显式地使用别名。这类似于具有其中项目列表具有表达式的视图定义。像这样的表达式可能没有名称,所以显式地使用<expr>AS<name>命名它们或者给它们起别名可能是有用的。另外,可能没有必要在SELECT*FROM<source>、SELECT<sourcealias>.*FROM<source>AS sourcealias或者SELECT c1,c2,c3FROM<source>中给项目列表起别名,其中ci指的是源的属性(该源能够是基础流、关系或者另一个子查询)。这可以隐含地得出(在*标注的情形中),或者在每个表达式仅指代基础属性时可以是很明显的。对于SFW查询(含有select-from-where的查询),子查询自身还可以被起别名。但是,在某些示例中,不指定显式别名可能是错误的。对于集合操作,在某些情况下,子查询也可以不起别名。但是具有表达式的项目项会被要求起别名。左侧的查询的选择项的名称可以用作整个集合操作的名称。在某些示例中,子查询可以仅在查询的FROM子句中得到支持。但是,在其他示例中,子查询可以在查询的任意子句中得到支持。此外,在某些情况下,对嵌套的深度没有理论上的限制。但是嵌套量会受到主机计算系统的存储器的可用量影响。
此外,在某些示例中,SFW查询可以是具有许多可能的子句以及它们的组合的很全面的构造。这些子句中的每个子句能够引用子查询的“属性”,方式与它们针对关系和流所进行的方式几乎一样(例如,在FROM子句中)。可以支持子查询的子句包括但不限于:GROUP BY、ORDER BY、MATCH_RECOGNIZE、JOIN、SELECT、WHERE、ARCHIVED RELATION和/或VALUE WINDOW。
另外,在某些示例中,查询链模块149可以被配置用于使能查询链和/或查询聚合。例如,查询链156可以包含第一查询(例如,连续查询)158、数据对象(例如,回写DO)160和/或第二查询(例如,另 一个连续查询)162。如同上文所提到的,在某些方面中,第一查询158可以针对流、关系或数据库进行查询,并且还可以将结果存储于数据对象160内。后续的查询(例如,第二查询162)然后可以针对DO 160进行查询,以获得第二结果。
如同上文所提到的,在某些示例中,回写数据对象可以是专用DO,并且它能够被配置为持久的。它可以被用来存储CQL查询(例如,第一查询158)的输出事件,因而它能够被分析和/或被审核,或者它能够以菊花链方式用于让另一个CQL查询(例如,第二查询162)置于其上。第一查询158可以针对初始DO(例如流、关系、数据库、另一个数据构造等)来运行,并且可以将输出事件插入回写DO 160内;然后用户能够出于审核的目的而检查回写DO 160,将其映射到可视化,或者选择创建针对回写DO 160的另一个查询162。
在至少一个非限制性的示例中,可以存在性能DO(Performance DO)。另外,查询可以针对性能DO来写入,以按照某一间隔计算特定类型的处理的移动平均处理时间,并将结果输出到另一个回写DO“Avg Processing Time”内。现在能够针对该DO来构造柱状图,以示出历史值。作为选择或除此之外,另一个模式匹配查询能够针对该回写DO来写入,以执行趋势分析。对于趋势分析查询,首要的要求可以是:数据源是回写DO所属的只可以是插入的流数据源。因而,在某些情况下,回写DO可以总为流DO(即,仅插入,无删除、更新插入(upsert)或更新),并且能够被配置为持久的或者不持久的。当未配置为持久的时,不创建flex表,并且“插入”事件可以通过存储器中的Persistence来处理并传递给CQ服务。
具有数据架构师角色的用户102能够创建回写DO。回写DO可以出现于连续查询模板等中。作为可选步骤,用户102还可以被允许选择回写数据对象。用户102还能够将选择列表映射到回写DO和/或正如大多数其他DO那样来修改回写DO。在回写DO被定义之后,当CQL查询被发出(fire)时,输出事件可以经由Java消息服务(JMS)工具等发送给Persistence。在某些情况下,它可以利用JMS适配器的应用 编程界面(API),以将插入事件发送给服务提供商计算机106的Persistence工具。
在某些示例中,能够通过将复杂的CQL查询转换成其间具有回写DO的两个单独查询而获得显著的性能节省。例如,注意,在下列子查询部分中,查询正在运行连续查询(例如,对存档关系),该连续查询计算在过去(移动)60分钟内关闭的调用的最大调用处理时间,并且每10分钟就输出结果。在该查询中,在过去60分钟内的所有事件都被存储于存储器内,并且它们随时间推移分别失效。所以如果在每60分钟内就有20,000个事件到来,则CQL引擎在任何给定的时间都将在存储器内存储20,000个事件,并且每次有事件进入系统时都将重新计算最大处理时间。最后,按照每10分钟的间隔,最大处理时间将作为插入流来输出。另外,还要注意,在查询的第二部分中,查询正在吸收来自子查询的输出,并且它执行模式匹配,在该模式匹配中,它将检测上升趋势(当前的度量比上一度量大7%,并且这种模式在一个行内已经被检测到7次)。
CREATE QUERY CALLCENTER_TEST1.trendingQueryl as


)AS q

注意,有大量存储器正由第一查询消耗。相反,以回写DO和CQL预定(Scheduled)查询能够实现下列功能(例如,因为第一查询只是每10分钟才输出,因此能够重写该查询):
CREATE QUERY CALLCENTER_TEST1.trendingQueryl as

在这种情况下,CQL将会每10分钟就运行该查询,并且在运行该查询时没有存储器被占用。然后,该查询的输出进入基于流的回写DO之内。在该时刻,第二查询(用于趋势的模式匹配)然后被应用于这个中间回写DO。以此方法,仅有的存储器消耗是在趋势查询上,该趋势查询记录了来自回写DO开始的最近7个事件。另外,子查询模块148、查询链模块149和/或服务提供商计算机106的操作的若干示例将在下文更详细地描述。
可以存在于服务提供商计算机106和/或用户设备104内的计算机存储介质(该计算机存储介质同样可以是非瞬时的)的另外类型可以包括但不限于:可编程的随机存取存储器(PRAM)、SRAM、DRAM、RAM、ROM、电可擦除可编程只读存储器(EEPROM)、闪存或其他 存储器技术、压缩盘只读存储器(CD-ROM)、数字通用盘(DVD)或其他光学存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储器件,或者能够用来存储所需信息的且能够由服务提供商计算机106和/或用户设备104访问的任何其他介质。上述存储介质中的任意项的组合同样应该包含于计算机可读介质的范围之内。
作为选择,计算机可读通信介质可以包括:计算机可读指令、程序模块,或者在数据信号(例如,载波或其他传输)内传输的其他数据。但是,如同本文所使用的,计算机可读存储介质不包括计算机可读通信介质。
图2示出了可以用以描述在存在子查询的情况下连续查询的管理的特征的简化框图200。如同上文所提到的,在某些示例中,子查询模块148可以由图1的服务提供商计算机106执行,并且可以包含依靠一个或多个子查询152的一个或多个连续查询150。在一个非限制性的示例中,连续查询150可以依赖子查询152的结果。正因如此,子查询可以首先针对可以由图1的流数据源计算机110提供或管理的流202来查询。但是,在其他示例中,子查询152可以针对关系、数据对象或数据库(例如,关系型数据库等)来查询。另外,在某些示例中,逻辑计划可以至少部分基于子查询152来生成或建立。一旦子查询具有了至少一个结果,连续查询150就可以使用子查询152的结果来针对流202进行查询。这样,流202或另一个流的数据可以在不了解某些实际键的情况下被访问。例如,子查询152可以检索能够由连续查询150用作针对流202的查询的键的结果。此外,在某些方面中,描述子查询152的逻辑(或物理计划)可以(例如,在逻辑层)与至少部分基于连续查询150的计划合并。例如,在连续查询150(即,在本示例中的父查询)预料到FROM源(例如,流、关系等)的情形中,可以包含用于实现子查询152的逻辑计划。正因如此,在逻辑层之上,可能不能区分连续查询150是否曾经包含任意子查询152。这样,包含同一子查询152的连续查询150可以自动共享相同的计划运算符。
此外,如同上文所提到的,在某些示例中,可以使用缓变维度表 (例如,当子查询152针对关系型源进行查询时)。关系型源可以提供与流数据相对的历史数据和/或仓库数据。正因如此,通过子查询152获得的数据中的一些不会经常改变。然而,当数据改变时,连续查询150可以请求子查询152被重新实现以便更新或刷新连续查询150将要依赖的结果。
图3示出了根据一个示例的、示出用于在存在子查询的情况下实现连续查询的管理的一个或多个技术300的简化流图。在图3中,服务提供商计算机106被再次示为经由网络108与用户102和/或用户设备104通信。另外,在某些示例中,服务提供商计算机106可以包括一个或多个流/关系计算机302或者与其通信(例如,经由网络108)。虽然在图3中按照特定的顺序(包括任意的序列编号)示出了技术300,但是应当理解,没有特定的顺序是必要的,并且技术300的一个或多个步骤或部分可以被省略、被跳过和/或重新排序。在至少一个非限制性的示例中,以上参照图1和2进行描述的一个或多个服务提供商计算机106可以接收来自用户设备104的具有子查询的连续查询。连续查询可以被配置为请求对数据库数据(例如,存储于数据库内的数据)、流事件数据(例如,实时接收自流/关系计算机302的数据)和/或关系数据(例如,接收自流/关系计算机302的关系)的处理(例如,检索、存储、删除等)。
另外,在某些示例中,服务提供商计算机106还可以通过针对流/关系计算机302的关系或流来查询在连续查询内找到的子查询来处理它。但是,在其他示例中,处理子查询可以包括生成用于实施子查询的逻辑和/或物理计划。这样,直到处理连续查询时才针对数据源处理子查询自身。然后,当逻辑计划被生成时,逻辑计划可以与为实施连续查询而生成的计划合并。例如,如同上文所提到的,逻辑计划可以被包括在连续查询的FROM语句中。作为响应,当针对数据源(例如,关系、流或其他源)来施加连续查询时,服务提供商计算机106可以接收至少部分基于子查询的数据,或者与子查询关联的数据可以在合并之后接收。正如已经提到的,连续查询然后可以针对关系或流来施加,但是 包含经由子查询接收到的结果。正因如此,连续查询可以至少部分基于子查询结果来针对流/关系计算机302的流或关系进行查询。另外,在某些示例中,服务提供商计算机106然后可以接收来自流/关系计算机302的至少部分基于连续查询参数和子查询结果的数据。此外,服务提供商计算机106然后可以将结果提供给用户设备104。另外,警报还可以被提供给用户设备104和/或可视化信息。
图4示出了可以用以描述用于链接连续查询的机制的特征的简化框图400。如同上文所提到的,在某些示例中,查询链模块149可以由图1的服务提供商计算机106执行,并且可以包含一个或多个连续查询402、404和/或一个或多个数据对象406。在一个非限制性的示例中,第二连续查询404可以依赖数据对象406或者针对数据对象406进行查询。但是,DO 406可以含有经由第一连续查询402获得的结果。正因如此,第一连续查询402可以首先针对可以由图1的流数据源计算机110提供或管理的流408进行查询。但是,在其他示例中,第一连续查询402可以针对关系、数据对象或数据库(例如,关系型数据库等)进行查询。一旦第一连续查询402具有至少一个结果,该数据就可以被存储于DO 406内。在某些示例中,DO 406可以是流DO(例如,仅使用插入子句),或者它可以是任何类型的DO。
一旦由第一连续查询402收集的(即,获得的)数据被存储于DO406内,用户或其他实体就可以访问DO 406。例如,DO 406的数据可以被审核,被显示,被编辑或被管理。正因如此,DO 406的数据可以被提供给用户接口410。另外,后续的查询(例如,第二连续查询404)可以随后针对DO 406进行查询。这样,多个连续查询(或战术性查询)可以被链接在一起,其中后续的查询经由DO 406依靠或依赖于之前的查询。
图5-7示出了示出在存在子查询的情况下用于实现本文所描述的连续查询的管理的各个过程500、600和700的示例流程图。这些过程500、600、700被示为逻辑流程图,这些逻辑流程图的每个操作都代表能够以硬件、计算机指令或者它们的组合来实施的一系列操作。在计算 机指令的情形中,操作代表存储于一个或多个计算机可读存储介质上的计算机可执行指令,这些指令在由一个或多个处理器执行时执行所述的操作。一般地,计算机可执行指令包括用于执行特定的功能或者实现特定的数据类型的例程、程序、对象、组件、数据结构等。操作被描述的顺序并非旨在作为限定来理解,并且任何数量的所述操作都能够按照任意顺序组合和/或并行地以实现这些过程。
另外,这些过程中的某些项、任意项或所有项可以在配置有可执行指令的一个或多个计算机系统的控制之下执行,并且可以被实现为在一个或多个处理器上、由硬件或者它们的组合共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)。如同上文所提到的,代码可以例如按照包含可由一个或多个处理器执行的多个指令的计算机程序的形式存储于计算机可读存储介质上。计算机可读存储介质可以是非瞬时的。
在某些示例中,图1-3所示的一个或多个服务提供商计算机106(例如,至少使用图1的子查询模块148)可以执行图5的过程500。过程500可以在502以包括识别包含至少一个子查询(例如,连续子查询或战术性子查询)的连续查询来开始。在某些示例中,过程500还可以包括:在504,处理子查询以获得用于实施该子查询的逻辑计划(例如,该逻辑计划可以包括用于以该子查询针对数据源进行查询的步骤)。在506,过程500还可以包括至少部分基于将逻辑计划与连续查询逻辑计划进行合并来处理连续查询(例如,包含子查询的查询)。例如,在连续查询的FROM语句(或者用于实施连续查询的逻辑计划)处,可以包含逻辑子查询计划。在某些方面中,这可以包括使用来自子查询的第一结果针对数据源(例如,子查询针对其进行查询的同一数据源或者另一个数据源)进行查询。在508,过程500可以包括将第二结果提供给用户的用户接口。此外,过程500可以在510以包括至少部分基于关于子查询的数据已经改变的指示来重新处理子查询来结束。
图6示出了示出在存在子查询的情况下用于实现本文所描述的连续查询的管理的过程600的示例流程图。图1-3所示的一个或多个服务提 供商计算机106(例如,至少使用图1的子查询模块148)可以执行图6的过程600。过程600可以在602以包括接收包含一个或多个嵌套的子查询的连续查询语句来开始。在某些示例中,具有嵌套的子查询的连续查询可以接收自用户。在604,过程600可以包括处理嵌套的子查询以获得用于实施嵌套的子查询(例如,嵌套的子查询中的至少一个和/或至少最内嵌套的子查询)的逻辑计划。正如已经提到的,处理查询和/或子查询可以包括分别以查询或子查询来查询数据源。另外,在某些示例中,过程600可以在606包括至少部分基于逻辑计划合并(例如,来自嵌套的子查询)来处理连续查询以获得业务事件结果。此外,在608,过程600可以以包括在维度表改变时接收异常来结束。例如,维度表可以定义与子查询的结果关联的属性或列。当底层数据(也就是,连续查询将要依赖的数据)改变时,异常可以通知查询引擎来刷新或重新处理子查询。
图7示出了示出在存在子查询的情况下用于实现本文所描述的连续查询的管理的过程700的示例流程图。图1-3所示的一个或多个服务提供商计算机106(例如,至少使用图1的子查询模块148)可以执行图7的过程700。过程700可以在702以包括接收来自与业务事件数据关联的用户的连续查询语句来开始。在704,过程700可以包括确定连续查询是否包含连续子查询。在某些情况下,当确定连续查询不包含子查询时,过程700可以在705以包括处理连续查询以获得来自流或关系的结果来结束。但是,在其他示例中,在704,可能会确定连续查询确实包含子查询。在本示例中,过程700可以替代地在706包括处理子查询以获得来自流或关系的一组第一结果。在708,过程700还可以包括通过使用该组第一结果和/或流或关系数据来处理连续查询。另外,在710,过程700可以包括跳过运算符的实例化,直到维度表的数据改变。在712,过程700可以包括将该组第一结果中的一部分(不到全部)加载到连续查询内(例如,因为预料数据不会经常改变)。此外,过程700可以在714结束,其中在714,过程700可以包括:当该组第一结果的一个子集的数据改变的可能性较低时,仅加载该子集。
图8-10示出了示出用来实现本文所描述的用于链接连续查询的机制的各个过程800、900和1000的示例流程图。这些过程800、900、1000被示为逻辑流程图,这些逻辑流程图的每个操作都代表能够以硬件、计算机指令或者它们的组合来实施的一系列操作。在计算机指令的情形中,这些操作代表存储于一个或多个计算机可读存储介质上的计算机可执行指令,这些指令在由一个或多个处理器执行时执行所述的操作。一般地,计算机可执行指令包括执行特定的功能或者实现特定的数据类型的例程、程序、对象、组件、数据结构等。操作被描述的顺序并非旨在作为限定来理解,并且任何数量的所述操作能够按照任意顺序组合和/或并行地以实现这些过程。
另外,这些过程中的某些项、任意项或所有项可以在配置有可执行指令的一个或多个计算机系统的控制之下执行,并且可以被实现为在一个或多个处理器上、由硬件或者它们的组合共同执行的代码(例如,可执行指令、一个或多个计算机程序或者一个或多个应用)。如同上文所提到的,代码可以例如按照包含可由一个或多个处理器执行的多个指令的计算机程序的形式存储于计算机可读存储介质上。计算机可读存储介质可以是非瞬时的。
在某些示例中,至少示于图1中的一个或多个服务提供商计算机106(例如,至少使用用作复杂事件处理引擎的至少一部分的图1的查询链模块149)可以执行图8的过程800。过程800可以在802以包括将第一连续查询的结果存储于数据对象内来开始。该结果可以是以第一连续查询针对流或关系进行的查询的结果。在804,过程800可以包括至少部分基于存储于数据对象内的结果来处理第二连续查询。正因如此,第一及第二连续查询可以通过数据对象链接在一起。另外,在806,过程800可以包括审核数据对象的结果。警报可以被提供,和/或在808,过程800可以包括将数据对象中的结果映射到数据可视化。在810,过程800还可以包括准备可视化用于显示。此外,过程800可以在812以包括使得能够对数据对象中的结果进行修改来结束。
图9示出了示出用来实现本文所描述的用于链接连续查询的机制的 过程900的示例流程图。至少示于图1中的一个或多个服务提供商计算机106(例如,使用用作复杂事件处理引擎的至少一部分的图1的至少一个查询链模块149)可以执行图9的过程900。过程900可以在902以包括初始化第一连续查询以在时间间隔内收集第一结果来开始。在904,过程900还可以包括将第一结果存储于数据对象(例如,配置为将连续查询菊花式链接在一起的回写DO)内。在906,过程900可以包括至少部分基于触发来将数据对象的第一结果提交给第二连续查询。另外,在908,过程900可以通过包括至少部分基于来自第二连续查询的第二结果而给用户提供警报来结束。此外,多个链可以通过使用配置为存储之前查询的结果以由下次查询使用的多个不同的数据对象来实现。
图10示出了示出用来实现本文所描述的用于链接连续查询的机制的过程1000的示例流程图。至少示于图1中的一个或多个服务提供商计算机106(例如,使用至少一个用作复杂事件处理引擎的至少一部分的图1的查询链模块149)可以执行图10的过程1000。过程1000可以在1002通过包括至少实施对用户的业务事件数据的第一连续查询以收集第一结果来开始。在1004,过程1000还可以包括将第一结果存储于与数据对象关联的存储器中。过程1000还可以在1006包括至少部分基于触发来将存储于数据对象内的第一结果提供给至少第二连续查询。在1008,过程1000还可以包括提供第一结果和/或第二结果到业务事件可视化的映射用于显示。此外,过程1000可以在1010通过包括至少部分基于来自连续查询的第二结果而给用户提供警报(例如,超出容限水平或者接近阈值)来结束。
以上描述了用于实施连续查询和调度查询的混合执行的说明性方法和系统。这些系统和方法中的一些或全部可以(但不一定)至少部分地通过诸如至少在以上图1-10所示的体系结构和过程之类的体系结构和过程来实现。
图11是示出根据本公开内容的实施例可以使用的系统环境1100的组件的简化框图。如图所示,系统环境1100包含一个或多个客户端计 算设备1102、1104、1106、1108,这些客户端计算设备被配置为在一个或多个网络1110(例如但不限于,类似于图1和3的网络108的网络)上操作客户端应用,比如网页浏览器、专有客户端(例如,Oracle Forms)等。在各种实施例中,客户端计算设备1102、1104、1106和1108可以在网络1110上与服务器1112交互。
客户端计算设备1102、1104、1106、1108可以是通用个人计算机(作为示例,包括运行各种版本的Microsoft Windows和/或Apple Macintosh操作系统的个人计算机和/或笔记本电脑),手机或PDA(运行诸如Microsoft Windows Mobile之类的软件,并且支持Internet、e-mail、SMS、Blackberry或者其他通信协议),和/或用于运行各种市场上可购得的UNIX或类UNIX操作系统(包括但不限于GNU/Linux操作系统的变型)中的任一种的工作站计算机。作为选择,客户端计算设备1102、1104、1106和1108可以是能够在网络(例如,下文将描述的网络1110)上通信的任何其他电子设备,例如瘦客户端计算机、支持因特网的游戏系统,和/或个人消息设备。尽管示例性的系统环境1100被示为具有四个客户端计算设备,但是任何数量的客户端计算设备都可以得到支持。比如具有传感器的设备等其他设备可以与服务器1112交互。
系统环境1100可以包含网络1110。网络1110可以是能够支持使用包括但不限于TCP/IP、SNA、IPX、AppleTalk等在内的各种市场上可购得的协议中的任一种的数据通信的本领域技术人员所熟知的任何类型的网络。仅作示例,网络1110能够是:局域网(LAN),比如以太网、令牌环网等;广域网;虚拟网络,包括但不限于虚拟专用网络(VPN);因特网;内联网;外联网;公共交换电话网(PSTN);红外线网络;无线网络(例如,在IEEE 802.11协议套件、本技术领域已知的蓝牙协议和/或任何其他无线协议中的任一种协议下运行的网络);和/或这些和/或其他网络的任意组合。
系统环境1100还包含一个或多个服务器计算机1112,该一个或多个服务器计算机1112可以是通用计算机、专用服务器计算机(包括, 作为示例,PC服务器、UNIX服务器、中程服务器、大型计算机、机架式服务器等)、服务器机群、服务器集群或者任何其他适当的布置和/或组合。在各种实施例中,服务器1112可以适合于运行前述公开内容所描述的一个或多个服务或软件应用。例如,服务器1112可以对应于用于执行根据本公开内容的实施例的上述处理的服务器。
服务器1112可以运行包括以上所描述的任意操作系统在内的操作系统,以及任何市场上可购得的服务器操作系统。服务器1112还可以运行任意各种附加的服务器应用和/或中间层应用,包括HTTP服务器、FTP服务器、CGI服务器、Java服务器、数据库服务器等。示例性的数据库服务器包括但不限于可从Oracle、Microsoft、Sybase、IBM等公司购得的数据库服务器。
系统环境1100还可以包括一个或多个数据库1114、1116。数据库1114、1116可以位于各种位置。作为示例,一个或多个数据库1114、1116可以位于服务器1112本地(和/或驻留其内)的非瞬时存储介质。作为选择,数据库1114、1116可以远离服务器1112,并且经由基于网络的或专用的连接与服务器1112通信。在一组实施例中,数据库1114、1116可以位于本领域技术人员所熟知的存储区域网(SAN)。类似地,用于执行赋予给服务器1112的功能的任何必要文件可以在本地存储于服务器1112上,和/或适当地进行远程存储。在一组实施例中,数据库1114、1116可以包括适合于响应于SQL格式的命令而存储、更新及检索数据的关系型数据库,比如由Oracle提供的数据库。
图12是根据本公开的实施例可以使用的计算机系统1200的简化框图。例如,服务提供商计算机106可以使用系统(比如系统1200)来实现。计算机系统1200被示为包含可以经由总线1201进行电耦接和/或通信耦接的硬件元件。硬件元件可以包含一个或多个中央处理单元(CPU)1202、一个或多个输入设备1204(例如,鼠标、键盘等),以及一个或多个输出设备1206(例如,显示设备、打印机等)。计算机系统1200还可以包括一个或多个存储器件1208。作为示例,存储器件1208可以包括能够被编程、被快速更新等的器件,比如硬盘驱动器、光 存储器件和诸如随机存取存储器(RAM)和/或只读存储器(ROM)的固态存储器件。
计算机系统1200另外还可以包含计算机可读存储介质读取器1212、通信子系统1214(例如,调制解调器、网卡(无线或有线)、红外通信器件等),以及工作存储器1218,该工作存储器1218可以包括上述RAM和ROM器件。在某些实施例中,计算机系统1200还可以包含处理加速单元1216,该处理加速单元1216能够包括数字信号处理器(DSP)、专用处理器等。
计算机可读存储介质读取器1212还能够连接至计算机可读存储介质1210,共同地(以及可任选地,与存储器件1208结合)全面代表远程的、本地的、固定的和/或可移动的存储器件,加上用于暂时和/或更久地包含计算机可读信息的存储介质。通信系统1214可以允许数据与网络1212和/或以上关于系统环境1200所描述的任何其他计算机进行交换。
计算机系统1200还可以包含软件元件,示为当前正位于工作存储器1218内,包括操作系统1220和/或其他代码1222,比如应用程序(该应用可以是客户端应用、网页浏览器、中间层应用、RDBMS等)。在示例性的实施例中,工作存储器1218可以包含用于上述的依赖方与开放授权相关的处理的可执行代码以及关联的数据结构。应当理解,计算机系统1200的可替换实施例可以具有相对上述实施例的众多变化。例如,还可以使用定制硬件,和/或特定的元件可以用硬件、软件(包括可移植软件,比如小应用程序(applet))或两者来实现。此外,还可以采用到其他计算设备(比如网络输入/输出设备)的连接。
用于包含代码或部分代码的存储介质和计算机可读介质能够包括本技术领域已知的或使用的任何适当介质,包括存储介质和通信介质,例如但不限于,以任何方法或技术来实现的用于诸如计算机可读指令、数据结构、程序模块或其他数据的信息的存储和/或传输的易失性介质和非易失性(非瞬时的)介质、可移除介质和不可移除介质,包括RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字 通用盘(DVD)或其他光学存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储器件、数据信号、数据传输,或者能够用来存储或传输所需信息的且能够由计算机访问的任何其他介质。
尽管已经描述了本公开内容的具体实施例,但是各种修改、变更、替代构造和等价形式同样包含于本公开内容的范围之内。这些各种修改、变更、替代构造和等价形式包括所公开特征的相关组合。本公开内容的实施例并不局限于某些具体数据处理环境中的操作,而是在多个数据处理环境中自由操作。另外,尽管本公开内容的实施例已经使用特定的一系列事务和步骤进行了描述,但是本领域技术人员应当清楚的是,本公开内容的范围并不限定于所描述的该系列事务和步骤。
此外,虽然本公开内容的实施例已经使用硬件和软件的特定组合进行了描述,但是应当意识到,硬件和软件的其他组合同样处于本公开内容的范围内。本公开内容的实施例可以仅用硬件、仅用软件或者使用它们的组合来实现。
因此,本说明书和附图应当被看作是说明性的,而非限制性的。但是,应当很明显的是,在不脱离较广的精神和范围的情况下,可以对其进行添加、减去、删除以及其他修改和变更。以上描述了用于提供本公开内容的特征的说明性的方法和系统。这些系统和方法中的一些或全部可以(但非必须)至少部分地通过诸如以上在图1-12中示出的那些体系结构之类的体系结构来实现。
尽管实施例已经以结构特征和/或方法行为特定的语言进行了描述,但是应当理解,本公开内容并不必限定于所描述的具体特征或行为。相反,这些具体的特征和行为被公开为实现实施例的说明性形式。诸如“能够”、“可能”、“会”、“可以”等的条件式语言,除非另有具体说明或者在所使用的情形内理解,否则一般是要传达:某些实施例可能包含某些特征、元件和/或步骤,而其他步骤不包含它们。因而,这样的条件式语言一般并非旨在隐含:特征、元件和/或步骤无论如何都是一个或多个实施例所必需的,或者不论有没有用户输入或提示,一个或多个实施例都必须包含用于判定这些特征、元件和/或步骤是否包含于 任意特定实施例中或者是否应当以任意特定实施例来执行的逻辑。
根据本公开内容的一种实施例,存在一种方法,包括:使用复杂事件处理引擎来处理对事件流的第一连续查询;将第一连续查询的结果存储于复杂事件处理引擎的数据对象内,第一连续查询被配置为处理事件流的业务事件数据;并且使用复杂事件处理引擎来至少部分基于存储于数据对象内的结果处理第二连续查询。
根据本公开内容的另一种实施例,存在一种系统,包含:处理单元,配置为使用复杂事件处理引擎来处理针对事件流的第一连续查询;存储单元,配置为将第一连续查询的结果存储于复杂事件处理引擎的数据对象内,第一连续查询被配置为处理事件流的业务事件数据;以及处理单元,配置为使用复杂事件处理引擎来至少部分基于存储于数据对象内的结果处理第二连续查询。
根据本公开内容的又一种实施例,存在一种系统,包含:用于使用复杂事件处理引擎来处理针对事件流的第一连续查询的装置;用于将第一连续查询的结果存储于复杂事件处理引擎的数据对象内的装置,第一连续查询被配置为处理事件流的业务事件数据;并且用于使用复杂事件处理引擎来至少部分基于存储于数据对象内的结果处理第二连续查询的装置。
根据本公开内容的一种实施例,存在一种系统,包含:实施单元,配置为使用复杂事件处理引擎来实施针对与用户关联的业务事件数据的第一连续查询,以在时间间隔内收集第一结果;第一处理单元,配置为处理针对包含与用户关联的业务事件数据的事件流的第一连续查询;存储单元,配置为将第一结果作为复杂事件处理引擎的数据对象存储于存储器内;第一提供单元,配置为至少部分基于触发的接收来将数据对象的第一结果提供给第二连续查询;第二处理单元,配置为使用复杂事件处理引擎来至少部分基于数据对象的第一结果处理第二连续查询以识别第二结果;第二提供单元,配置为提供第一结果或第二结果中的至少一项到可视化的映射,以由用户的用户接口显示;以及第三提供单元,配置为至少部分基于来自第二连续查询的第二结果来给用户提供警报。
根据本公开内容的另一种实施例,存在一种系统,包含:用于使用复杂事件处理引擎来实施针对与用户关联的业务事件数据的第一连续查询,以在时间间隔内收集第一结果的装置;用于处理针对包含与用户关联的业务事件数据的事件流的第一连续查询的装置;用于将第一结果作为复杂事件处理引擎的数据对象存储于存储器内的装置;用于至少部分基于触发的接收而将数据对象的第一结果提供给第二连续查询的装置;用于使用复杂事件处理引擎来至少部分基于数据对象的第一结果处理第二连续查询以识别第二结果的装置;用于提供第一结果或第二结果中的至少一项到可视化的映射以由用户的用户接口显示的装置;以及用于至少部分基于来自第二连续查询的第二结果来给用户提供警报的装置。

链接连续查询的机制.pdf_第1页
第1页 / 共37页
链接连续查询的机制.pdf_第2页
第2页 / 共37页
链接连续查询的机制.pdf_第3页
第3页 / 共37页
点击查看更多>>
资源描述

《链接连续查询的机制.pdf》由会员分享,可在线阅读,更多相关《链接连续查询的机制.pdf(37页珍藏版)》请在专利查询网上搜索。

本发明提供了用于实现用来链接连续查询的机制的技术。在某些示例中,第一连续查询的结果可以存储于数据对象内。例如,第一连续查询可以被配置为处理业务事件数据并将结果存储于数据对象内。另外,然后可以至少部分基于存储于数据对象内的结果来处理第二连续查询。。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1