复杂事件处理中对于参数化的查询/视图的支持制造技术

技术编号:15219423 阅读:66 留言:0更新日期:2017-04-26 16:36
本公开涉及复杂事件处理中对于参数化的查询/视图的支持。本发明专利技术包括一种在复杂事件处理CEP中提供参数化的查询的方法。该方法包括:提供包括一个或多个绑定变量的查询模板;提供与所述一个或多个绑定变量对应的参数集合;解析该查询模板以确定所述一个或多个绑定变量的位置;扫描提供的参数集合以确定所述参数集合中的那些将被绑定到所述一个或多个绑定变量;绑定被确定绑定到所述参数集合的所述一个或多个绑定变量;以及用对应的参数集合替换所述绑定的一个或多个绑定变量。该方法还包括:将参数化的查询的所有信息注入到系统中,并且一个模板/参数化的查询被配置为全部运行它们。

Support for parameterized query / view in complex event processing

The present invention relates to the support of parameterized queries / views in complex event processing. The present invention includes a method for providing parameterized queries in a complex event processing CEP. The method includes: providing includes one or more binding variable query template; provide parameters corresponding to one or more of the bound variables set; parsing the query template to determine the one or more binding variable position; scanning provides a collection of parameters to determine the parameters in the collection who will be bound to one or more of the bound variables; binding is bound to determine the parameter set of one or more of the bound variables with the corresponding parameters; and a set of one or more variables instead of the bound bound. The method further includes injecting all the information of the parameterized query into the system, and a template / parameterized query is configured to run them all.

【技术实现步骤摘要】
本申请是国际申请日为2011年09月16日、国家申请号为201180053021.4、专利技术名称为“复杂事件处理中对于参数化的查询/视图的支持”的进入国家阶段的PCT国际申请的分案申请。对相关申请的交叉引用本PCT申请要求于2011年7月28日提交的U.S.非临时专利申请号13/193,377的优先权,该申请要求共同待处理的于2010年9月1号提交并且题为“复杂事件处理中对于参数化的查询/视图的支持”的U.S.临时专利申请号61/384,182的优先权,其通过引用而合并于此,以用于所有目的,就好像完全在本申请中阐述一样。
本专利技术的实施例涉及数据处理系统,更具体地涉及关于具有时间语义的流数据的系统和应用。
技术介绍
通常,复杂事件处理(CEP)是实时聚集来自分布式的基于消息的系统、数据库和应用的信息并且动态地应用规则以辨别否则将被忽视的模式和趋势的方法。这为公司提供跨高度复杂的、分布式、和互异的IT环境识别并且甚至预期由表面上无关的事件所代表的例外和机会的能力。CEP可以用来近实时地以高速流数据关联、聚集、丰富、和检测模式。而且,持续查询语言(CQL)语句用来处理包括事件的事件流。事件流可能被认为是<tuple,timestamp>对的序列,其中元组(tuple)是指数据部分。流可以具有多个元组并且时间戳(timestamp)可以定义在事件流中元组的次序。OracleTM复杂事件处理(OCEP)用来处理这样的事件流。此外,CEP应用可以具有多个查询和视图,其然后由处理器执行。任何真实世界的应用可以由数百个仅仅在像范围参数这样的特定值方面不同的查询和视图组成。在这样的情况下维护数百个查询和视图可能成为可怕的事情,因为基本查询或视图的微小的变化将导致影响数百个相关的查询和视图。使用参数化或通配符(wildcard)占位符(placeholder)的形式帮助应用开发者编写类似的查询和视图,其仅仅在小的标准方面不同。在一个实施例中,允许用户放置通配符占位符,然后其能在运行时利用值绑定。可以将参数化的查询或视图看作模板,然后其能用于不同的值。这为用户提供编写单个CQL语句的能力,该单个CQL语句可以在内部生成用于绑定中提供的不同值的多个CQL语句的。例如:SELECTsymbol,AVG(price)ASaverage,NASDAQASmarketFROMStockTicktRETAINALLEVENTSWHEREsymbol=ORCLSELECTsymbol,AVG(price)ASaverage,NYSEASmarketFROMStockTicktRETAINALLEVENTSWHEREsymbol=JPMSELECTsymbol,AVG(price)ASaverage,NYSEASmarketFROMStockTicktRETAINALLEVENTSWHEREsymbol=WFC应当注意到以上查询在项目列表中的恒定值或者在WHERE条件下的恒定值方面不同。如果有数百个这样的查询,则任何商业用户可能必须编写数百个这样的查询和视图。因此,出于这些和其它原因,在本领域的改进是必要的。
技术实现思路
本专利技术的实施例包括利用CEP字符串替换将绑定变量替换为为绑定变量提供的参数集合,而不做任何种类型检查等。这不同于常规的数据库之处在于绑定变量也必须通过类型检查等。因此,在CEP上下文中的绑定变量提供更灵活的并且因此更强大的解决方案,其允许用户插入任意的谓词。因此,在CEP环境中的绑定变量可以是无类型的。本专利技术包括在复杂事件处理(CEP)中提供参数化的查询的方法。该方法包括提供包括一个或多个绑定变量的查询模板、提供对应于一个或多个绑定变量的参数集合、以及解析查询模板以确定一个或多个绑定变量的位置。该方法还包括扫描提供的参数集合以确定哪些参数集合将被绑定到一个或多个绑定变量、绑定被确定绑定到该参数集合的一个或多个绑定变量、以及利用对应的参数集合替换绑定的一个或多个绑定变量。该方法还包括建立确定的一个或多个绑定变量的位置的地图。利用对应的参数集合替换绑定的一个或多个绑定变量包括利用确定的一个或多个绑定变量的位置来将绑定的参数集合放置在查询模板内。提供对应于一个或多个绑定变量的参数集合或者静态或者动态地执行。在进一步的实施例中,提供对应于一个或多个绑定变量的参数集合通过利用在查询模板的部署时的配置文件来静态地执行,以及提供对应于一个或多个绑定变量的参数集合通过利用模块管理解决方案来动态地执行。该配置文件包括以下中的一个或多个:应用关联、处理器关联、查询规则、查询模板、参数集合、或绑定。该方法还包括基于包括替换一个或多个绑定变量的参数集合的查询模板实例化新查询、实例化该新查询、并且将新查询注入到CEP服务器。此外,该方法包括基于该新查询,建立查询执行计划、将该查询执行计划作为连续查询增加到运行时环境中、并且执行连续查询。该方法还包括确定对应于相同的绑定变量的多个参数集合,并且实例化对于与相同的绑定变量对应的多个参数集合的每一个的单独的新查询。在另一个实施例中,描述了用于在复杂事件处理(CEP)中提供参数化的查询的系统。该系统包括存储器和与存储器耦合的处理器。存储器在其上存储有指令集合,其在由处理器执行时,使得处理器确定出现在用于处理事件流的参数化的查询中的占位符、确定用于占位符的参数、通过用该参数替换占位符来从参数化的查询生成查询、生成该查询;并且处理事件流。系统还包括包括CQL引擎的CEP服务器。该CQL引擎实例化CEP应用。该系统还包括与CEP服务器通信的观察器。该观察器被配置为显示来自于处理的事件流的结果信息。在进一步的实施例中,描述了计算机可读介质。计算机可读介质包括用于提供包括一个或多个绑定变量的查询模板、提供对应于一个或多个绑定变量的参数集合、以及解析查询模板以确定一个或多个绑定变量的位置的指令。计算机可读介质还包括用于扫描提供的参数集合以确定哪些参数集合将被绑定到一个或多个绑定变量、绑定被确定绑定到该参数集合的一个或多个绑定变量、以及利用对应的参数集合替换绑定的一个或多个绑定变量的指令。计算机可读介质还包括用于确定新的参数集合被指定用于绑定、识别在指定新的参数集合之前已经使用参数集合实例化的查询、删除在指定新的参数集合之前已经使用参数集合实例化的查询、以及利用新的用于运行期系统的参数集合实例化查询的指令。计算机可读介质还包括用于将参数集合转换为字符串、检查参数集合的字符串以确定参数集合的形式、将确定的参数集合的类型与对应的绑定变量的类型进行比较、以及响应于确定的参数集合的类型匹配对应的绑定变量的类型来验证参数集合的指令。对应的绑定变量和参数集合的类型可以包括以下中的一个或多个:整数(INT)、浮点数(FLOAT)、长整型(LONG)、大数字型(BIGDECIMAL)、双精度型(DOUBLE)、和字符串(STRING)。附图说明图1是根据本专利技术的实施例的事件处理服务器的方框图。图2a-2c是根据本专利技术的实施例的在CEP中用于执行参数化的查询的流程图。图3是根据本专利技术的实施例的在CEP中用于执行参数化的查询的流程图。图4A-4D是根据本专利技术的实施例的在CEP中用于执行参数化的查询的方框图。图本文档来自技高网
...

【技术保护点】
一种在复杂事件处理CEP中提供参数化的查询的方法,该方法包括:提供包括一个或多个绑定变量的查询模板;提供与所述一个或多个绑定变量对应的参数集合;解析该查询模板以确定所述一个或多个绑定变量的位置;扫描提供的参数集合以确定所述参数集合中的哪些将被绑定到所述一个或多个绑定变量;绑定被确定绑定到所述参数集合的所述一个或多个绑定变量;以及用对应的参数集合替换所述绑定的一个或多个绑定变量。

【技术特征摘要】
2010.09.17 US 61/384,182;2011.07.28 US 13/193,3771.一种在复杂事件处理CEP中提供参数化的查询的方法,该方法包括:提供包括一个或多个绑定变量的...

【专利技术属性】
技术研发人员:P·杰恩V·舒克拉A·斯里尼瓦桑A·德卡斯托阿尔维E·希奥
申请(专利权)人:甲骨文国际公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1