跨多个输入数据流的样式匹配的制作方法

文档序号:10628106阅读:275来源:国知局
跨多个输入数据流的样式匹配的制作方法
【专利摘要】公开了用于跨与一个或多个应用相关的多个输入数据流检测样式的方法。该方法包括接收多个输入数据流并为输入数据流的一个或多个属性生成一个或多个动态数据类型。在一些实施例中,该方法可以包括基于动态数据类型组合输入数据流以生成组合输入数据流并且处理对组合数据流的连续查询以检测样式。
【专利说明】跨多个输入数据流的样式匹配
[0001] 对相关申请的交叉引用
[0002] 本申请要求于2014年12月3日提交的、标题为"PATTERN MATCHING ACROSS MULTIPLE INPUT DATA STREAMS"的美国专利申请14/559,550和于2013年12月5日提交的、 标题为"PATT邸N MATCHING ACROSS MULTIPLE INPUT DATA STREAMS"的美国临时专利申请 No.61/912,344的优先权,其全部内容通过引用被结合于此,就好像在本文被完全阐述一 样。
【背景技术】
[0003] 在传统的数据库技术中,数据通常W表的形式存储在一个或多个数据库中。然后, 所存储的数据利用诸如结构化查询语言(S化)的数据管理语言被查询和操纵。例如,S化查 询可被定义并执行,W便从存储在数据库中的数据识别相关的数据。因此,S化查询对存储 在数据库中的有限数据集执行。另外,当SQL查询被执行时,它对有限数据集执行一次并且 产生有限的静态结果。因此,数据库最佳配备为在有限存储的数据集上运行。
[0004] 但是,众多的现代应用和系统W连续数据或事件流而不是有限数据集的形式生成 数据。运种应用的例子包括但不限于传感器数据应用、金融行情(financial tickers)、网 络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车交通监视,等等。 运种应用已经引起了对可W处理数据流的新型应用的需求。例如,溫度传感器可被配置为 持续地发出溫度读数。
[0005] 管理和处理用于运些类型的基于事件流的应用的数据设及利用强时间焦点建立 数据管理和查询能力。需要包括对连续无界限数据集进行长期运行查询的不同种类的查询 机制。虽然一些厂商现在提供针对事件流处理的产品套件,但是运些产品供应仍然缺乏处 理如今的事件处理需求所需要的处理灵活性。

【发明内容】

[0006] 在某些实施例中,提供了用于跨与一个或多个应用相关的多个输入数据流检测样 式(pattern)的技术(例如,方法、系统、存储可由一个或多个处理器执行的代码或指令的非 暂态计算机可读介质)。
[0007] 根据一种实施例,公开了用于跨与一个或多个应用相关的多个输入数据流检测样 式的方法。该方法包括接收包括第一输入数据流和第二输入数据流的多个输入数据流。该 方法还包括生成用于第一输入数据流的第一动态数据类型并生成用于第二输入数据流的 第二动态数据类型。在一些实施例中,第一动态数据类型可W通过识别第一输入数据流的 第一属性不存在于第二数据流中而生成。于是,第一动态数据类型是为第一属性生成的。第 二动态数据类型可W通过识别第二输入数据流的第二属性不存在于第一数据流中而生成。 于是,第二动态数据类型是为第二属性生成的。在实施例中,第一动态数据类型可被配置为 存储对应于第一输入数据流的第一属性的第一数据值,并且第二动态数据类型可被配置为 存储对应于第二输入数据流的第二属性的第二数据值。
[0008] 在一些实施例中,该方法可W包括基于第一动态数据类型和第二动态数据类型组 合第一输入数据流和第二输入数据流,W生成组合数据流。在实施例中,该方法然后可W包 括处理对组合数据流的连续查询,W检测样式。在一些实施例中,"样式"可W构成第一数据 流中第一事件的发生,然后是第二数据流中另一事件的发生。
[0009] 根据另一实施例,公开了用于跨与一个或多个应用相关的多个输入数据流检测样 式的系统。该系统包括用于存储多条指令的存储器和被配置为访问该存储器的处理器。在 实施例中,处理器被配置为执行接收识别第一输入数据流和第二输入数据流的连续查询的 指令。处理器还被配置为执行识别用于第一输入数据流的第一属性的第一动态数据类型和 用于第二输入数据流的第二属性的第二动态数据类型的指令。在一些实施例中,处理器被 配置为基于第一动态数据类型和第二动态数据类型生成组合数据流并执行对组合数据流 的连续查询W检测样式。
[0010] 根据一些实施例,公开了存储可由一个或多个处理器执行的计算机可执行指令的 非暂态计算机可读介质。计算机可执行指令包括使一个或多个处理器接收包括至少第一输 入数据流和第二输入数据流的多个输入数据流的指令。计算机可执行指令还包括使一个或 多个处理器生成用于第一输入数据流的第一动态数据类型和用于第二输入数据流的第二 动态数据类型的指令。在一些实施例中,计算机可执行指令包括基于第一动态数据类型和 第二动态数据类型组合第一输入数据流和第二输入数据流W生成组合数据流并且处理对 组合数据流的连续查询W检测样式的指令。
[0011] 根据一些实施例,公开了一种方法,包括:接收包括至少第一输入数据流和第二输 入数据流的多个输入数据流;生成用于第一输入数据流的第一动态数据类型;生成用于第 二输入数据流的第二动态数据类型;至少部分地基于第一动态数据类型和第二动态数据类 型组合第一输入数据流和第二输入数据流W生成组合数据流;W及处理对组合数据流的连 续查询,W检测样式。
[0012] 在一些实施例中,生成第一动态数据类型的步骤还包括识别第一输入数据流的第 一属性不存在于第二数据流中;并且生成用于第一属性的第一动态数据类型,第一动态数 据类型被配置为存储对应于第一输入数据流的第一属性的第一数据值。
[0013] 在一些实施例中,生成第二动态数据类型的步骤还包括识别第二输入数据流的第 二属性不存在于第一数据流中;并且生成用于第二属性的第二动态数据类型,第二动态数 据类型被配置为存储对应于第二输入数据流的第二属性的第二数据值。
[0014] 在一些实施例中,该方法还包括识别共同属性,该共同属性被识别为在第一输入 数据流中存在并在第二输入数据流中存在;生成同质模式(schema),该同质模式包括第一 输入数据流和第二输入数据流的一个或多个属性的表示,该表示包括至少共同属性、第一 动态数据类型和第二动态数据类型;W及至少部分地基于同质模式生成组合数据流。
[0015] 在一些实施例中,该方法还包括至少部分地基于分析组合数据流来检测样式,其 中样式识别第一输入数据流中的第一事件,后面跟着第二输入数据流中的第二事件。
[0016] 根据一些实施例,提供了服务提供商设备。该服务提供商设备可包括输入数据流 接收单元,被配置为接收包括至少第一输入数据流和第二输入数据流的多个输入数据流; 第一动态数据类型生成单元,被配置为生成用于第一输入数据流的第一动态数据类型;第 二动态数据类型生成单元,被配置为生成用于第二输入数据流的第二动态数据类型;组合 数据流生成单元,被配置为至少部分地基于第一动态数据类型和第二动态数据类型组合第 一输入数据流和第二输入数据流,W生成组合数据流;W及样式检测单元,被配置为处理对 组合数据流的连续查询,W检测样式。
[0017] 在一些实施例中,第一动态数据类型生成单元还被配置为:识别第一输入数据流 的第一属性不存在于第二数据流中;W及生成用于第一属性的第一动态数据类型。
[0018] 在一些实施例中,第一动态数据类型被配置为存储对应于第一输入数据流的第一 属性的第一数据值。
[0019] 在一些实施例中,第二动态数据类型生成单元还被配置为识别第二输入数据流的 第二属性不在第一数据流中存在;W及生成用于第二属性的第二动态数据类型,第二动态 数据类型被配置为存储对应于第二输入数据流的第二属性的第二数据值。
[0020] 在一些实施例中,服务提供商设备还可W包括共同属性识别单元,被配置为识别 共同属性,该共同属性被识别为在第一输入数据流中存在并在第二输入数据流中存在;W 及同质模式生成单元,被配置为生成同质模式,该同质模式包括第一输入数据流和第二输 入数据流的一个或多个属性的表示,该表示包括至少公共属性、第一动态数据类型和第二 动态数据类型。
[0021] 在一些实施例中,同质模式包括流名称标识符属性、与第一输入数据流关联的第 一时间戳属性或者与第二输入数据流关联的第二时间戳属性当中至少一个。
[0022] 在一些实施例中,组合数据流生成单元还可被配置为从第一输入数据流选择第一 组元组,第一输入数据流由同质模式识别;从第二输入数据流选择第二组元组,第二输入数 据流由同质模式识别;W及处理对第一组元组和第二组元组的子查询,W生成组合数据流。
[0023] 在一些实施例中,样式可W至少部分地基于分析述组合数据流来检测,其中样式 识别第一输入数据流中的第一事件,后面跟着第二输入数据流中的第二事件。
【附图说明】
[0024] 详细描述参考附图进行阐述。在图中,标号最左边的(一个或多个)数字识别其中 该标号首先出现的图。在不同的图中使用相同的标号指示相似或完全相同的条目。
[0025] 图1绘出了用于跨多个输入数据流识别样式的技术可W在其中实现的简化示例系 统或体系模式。
[0026] 图2示出了可W利用其描述用于跨多个输入数据流的样式检测的特征的简化框 图。
[0027] 图3是根据本公开内容的一种实施例、利用识别多个输入数据流的CQL查询执行样 式识别的示例性说明。
[0028] 图4是根据本公开内容的另一种实施例、利用识别多个输入数据流的C化查询执行 样式识别的示例性说明。
[0029] 图5是绘出根据本公开内容的一种实施例、用于跨多个输入数据流检测样式的过 程的高级流程图。
[0030] 图6是绘出根据本公开内容的一种实施例、用于生成同质模式的过程的高级流程 图。
[0031] 图7绘出了可W结合本公开内容的实施例的事件处理系统的简化高级图。
[0032] 图8绘出了用于实现其中一种实施例的分布式系统的简化图。
[0033] 图9是根据本公开内容的实施例、由实施例系统的一个或多个组件提供的服务可 W通过其作为云服务被提供的系统环境的一个或多个组件的简化框图。
[0034] 图10示出了本发明的各种实施例可W在其中实现的示例性计算机系统。
[0035] 图11示出了本发明的各种实施例可W在其中实现的示例性服务提供商设备的简 化框图。
【具体实施方式】
[0036] 在W下描述中,将描述各种实施例。出于解释的目的,阐述了特定的配置和细节, W便提供对实施例的透彻理解。但是,对于本领域技术人员来说,将很显然,运些实施例可 W在没有特定细节的情况下进行实践。此外,众所周知的特征可被省略或简化,W避免模糊 所描述的实施例。
[0037] 在一些应用中,数据可W采取连续、无界的数据流的形式,而不是有限存储的数据 集。运种数据流的例子可W包括金融应用中的股票行情、网络监视和交通管理中的性能测 量、web跟踪和个性化中的日志记录或点击流、来自传感器应用的数据馈送、基于防火墙的 安全性中的网络报文和消息、电信中的呼叫详细记录,等等。由于它们的连续性质,运些数 据流通常可W利用连续查询而不是传统的一次性S化查询来查询。
[0038] -般而言,连续数据流(也被称为事件流)可W包括其本质可W是没有显式结束标 志的连续的或无界的数据或事件的流。逻辑上,事件或数据流可W是一系列数据元素(也被 称为事件),每个数据元素具有相关联的时间戳。连续事件流可W在逻辑上表示为一包或一 组元素(s,T),其中V'表示数据部分,并且?'是在时间域中。V'部分一般被称为元组或事 件。因此,事件流可W是一系列具有时间戳的元组或事件。
[0039] 在一些方面,与流中的事件关联的时间戳可W等同于时钟时间。但是,在其它例子 中,与事件流中的事件相关联的时间可W由应用领域定义并且可W不对应于时钟时间,但 是可W,例如,代替地通过数字序列来表示。因此,与事件流中的事件关联的时间信息可W 由表示时间概念的数字、时间戳或任何其它信息来表示。对于接收输入事件流的系统,事件 W递增的时间戳的顺序到达系统。可能存在多于一个的事件具有相同的时间戳。
[0040] 在一些例子中,事件流中的事件可W表示一些世间事件的发生(例如,当溫度传感 器将值改变到新的值时、当股票符号的价格改变时)并且与事件关联的时间信息可W指示 由数据流事件表示的世间事件何时发生。
[0041] 对于经由事件流接收到的事件,可W使用与事件关联的时间信息来确保事件流中 的事件W递增的时间戳值的顺序到达。运可W使得在事件流中接收到的事件基于它们关联 的时间信息进行排序。为了启用运种排序,时间戳可非递减的方式与事件流中的事件 关联,使得后生成的事件具有比早生成的事件更晚的时间戳。作为另一个例子,如果序列号 被用作时间信息,则与后生成的事件关联的序列号可W大于与较早生成的事件关联的序列 号。在一些例子中,多个事件可W与相同的时间戳或序列号关联,例如,当由数据流事件表 示的世间事件在同一时间发生时。属于同一事件流的事件可W通常W由关联的时间信息施 加在事件上的顺序进行处理,其中较早的事件在较晚的事件之前被处理。
[0042] 与事件流中的事件相关联的时间信息(例如,时间戳)可W由流的源设置或者,可 替代地,可w由接收流的系统设置。例如,在某些实施例中,可w在接收事件流的系统上保 持屯、跳,并且与事件关联的时间可W基于如通过屯、跳测得的事件到达系统的时间。事件流 中的两个事件有可能具有相同的时间信息。应当注意,虽然时间戳排序要求特定于一个事 件流,但是不同流的事件可W任意交错。
[0043] 事件流可W具有关联的模式"S",该模式包括时间信息和一组一个或多个命名的 属性。属于特定事件流的所有事件符合与那个特定事件流关联的模式。因此,对于事件流 (S,T),事件流可 W具有如(<time_stamp〉,〈attribute(S)〉)的模式"S",其中〈attributes〉 表示模式的数据部分并且可W包括一个或多个属性。例如,用于股票报价机事件流的模式 可W包括属性< 股票标志〉和< 股票价格〉。经由运种流接收到的每个事件将具有时间戳W及 两个属性。例如,股票报价机事件流可W接收W下事件及关联的时间戳:
[0044] ...
[0045] (<timestamp_N>,<NVDA,4>)
[0046] (<timestamp_N+l〉,<0RCL,62〉)
[0047] (<timestamp_N+2>,<PCAR,38〉)
[004引(<timestamp_N+3>,〈SPOT,53〉)
[0049] (<timestamp_N+4>,<PDC0,44>)
[0050] (〈timestamp-化於,<PTEN,50〉)
[0化1] ·..
[0052] 在w上的流中,对于流元素(<timestamp_N+l〉,<OR化,62〉),事件是具有属性 "stock_symb〇r'和"stock_value"的<0R化,62〉。与流元素关联的时间戳是"timestamp_N+ Γ。因此,连续事件流是事件的流,每个事件具有相同系列的属性。
[0053] 如所指出的,流可W是CQL查询可W作用于其的数据的主要来源。流S可W是元素 的包(也被称为"multi-set(多集)")(3,1'),其中"3"在5的模式中并且叩'在时间域中。此 夕h流元素可W是元组-时间戳对,其可被表示为一系列具有时间戳的元组插入。换句话说, 流可W是一系列具有时间戳的元组。在一些情况下,可能有多于一个具有相同时间戳的元 组。并且,输入数据流的元组可被要求按递增时间戳的顺序到达系统。作为替代,关系(也被 称为"随时间变化的关聚',并且不与"关系数据"混淆,"关系数据"可W包括来自关系数据 库的数据)可W是从时域到模式R的无界元组袋(bag)的映射。在一些例子中,关系可W是无 序、随时间变化的元组袋(即,瞬时关系)。在一些情况下,在每个时刻,关系可W是有界集。 它也可被表示为一系列具有时间戳的元组,其可W包括插入、删除和/或更新,W捕获关系 的改变的状态。类似于流,关系可W具有关系的每个元组可W符合的固定模式。另外,如本 文所使用的,连续查询一般可W能够处理流和/或关系的(即,针对其查询的)数据。此外,关 系可W引用流的数据。
[0054] 在一些例子中,商业智能(BI)可W帮助W特定的间隔(例如,在一些情况下,每天) 驱动和优化业务操作。运种类型的BI通常被称为运营商业智能、实时商业智能或者运营智 能(01)。在一些例子中,运营智能模糊了BI与业务活动监视(BAM)之间的界线。例如,BI可W 专注于对历史数据的周期性查询。照此,它可W具有向后看的焦点。但是,BI也可被放到业 务应用中,并且因此它可W从单纯的战略分析工具扩展到企业运营的前线中。照此,BI系统 也可被配置为实时地分析事件流并计算聚集。
[0055] 在一些例子中,连续查询语言服务(CQ服务)可被配置为延伸BI分析服务器,W处 理连续查询并启用实时警报。在一些方面中,CQ服务可W提供BI分析服务器和CQL引擎的集 成。仅仅作为例子,BI分析服务器可W将连续查询委托给CQ服务并且CQ服务也可W充当用 于CQL引擎的逻辑数据库(DB)网关。W运种方式,C化引擎可W能够充分利用BI分析服务器 的分析能力和语义建模。
[0056] 在一些例子中,除其它的之外,CQ服务还可W提供W下功能:
[0057] .远程化用于BI分析服务器的服务,作为C化引擎网关;
[005引.事件源/接收器适配器;
[0059] ?从逻辑S化加上C化扩展生成数据定义语言(孤L);
[0060] ?为所有类型的连续查询和实现选择提供统一的模型;
[0061 ] ?维持元数据并支持重启;W及
[0062] ?高可用性和可扩展性支持。
[0063] 此外,在一些例子中,01是实时动态业务分析的形式,其可W提供对业务运营可视 性和桐察。就二者都有助于使大量信息有意义而言,01常常关联到BI或实时BI或者与其进 行比较。但也有一些基本的差别:〇1可W主要W活动为中屯、,而BI可W主要W数据为中屯、。 此外,01可W更适合检测并响应于发展的状况(例如,趋势和样式),不像可能传统上被用作 识别样式的事实后和基于报告的方法的BI。
[0064] 在一些例子中,业务事件分析和监视(邸AM)系统可W包括CQL引擎,W处理和/或 接收动态数据(in-flight da化)。例如,C化引擎可W是被配置为查询或W其它方式处理进 入的实时信息的存储器内实时事件处理引擎(例如,BI或0I)XQL引擎可W利用或理解时序 语义并且被配置为允许处理数据窗口的定义。在一些情况下,利用C化引擎可W设及总是对 进入的数据运行查询。
[0065] 在一些方面,C化引擎可W包括完全成熟的查询语言。因而,用户可W就查询而言 指定计算。此外,C化引擎可被设计为利用查询语言特征、运算符共享、丰富的样式匹配、丰 富的语言结构等等优化存储器。此外,在一些例子中,C化引擎可W同时处理历史数据和流 化数据。例如,用户可W设置查询,W便在加州销售额高于某一目标时发送警报。因此,在一 些例子中,警报可W至少部分地基于历史销售数据W及传入的活(即,实时)销售数据。
[0066] 在一些例子中,C化引擎或下面描述的概念的其它特征可被配置为W实时的方式 组合历史上下文(即,仓库数据)与传入的数据。因此,在一些情况下,本公开内容可W描述 数据库存储的信息与动态信息的边界。数据库存储的信息和动态信息都可W包括BI数据。 因而,在一些例子中,数据库可W是BI服务器或者它可W是任何类型的数据库。另外,在一 些例子中,本公开内容的特征可W启用W上特征的实现,而无需用户知道如何编程或W其 它方式编写代码。换句话说,特征可W在特征丰富的用户界面化I)中或者W其它方式提供, W允许非开发人员实现历史数据与实时数据的组合。
[0067] 在某些实施例中,在连续数据流中被接收的事件可W在运行时被处理,W检测数 据流中指定样式的发生。"样式"可W在连续的数据流中构成一系列连续的事件或元组,每 个事件或元组满足某些条件。作为例子,诸如股票交易量的变化的一个事件的发生导致诸 如股票价值定价的变化的另一个事件的发生,并且可W在连续的数据流中构成接收与金融 应用相关的"股票计价"事件的"样式"。
[0068] 在多个连续数据流的上下文中,"样式"可W构成第一数据流中第一事件的发生, 后面跟着第二数据流中另一事件的发生,等等。作为例子,考虑被第一事件序列驱动的第一 业务过程,其中事件与汽车租赁预订应用相关。类似地,考虑被第二事件序列驱动的第二业 务过程,其中事件与航班预订应用相关。此外,假设第一事件序列经由第一连续输入数据流 被接收并且第二事件序列经由第二连续输入数据流被接收。在运种情况下,可能期望当第 一连续输入数据流中事件(例如,用户对汽车的预订)的到达后面跟着第二连续输入数据流 中另一事件(例如,机票发给用户)的到达时输出样式匹配。
[0069] 在一种实施例中,跨多个连续输入数据流的样式匹配可W通过对传入的输入数据 流应用连续查询(例如,C化查询)来执行。在一种方法中,跨多个连续输入数据流的样式匹 配可W通过首先执行要对其执行样式匹配的所有相关输入数据流的全部或子集的UNION来 执行,其结果是定义对应于中间流的视图。然后,要匹配的样式可W经运单个中间流来指 定。在一种实施例中,C化语言结构MATCH_RECOGNIZE子句可被用于在识别多个输入数据流 的C化查询中执行样式识别。然后,样式可被匹配到包括在视图中的所有流。
[0070] 作为例子,考虑W下CQL查询,Q1,其中Q1是指定要跨第一输入数据流S1和第二输 入数据流S2匹配的样式的连续查询。
[0071] Q1:
[0072]
[0073] 此外,假设流S1由第一模式定义:Sl(int pl,int clientid)并且流S2由第二模式 定义:S2(int p2, int clientid),其中pi、p2和。116]11:1(1对应于流51和52的一个或多个属 性。
[0074] 查询Q1包括指定流S1和S2的UNION的FROM子句。为了使UNION A化查询组合流S1和 S2的结果集,WL UNION A化查询中的每个CQL SELECT语句通常需要在结果集中具有相同 数量的具有类似数据类型的字段。在上面所示的查询Q1的例子中,流SI的模式与流S2的模 式不同。在一种方法中,流S1和S2可W通过规格化流S1和S2的模式来组合。
[0075] 在一个例子中,模式的规格化可W通过向流S1和S2的每个模式添加附加的列来执 行。在上面所示的查询Q1的例子中,列被添加到流S1和S2的每个模式并且利用诸如"-1L"的 硬编码值来填充,W规格化模式。但是,将硬编码数据值引入每个流是容易出错的手动过 程,因为硬编码值必须在每次识别具有不同模式的多个输入数据流的CQL查询被处理时输 入。
[0076] 在本公开内容的一种实施例中,生成表示一个或多个参与的输入数据流的同质模 式。在一些实施例中,同质模式可W通过为参与的输入数据流的一个或多个属性创建一个 或多个动态数据类型而生成。动态数据类型和同质模式的生成使UNION A化子查询中的每 个SELECT语句能够包括相同数量的字段和类似的数据类型,使得流S1和S2的结果集可W利 用SELECT语句来组合。此外,用于参与的输入数据流的属性的动态数据类型的生成是实时 地执行的,并且硬编码值不需要在每次C化查询被处理时被引入参与的输入数据流。在一个 例子中,并且如下面将详细讨论的,动态数据类型可W指为输入数据流的一个或多个属性 识别的复合数据类型。
[0077] 在某些实施例中,输入数据流然后可W基于同质模式被组合,W生成组合数据流。 然后,连续查询可W对组合数据流处理,W便跨输入数据流检测样式。在一种实施例中,C化 语言结构MATCH_RECOGNIZE子句可被用于在识别多个输入数据流的CQL查询中执行样式识 另IJ。同质模式和动态数据类型可被生成并用于在识别多个输入数据流的CQL查询中执行样 式识别的方式的附加细节在下面图1-4中详细讨论。
[007引利用MATCH_RECOGNIZE子句,用户可W对传入的事件的属性定义条件并且通过使 用被称为相关变量的标识符识别用于样式匹配的条件。如W上所讨论的,输入数据流中的 一系列连续事件或元组构成样式,其中每个事件或元组满足某些条件。样式识别功能允许 用户对传入的事件或元组的属性定义条件并且通过使用被称为相关变量的串名称来识别 运些条件。
[0079] 在上面所示的查询Q1中,"A"和"B"是相关变量。要匹配的样式被指定为对运些相 关变量的正则表达式并且它确定条件应当被不同的传入事件满足的顺序或次序被识别为 有效匹配。输入事件流中满足运些条件的连续事件的序列构成样式。在一种实施例中, MATCH_REC0GNI ZE查询的输出是流。在上面所示的查询Q1中,MATCH_REC0GNI ZE子句还包括 几个子子句。
[0080] DEFI肥子子句指定用于每个相关变量的布尔条件。运可被指定为任何逻辑或算术 表达式并且可W对匹配条件的事件的属性应用任何单行或聚合函数。在经由输入数据流接 收新的事件时,在那个时间点相关的相关变量的条件被评估。如果事件满足其定义条件,贝U 该事件已经匹配相关变量。特定的输入可W匹配零个、一个或多个相关变量。在接收输入事 件时要评估的相关条件是通过由PATTERN子句正则表达式支配的处理逻辑W及在处理更早 的输入之后已经到达的样式识别过程的状态确定的。条件可W指对其应用MATCH_ REC0GNI ZE子句的流进行评估的流或视图的模式的任何属性。PATTERN子句中的相关变量不 需要在DEFI肥子句中指定:对于运种相关变量的缺省值是总是为真的谓词。运种相关变量 匹配每个事件。
[0081 ] PARTITION BY子子句指定MATCH_RECOGNIZE子句应当通过其划分其结果的流属 性。如果没有PARTITION BY子句,则所有的流属性属于同一个分区。当PARTITION BY子句与 样式匹配一起存在时,输入数据流基于分区列表中提到的属性被逻辑划分并且样式匹配在 分区内进行。在上面所示的查询Q1中/'clientlcT属性(该属性是流S1和S2的共同属性)在 PARTITION BY子句中指定,通过其,MTCH_RECOGNIZE子句可W划分其结果。
[0082] MEASURES子子句导出(例如,使得可用于包括在沈LECT子句中)成功地匹配指定的 样式的事件的一个或多个属性值并且还使得表达式能够对那些属性值指定。运个子句可被 用来对事件流中匹配DEFI肥子句中条件(相关变量)的事件的属性定义表达式并且给运些 表达式起别名,使得它们可W适合用在运个MATCH_RECOGNIZE条件是其一部分的主查询的 SELECT子句中。事件流的属性可W直接地或经由相关变量被引用。
[0083] PATTERN子子句指定要作为对一个或多个相关变量的正则表达式被匹配的样式。 传入的事件必须按给定的次序(由左到右)匹配运些条件。正则表达式可W由相关变量和诸 如W下的样式限定符组成:
[0084] *:〇或多次
[0085] +:1或多次
[00化]?:0或1次,等等
[0087]在某些实施例中,上面所示的单字符样式限定符是最大的或"贪婪的";它们将尝 试匹配它们对其应用的正则表达式的尽可能多的实例。样式限定符也可W是两个字符,运 是最小的或者"难得的",它们将尝试匹配它们对其应用的正则表达式的尽可能少的实例。 两字符限定符的实例包括但不限于:
[008引 *?:0或多次
[0089] W:1或多次
[0090] ??:0或 1 次
[0091] 作为样式匹配的例子,考虑下面的样式:
[0092] PATTERN(AB*C)
[0093] 运个样式子句意味着,当W下条件被连续传入的输入事件满足时,样式匹配将被 识别出:
[0094] 状态1:确切地一个事件元组匹配定义相关变量A的条件,后面跟着 [00M]状态2:匹配相关变量B的零或多个元组,后面跟着
[0096] 状态3:匹配相关变量C的确切地一个元组。
[0097] 运些状态状态1、状态2和状态3可W表示用于样式(AB*C)的各种状态,其中状态3 是用于样式的最终状态。当样式匹配处于特定状态并且可W保留在相同的特定状态或者可 W由于下一个事件而从该特定状态过渡到下一个状态时,运可W暗示绑定能增长。如果绑 定是在最后的状态,则样式可被认为匹配。而在状态2中,如果匹配相关变量B和C二者(由于 它满足两者的定义条件)的元组或事件到达,则由于用于B的限定符*是贪婪的,因此那个元 组会被认为匹配B而不是C。相应地,由于贪婪属性B会比C得到优先,因此更大数量的B可被 匹配。如果样式表达式是A B*?C,对B使用懒惰或难得的限定符的表达式,则匹配B和C二者 的元组会被认为仅匹配C。因此,在那个例子中,C会比B得到优先并且更少数量的B可被匹 配。
[0098] 在上面所示的查询Q1中,当W下情况发生时,样式(AB)被匹配:
[0099] 状态1:确切地一个事件元组匹配定义相关变量A的条件,后面跟着
[0100] 状态2(最终状态):匹配相关变量B的确切地一个元组。
[0101] 状态状态1和状态2表示用于样式(AB)的各种可能状态,其中状态2是用于该样式 的最终状态。
[0102] W上和W下描述的技术可多种方式并在多种上下文中实现。参考W下附图提 供几个示例实现和上下文,如在下面更详细描述的。但是,W下实现和上下文仅仅是很多当 中的一些。
[0103] 图1绘出了用于跨多个输入数据流执行样式匹配的技术可W在其中实现的简化示 例系统或体系架构100。在体系架构100中,一个或多个用户1〇2(例如,帐号持有人)可W利 用用户计算设备l〇4(l)-(N)(统称为"用户设备104")经一个或多个网络108访问一个或多 个服务提供商计算机106。在一些方面,服务提供商计算机106还可W经网络108与一个或多 个流数据源计算机110和/或一个或多个数据库112通信。例如,用户102可W利用服务提供 商计算机106访问或W别的方式管理流数据源计算机110和/或数据库112的数据(例如,查 询可W对照11〇、112当中任何一个或二者运行)。数据库112可W是关系数据库、S化服务器 等等并且,在一些例子中,可W代表用户102管理历史数据、事件数据、关系、归档的关系等 等。此外,数据库112可W接收或W别的方式存储由流数据源计算机110提供的数据。在一些 例子中,通过提供对数据(例如,历史事件数据、流事件数据等等)的查询(也被称为"查询语 句")或其它请求,用户102可W利用用户设备104与服务提供商计算机106交互。然后,运种 查询或请求可被服务提供商计算机106执行,W处理数据库112的数据和/或从流数据源计 算机110进入的数据。另外,在一些例子中,流数据源计算机110和/或数据库112可W是与服 务提供商计算机106关联的集成式、分布式环境的部分。
[0104] 在一些例子中,网络108可W包括多种不同类型网络当中任何一个或者其组合,诸 如有线网络、互联网、无线网络、蜂窝网络、内联网系统和/或其它专用和/或公共网络。虽然 所说明的例子代表用户102经网络108访问服务提供商计算机106,但是所描述的技术可W 同等地应用在用户102通过固定电话经一个或多个用户设备104、经信息站或者W任何其它 方式与一个或多个服务提供商计算机106交互的情况中。还应当指出,所描述的技术可W应 用在其它客户端/服务器布置(例如,机顶盒等等)当中,W及非客户端/服务器布置(例如, 本地存储的应用等等)当中。
[0105] 用户设备104可W是任何类型的计算设备,诸如但不限于,移动电话、智能电话、个 人数字助理(PDA)、膝上型计算机、台式计算机、瘦客户端设备、平板PC等等。在一些例子中, 用户设备104可W经网络108或者经其它网络连接与服务提供商计算机106通信。另外,用户 设备104还可被配置为提供一个或多个用于请求要处理的数据库112(或者其它数据存储) 的数据的查询或查询语句。
[0106] 在一些方面,服务提供商计算机106也可W是任何类型的计算设备,诸如但不限 于,移动、台式、瘦客户端和/或云计算设备,诸如服务器。在一些例子中,服务提供商计算机 106可W经网络108或者经其它网络连接与用户设备104通信。服务提供商计算机106可W包 括一个或多个服务器,有可能布置在集群中、作为服务器群或者作为彼此不关联的单独服 务器。运些服务器可被配置为执行或W别的方式托管本文所述的特征,包括但不限于,本文 所述的CQL关系的管理、输入关系的生成、与输入关系关联的可配置窗口运算符,和输出关 系的生成。此外,在一些方面,服务提供商计算机106可被配置为包括流数据源计算机110 和/或数据库112的集成式、分布式计算环境的部分。
[0107] 在一种说明性配置中,服务提供商计算机106可W包括至少一个存储器114和一个 或多个处理单元(或(一个或多个)处理器)134。处理器134可W适当地在硬件、计算机可执 行指令、固件或者其组合中实现。(一个或多个)处理器138的计算机可执行指令或固件实现 可W包括W任何合适的编程语言书写的计算机可执行或机器可执行指令,W执行所描述的 各种功能。
[0108] 存储器114可W存储可在(一个或多个)处理器134上加载并执行的程序指令,W及 在运些程序执行过程中生成的数据。取决于服务提供商计算机106的配置和类型,存储器 114可W是易失性的(诸如随机存取存储器(RAM))和/或非易失性的(诸如只读存储器 (ROM)、闪存存储器等等)。服务提供商计算机106或服务器还可W包括附加的储存器136,它 可W包括可移除的储存器和/或不可移除的储存器。附加的储存器136可W包括,但不限于, 磁储存器、光盘和/或带储存器。盘驱动器及其关联的计算机可读介质可W提供用于计算设 备的计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。在一些实现中,存 储器114可W包括多种不同类型的存储器,诸如静态随机存取存储器(SRAM)、动态随机存取 存储器(DRAM)或ROM。
[0109] 都是可移除和不可移除的存储器114、附加的储存器136全是计算机可读存储介质 的例子。例如,计算机可读存储介质可W包括W任何方法或技术实现的易失性或非易失性、 可移除或不可移除的介质,用于存储诸如计算机可读指令、数据结构、程序模块或其它数据 的信息。存储器114和附加的储存器136都是计算机存储介质的例子。
[0110] 服务提供商计算机106还可W包含允许服务提供商计算机106与所存储的数据库、 另一计算设备或服务器、用户终端和/或其它设备在网络108上通信的(一个或多个)通信连 接138。服务提供商计算机106还可W包括(一个或多个)输入/输出(I/O)设备140,诸如键 盘、鼠标、笔、语音输入设备、触摸输入设备、显示器、一个或多个扬声器、打印机等等。
[0111] 更具体地转向存储器114的内容,存储器114可W包括操作系统124和用于实现本 文所公开的特征的一个或多个应用程序或服务,包括至少输入数据流模块116、动态数据类 型生成模块118、组合数据流生成模块120和样式检测模块122。如本文所使用的,模块可W 指由服务器或服务器集群执行的作为服务的一部分的编程模块。在运种特定的语境下,模 块可被作为服务提供商计算机106的一部分的服务器或服务器集群执行。在其它实施例中, 模块可W由WL引擎和/或CQ服务200执行(在图2中示出),其可W是服务供应商的计算机 106的一部分。在各种实施例中,并且如下面将详细讨论的,模块116、118、120和122可被配 置为执行使得能够跨多个输入数据流检测样式的功能。运些模块可W在硬件或软件或其组 合中实现。图1中绘出的各种模块为了说明的目的而不是意在限制本发明的实施例的范围。 备选实施例可W包括比图1中所示的那些更多或更少的模块。
[0112] 在一种实施例中,输入数据流模块116可被配置为接收、识别、生成或W其它方式 提供一个或多个输入数据流126。在一个例子中,(一个或多个)输入数据流126可W包括与 一个或多个应用相关的数据或事件的传入的连续数据流。在一些实施例中,输入数据流126 可W从数据源计算机110和/或数据库112接收。
[0113] 在一些例子中,(一个或多个)输入数据流126可W包括与一个或多个应用相关的 一系列加时间戳的元组或数据记录。例如,(一个或多个)输入数据流126中的每个数据记录 可W包括可由W下模式表示的事件流条目:(<time_s tamp〉,〈attribute (S)〉),其中< attributes〉表示模式的数据部分并且可W包括一个或多个属性。
[0114] 作为例子,考虑(一个或多个)输入数据流126包括第一数据流和第二数据流。为了 运个例子,进一步考虑第一输入数据流包括与第一应用(例如,汽车租赁预订应用)相关的 第一组事件并且第二输入数据流包括与第二应用(例如,航班预订应用)相关的第二组事 件。此外,考虑第一输入数据流由第一模式S1定义:(cl,intege;r,c2intege;r)并且第二输入 数据流由第二模式S2定义:(cl,integer,cSinteger)。
[0115] 在一种实施例中,第一输入数据流和第二输入数据流可被分析,W检测样式,其 中,"样式"可W构成第一数据流中一个事件的发生,后面跟着第二数据流中另一个事件的 发生。在一个例子中,样式匹配可通过对传入的连续数据流应用连续查询(例如,C化查询) 来执行。图2描述了用于通过对多个输入数据流应用C化查询来执行样式匹配的CQL引擎和/ 或CQ服务200的至少一种实现。虽然上面的讨论设及跨第一数据流和第二数据流检测样式 的检测,但应当认识到,在至少一些实施例中,所公开的技术可W应用于跨多个连续的输入 数据流检测样式。
[0116] 在一些实施例中,输入数据流的分析最初可W由动态数据类型生成模块118执行。 在一种实施例中,动态数据类型生成模块118可被配置为从输入数据流模块116接收第一输 入数据流和第二输入数据流并且识别输入数据流中的一个或多个属性。在一些例子中,动 态数据类型生成模块118可被配置为识别第一数据流的第一属性和第二数据流的第二属 性。在一个例子中,第一属性可被识别为不在第二数据流中存在的属性并且第二属性可被 识别为不在第一数据流中存在的属性。
[0117] 经由上面讨论的流S1和S2的例子,在一种实施例中,动态数据类型生成模块118可 W将第一属性"c2"识别为第一数据流S1中不在第二数据流S2中存在的属性。类似地,动态 数据类型生成模块118可W将第二属性"c3"识别为第二数据流S2中不在第一数据流S1中存 在的属性。虽然上面的讨论设及在流S1和S2中识别出的第一属性和第二属性,但是应当认 识到,在其它实施例中,动态数据类型生成模块118可被配置为从流S1和S2识别附加属性。
[0118] 在一些实施例中,动态数据类型生成模块118可被配置为生成用于第一属性的第 一动态数据类型和用于第二属性的第二动态数据类型。在一个例子中,第一动态数据类型 被配置为存储对应于第一数据流的第一属性的第一数据值并且第二动态数据类型被配置 为存储对应于第二数据流的第二属性的第二数据值。
[0119] 在一些实施例中,动态数据类型可被实现为包括一个或多个在本文中被称为"字 段"成员类型的复合数据类型。在一个例子中,成员字段可W包括名称和关联的类型。字段 类型可W是任何C化原生类型,诸如像CQL可扩展类型。在一些例子中,服务(例如,图2中所 示的CQL引擎和/或CQ服务200)可被配置为通过提供一个或多个应用编程接口(API)实现用 于动态数据类型的CQL可扩展类型,通过运些API,动态数据类型可W通过指定其公开字段 (例如,字段名、字段的数据类型)被创建和定义。
[0120] 在某些实施例中,动态数据类型生成模块118可被配置为识别共同属性,共同属性 可被识别为是在第一数据流和第二数据流中都存在的属性。在一种实施例中,动态数据类 型生成模块118然后可被配置为生成表示第一输入数据流和第二输入数据流的同质模式 128。在一个例子中,同质模式128可W包括第一输入数据流和第二输入数据流的一个或多 个属性的表示,包括共同属性和第一动态数据类型和第二动态数据类型。
[0121] 经由上面所示的第一输入数据流S1和第二输入数据S2的例子,在一种实施例中, 可W如下生成用于流S1和S2的同质模式:
[0122] 同质模式:($s1:reamName char, clint, SlTypliDynamicType(^i;rt;ridge , S2Typ2@ DynamicTypeC曰rtridge)
[0123] 在运里,"$streamName"指同质模式中具有数据类型char的属性。"$streamNam"属 性从输入数据流中识别接收到的输入元组(事件)的输入数据流源。对于事件"e","$ S treamNam"属性可W存储其中"e"是事件的流别名的名称。因此,"$ S treamName"属性使得 能够识别当前输入事件(元组)所属的特定输入数据流。"cl"指同质模式中的共同属性,其 中共同属性被识别为在每个参与的输入数据流中具有相同数据类型和的相同名称的属性。 例如,共同属性"cl"可W指识别访问与输入数据流S1和S2相关的第一应用和第二应用的用 户的用户属性。在一些例子中,包括共同属性的同质模式可W使PARTITION by子句的规范 能够创建本身可W包含来自不同输入数据流的事件的子流。
[0124] 此外,"Typl@DynamicTypeCa;rt;ridge"指被配置为存储对应于第一数据流的第一 属性的第一数据值的第一动态数据类型。在一个例子中,"Typl@DynamicTypeCa;rt;ridge"可 被用来存储对应于第一输入数据流S1中的第一属性"c2"的数据值。作为例子,第一输入数 据流S1中的第一属性"c2"可W指存储来自访问第一应用(例如,汽车租赁预订应用)的用户 的汽车预订标识号的车预订属性。
[0125] 类似地,叮yp2@DynamicTypeCadridge"指被配置为存储对应于第二数据流的第 二属性的第二数据值的第二动态数据类型。在一个例子中,叮yp2@DynamicType&d;ridge" 可被用来存储对应于第二输入数据流S2中的第二属性"c3"的数据值。作为例子,第二输入 数据流S2的第二属性"c3"可W指存储用于访问第二应用(例如,航班预订应用)的用户的航 班预订标识号的航班预订属性。
[01%] 对于上面的例子,可W观察到,有一个用于类型S1的属性(例如,"c2")"Typl@ DynamicTypeCartridge"和一个用于类型 S2 的属性(例如,"c3" ) "Typ2@ DynamicType&;rt;ridge"。叮ypl@DynamicType(^i;rt;ridge"可 W包括用于相同数据类型的流 S1的每个属性的一个公共字段。类似地,叮yp2咖ynamicTypehdridge"可W包括用于流S2 的每个属性的一个公共字段。可W指出,Typl和Typ2是内部类型并且可W是最终用户不可 见的。对于所考虑的例子,Typl可W包括公共字段"cl"和"c2",而Typ2可W包括公共字段 "cl"和"c3"。
[0127]基于运样生成的同质模式,在一种实施例中,组合数据流生成模块120可被配置为 生成组合数据流。在一个例子中,组合数据流可W通过执行第一输入数据流和第二输入数 据流的UNION来生成,其中第一输入数据流和第二输入数据流由同质模式S表示。在一个例 子中,WL UNION A化子查询可W基于同质模式S被应用到第一数据流S1和第二数据流S2, W组合流S1和S2的结果集。同质模式的生成使UNION A化子查询中的每个CQL SELECT语句 能够在结果集中具有相同数量的字段和类似的数据类型。相应地,流S1和S2的结果集可W 基于同质模式利用UNION A化子查询中的SELECT语句来组合。在图4中讨论可W利用UNION A化子查询组合第一数据流和第二数据流W生成组合数据流的方式。
[0128] 在一些实施例中,样式检测模块122然后可被配置为基于组合数据流检测样式 132。在一种实施例中,样式检测模块可被配置为通过对组合数据流应用MATCH_RECOGNIZE 子句来输出样式匹配。作为例子,检测到的样式可W包括第一输入数据流S1中第一事件的 (例如,用户对汽车的预订巧Ij达,后面跟着第二输入数据流S2中第二事件(例如,机票发给 用户)的到达。样式检测模块可被配置为在识别多个输入数据流的C化查询中执行样式识别 的方式在图3中讨论。
[0129] 图2示出了可W描述用于跨多个输入数据流的样式检测的特征的简化框图。如图 所示,图2描述了用于管理多个输入数据流的CQL引擎和/或CQ服务200的至少一种实现。在 一些实施例中,图1中所示的模块116、118、120和122可W由CQL引擎和/或CQ服务200执行。 C化引擎和/或CQ服务200最初可W从输入源204接收信息。在一个例子中,输入源204可W包 括接收传入的连续输入数据流的数据源计算机110,传入的连续输入数据流包括与一个或 多个应用相关的数据或事件。在某些实施例中,当包括第一输入数据流S1206和第二输入数 据流S2 208的查询(例如,C化查询)被识别或接收到时,C化引擎200可W解析该查询,W便 跨流S1和S2检测样式。在一种实施例中,C化引擎和/或CQ服务200可W通过首先执行第一输 入数据流和第二输入数据流的UNION来执行C化查询,其中第一输入数据流和第二输入数据 流由同质模式S表示。在一种实施例中,同质模式S可W由如在图1中所讨论的动态数据类型 生成模块118生成。
[0130] 然后,输入数据流S1和S2可W基于同质模式被组合,W生成组合数据流。在一种实 施例中,组合数据流可W由组合数据流模块120生成。然后,样式检测模块122可W处理对组 合数据流的连续查询(例如,C化查询),W便跨输入数据流检测样式。在一种实施例中,样式 检测模块可被配置为通过对组合数据流应用MATCH_RECOGNIZE子句来输出样式匹配。在一 些例子中,然后,CQL引擎和/或CQ服务200可W将检测到的样式存储在输出目的地212中,诸 如像图1中所示的数据库112中。
[0131] 图3是根据本公开内容的一种实施例、利用识别多个输入数据流的CQL查询执行样 式识别的示例性说明。在一个例子中,查询300是指定要跨第一输入数据流S1和第二输入数 据流S2匹配的样式的连续(例如,C化)查询。在图3所示的例子中,流S1和S2在用括号包围的 W逗号隔开的列表中指定并且作为输入提供给MATCH_RECOGNIZE子句。其结果是,查询300 的FROM子句可W方便地利用下式表示:(S1,S2)MTCH_RECOGNIZE。在一些例子中,列表中的 每个流可被识别为基本流或者对流的视图评估或者对流的子查询评估。
[0132] 当流S1和S2如W上所讨论的那样利用逗号隔开的列表指定时,每个参与的流可能 需要利用独特的别名来识别。因此,例如,如果MATCH_RECOGNIZE子句对{S,引应用,则FROM 子句可能需要被指定为(S,S AS S1)MATCH_REC0GNIZE。即,可选的AS子句可能需要被引入, W便给第二个流S取别名,W确保独特的别名。可W指出,在其它例子中,如果未指定明确的 AS子句,则流名称可被认为是别名。
[0133] 在一些实施例中,流S1和S2表达为逗号隔开的列表可W对输入数据流S1和S2的 UNION进行评估,其中流S1和S2由同质模式定义。在一种实施例中,并且如在图4中详细讨论 的,组合数据流可W基于UNION A化子查询的执行而生成并且组合数据流可W作为输入被 提供给MATCH_REC0GNIZE子句。然后,MTCH_REC0GNIZE可被用来检测组合数据流中的样式。
[0134] 如上面所讨论的,利用MATCH_RECOGNIZE子句,用户可W对传入的事件的属性定义 条件并且通过利用被称为相关变量的标识符识别用于样式匹配的条件。样式识别功能允许 用户对传入的事件或元组的属性定义条件并且通过利用被称为相关变量的串名称识别运 些条件。
[0135] 在查询300中,"A"是相关变量。要匹配的样式被指定为对运个相关变量的正则表 达式并且确定条件应当被要被识别为有效匹配的不同的传入事件满足的顺序或次序。在一 个例子中,输入数据流S1和S2中满足运些条件的连续事件序列构成样式。在一种实施例中, MATCH_RECOGNIZE查询的输出是流。
[0136] 图4是根据本公开内容的另一实施例、利用识别多个输入数据流的CQL查询执行样 式识别的示例性说明。在一种实施例中,图4中所示的查询400绘出了查询300的FROM子句的 内部表示。在一个例子中,FROM子句可被表示为流S1和S2的UNION A化子查询,其中流S1和 S2由同质模式表示。
[0137] 对于图4中所示的例子,表示流S1和S2的同质模式可W如下生成:
[013 引 同质模式 S:($streamName char, Clint, ELEMENT_TIME int,SlTypl@ DynamicTypeC曰rtridge,S2
[0139] Typ2@DynamicType&;rt;ridge(^i;rt;ridge)
[0140] 在运里,叮7口1@〇711曰111;[(3了7口6化1'付1(1旨6"表示为不在流52中存在的流51的属性生 成的第一动态数据类型。类似地,叮yp2@DynamicType^d;ridge"表示为不在流SI中存在的 流S 2的属性生成的第二动态数据类型。对于图4中所示的例子,"T y P 1 @ DynamicTypeCa;rt;ridge"表示用于不在流S2中存在的流S1中的第一属性"c2"的第一动态数 据类型,并且"Typ2@DynamicTypeCa;rt;ridge"表示用于不在流S1中存在的流S2中的第二属 性"c3"的第二动态数据类型。
[0141] 在一种实施例中,W上讨论的动态数据类型和同质模式的生成可W使得流S1和S2 的各个特定于流的属性能够如下被访问。在运行时,对于从流S1接收到的事件,"Typl@ DynamicTypeCartridge"动态数据类型可被配置为利用表达式"Typl@ DynamicTypeCa;rt;ridge(cl, c2)AS S1"表示不在S2中的来自流S1 的第一属性"c2",而 "Typ2@DynamicTypeCa;rt;ridge"动态数据类型可被配置为利用表达式"Typ2@ DynamicTypeCa;rt;ridge( )AS S2"表示不在S1中的来自流S2的第二属性"c3"。在一个例子 中,"Typ2@DynamicTypeCa;rt;ridge"可W对接收到的事件对流S2的第二属性"c3"存储N1XL 值。
[0142] 类似地,对于从流S2接收到的事件,叮791@〇711曰1]1;[(3了796化的1'1(1旨6"动态数据类型 可被配置为将不在S2中的来自流S1的第一属性("c2")表示为"Typl@ DynamicTypeCartridge( )AS Sr 并且为属性 "c2"存储NULL值。此外,"Typ2@ 0711日111;[。了796化1'化1(1旨6"可被配置为利用表达式'叮792@07]1日111;[。了796化1'化1(1旨6(。1,。3)八5 S2"表示不在S1中的来自流S2的第二属性"c3"。在一种实施例中,利用上面讨论的动态数据 类型表示,属性"c2"可W在CQL查询中作为S1.C2被访问并且属性"c3"可W在C化查询中作 为S2.C3被访问。
[01创此外,在图4中所示的例子中,属性"cr和巧LEMENT_TIM护(时间戳值)可被识别为 共同属性。在一些例子中,共同属性"cl"可W利用同质模式或者作为A.cl或者作为A.S1.cl 被访问。在一些例子中,PARTITION BY子句也可被用来访问共同属性。
[0144] 可W认识到,上面讨论的同质模式和动态数据类型的生成使得UNION A化查询中 的每个CQL SELECT语句在结果集中具有相同数量的字段和类似的数据类型。此外,动态数 据类型使"WJLL"值被分配给不属于特定流的属性。在一种实施例中,然后,通过应用CQL UNION A化子查询W组合流S1和S2的结果集,数据流S1和S2的结果集可W基于同质模式被 组合,W生成组合数据流。组合数据流可被生成的方式可W利用下面的非限制性例子来解 释。
[0145] 作为例子,考虑第一输入数据流S1接收下面的事件和关联的时间戳:
[0146] ...
[0147] (〈timestamp 1000〉,<C1 1,C2 5〉)
[014引(〈timestamp 2000〉,<C1 1,C2 10〉)
[0149] (〈timestamp 3000〉,<C1 1C2 15〉)
[0150] ...
[0151] 类似地,考虑第二输入数据流S2接收下面的事件和关联的时间戳:
[0152] ...
[0153] (〈timestamp 1000〉,<C1 1,C3 5〉)
[0154] (〈timestamp 2000〉,<C1 1,C3 10〉)
[01 巧](〈timestamp 3000〉,<C1 1C3 15〉)
[0156] ...
[0157] 上面所示的流SI和S2的结果集可被组合,W生成如下所示的组合数据流。在一个 例子中,组合数据流包括可W基于如上讨论的同质模式利用UNION A化子查询中的SELECT 语句组合的流S1和S2的结果集。在一个例子中,组合数据流可W由W下同质模式($ streamName, cl, S1. c2, S2, c3)识别并且可W包括W下事件和关联的时间戳:
[015引...
[0159] (〈timestamp 1000〉,<S1,C1 1,C2 5,N化L〉)
[0160] (〈timestamp 1000〉,<S2,Cl 1,C2NU化,C3 5〉)
[0161] (〈timestamp 2000〉,<S1,Cl 1,C2 10,C3NU化〉)
[0162] (〈timestamp 2000〉,<S2,Cl 1,C2NU化,C3 10〉)
[0163] (〈timestamp 3000〉,<S1,Cl 1,C2 1,C3NU化〉)
[0164] (〈timestamp 3000〉,<S2,Cl 1,C2NU化,C3 15〉)
[01 化]...
[0166] 图5和6示出了示出用于实现本文所述跨多个输入数据流的样式检测的相应过程 500和600的示例流程图。运些过程500和600被示为逻辑流程图,其每个操作代表可W在硬 件、计算机指令或者其组合中实现的一系列操作。在计算机指令的语境下,操作代表存储在 一个或多个计算机可读存储介质上的计算机可执行指令,当指令被一个或多个处理器执行 时,执行所述操作。一般而言,计算机可执行指令包括执行特定功能或实现特定数据类型的 例程、程序、对象、组件、数据结构等。操作被描述的次序并不是要被解释为限制,并且任何 数量的所描述操作都可任何次序和/或并行地被组合,W实现过程。
[0167] 此外,一些、任何或全部过程可W在利用可执行指令配置的一个或多个计算机系 统的控制下执行并且可w实现为在一个或多个处理器上共同执行的代码(例如,可执行指 令、一个或多个计算机程序,或者一个或多个应用)、硬件或者其组合。如W上所指出的,代 码可W存储在计算机可读存储介质上,例如,W包括可由一个或多个处理器执行的多条指 令的计算机程序的形式。计算机可读存储介质可W是非暂态的。
[0168] 图5是绘出根据本公开内容的一种实施例、用于跨多个输入数据流检测样式的过 程的高级流程图。在一些例子中,在至少图1(及其它图)中所示的一个或多个服务提供商计 算机1〇6(例如,利用至少输入数据流模块116、动态数据类型生成模块118、组合数据流生成 模块120或样式检测模块122)可W执行图5的过程500。过程500可W在502通过包括识别和/ 或接收第一输入数据流和第二输入数据流开始。
[0169] 在504,过程500可W包括生成表示第一输入数据流和第二输入数据流的同质模 式。同质模式可W通过其生成的过程在图6中详细讨论。
[0170] 在506,过程500可W包括基于同质模式组合第一输入数据流和第二输入数据流, W生成组合数据流。在一种实施例中,生成组合数据流可W包括从第一输入数据流选择第 一组元组(经由第一CQL SELECT语句)、从第二输入数据流选择第二组元组(经由第一CQL 沈LECT语句)并且对第一组元组和第二组元组处理子查询(例如,UNION A化子查询),W生 成组合数据流。如上面所讨论的,同质模式的生成使UNION A化子查询中的每个CQL SELECT 语句能够在结果集中具有相同数量的字段和类似的数据类型。相应地,流S1和S2的结果集 可W基于同质模式利用UNION A化子查询中的SELECT语句被组合,W生成组合数据流。
[0171] 在508,过程500可W包括处理对组合数据流的连续查询(例如,C化查询),W识别 样式。在一种实施例中,基于UNION A化子查询的执行所生成的组合数据流可W作为输入被 提供给MATCH_REC0GNI ZE子句。如在图3中所讨论的,MATCH_REC0GNI ZE子句可被用来对组合 数据流处理C化查询,W检测组合数据流中的样式。
[0172] 图6是绘出根据本公开内容的一种实施例、用于生成同质模式的过程的高级流程 图。在一种实施例中,过程600描述执行在图5中讨论的过程504的更多细节。
[0173] 在602,过程600可W包括识别第一输入数据流的第一属性。
[0174] 在604,该过程可W包括识别第二输入数据流的第二属性。在一种实施例中,第一 属性可被识别为不在第二输入数据流中存在的属性并且第二属性可被识别为不在第一输 入数据流中存在的属性。
[0175] 在606,过程600可W包括生成表示第一输入数据流的第一属性的第一动态数据类 型。在608,过程600可W包括生成表示第二输入数据流的第二属性的第二动态数据类型。
[0176] 在610,过程600可W包括识别共同属性。在一种实施例中,共同属性可被识别为在 第一输入数据流和第二输入数据流中都存在的属性。
[0177] 在612,过程600可W包括生成同质模式。在一种实施例中,并且如在图2中详细描 述的,同质模式可W包括第一输入数据流和第二输入数据流的一个或多个属性的表示,该 表示包括包括至少共同属性、第一动态数据类型和第二动态数据类型。
[0178] 图7绘出了可W结合本公开内容的实施例的事件处理系统700的简化高层示图。事 件处理系统700可W包括一个或多个事件源704、706、708、配置为提供用于处理事件流的环 境的事件处理服务器化PS)702、W及一个或多个事件接收器(710、712)。事件源生成由EPS 702接收的事件流。EPS 702可W从一个或多个事件源704、706、708接收一个或多个事件流。 例如,如在图7中所示出的,EPS 702从事件源704接收输入事件流714、从事件源706接收第 二输入事件流716、W及从事件源708接收第Ξ事件流718。一个或多个事件处理应用(720、 722和724)可W部署在EPS 702上并且被其执行。由EPS 702执行的事件处理应用可被配置 为监听一个或多个输入事件流、基于从输入事件流选择一个或多个事件作为显著事件的处 理逻辑处理经所述一个或多个事件流接收到的事件。显著事件然后可-个或多个输出 事件流的形式被发送到一个或多个事件接收器710、712。例如,在图7中,EPS 702将输出事 件流726输出到事件接收器710,并且将第二输出事件流728输出到事件接收器712。在某些 实施例中,事件源、事件处理应用和事件接收器彼此分离,使得在不对其它组件造成变化的 情况下,可W添加或去除运些组件中的任何组件。
[0179] 在一种实施例中,EPS 702可被实现为包括轻量级化va应用容器的化va服务器,诸 如基于Equinox OSGi、具有共享服务的服务器。在一些实施例中,EPS 702可W例如通过利 用JRockit Real Time支持处理事件的超高吞吐量和微秒级延迟。EPS 702也可W提供包括 用于开发事件处理应用的工具(例如,Oracle CEP Visualize!·和Oracle CEP IDE)的开发 平台(例如,完全实时的端对端化va事件驱动体系架构化DA)开发平台)。
[0180] 事件处理应用被配置为监听一个或多个输入事件流、执行用于从运一个或多个输 入事件流选择一个或多个显著事件的逻辑(例如,查询)、W及经一个或多个输出事件流将 选定的显著事件输出到一个或多个事件源。图7提供了用于一个运种事件处理应用720的展 开图。如在图7中所示出的,事件处理应用720被配置为监听输入事件流718、经由包括用于 从输入事件流718选择一个或多个显著事件的逻辑的CQL引擎/CQ服务200执行查询、W及经 输出事件流728将选定的显著事件输出到事件接收器712。事件源的例子包括,但不限于,适 配器(例如,JMS、HTTP和文件)、信道、处理器、表、高速缓存,等等。事件接收器的例子包括, 但不限于,适配器(例如,JMS、HTT巧日文件)、信道、处理器、高速缓存,等等。
[0181] 虽然图7中的事件处理应用720被示为监听一个输入流并且经一个输出流输出选 定的事件,但运不是要进行限制。在可替代的实施例中,事件处理应用可被配置为监听从一 个或多个事件源接收到的多个输入流、从被监视的流中选择事件、并且经一个或多个输出 事件流将选定的事件输出到一个或多个事件接收器。同一查询可W与多于一个的事件接收 器和与不同类型的事件接收器相关联。
[0182] 由于其无界的性质,经事件流接收到的数据的量通常非常大。因此,为了查询目的 存储或归档所有数据通常是不切实际的并且不是所期望的。事件流的处理需要随着事件被 EPS 702接收实时地进行事件处理,而不必存储所有接收到的事件数据。因此,EPS 702提供 特殊的查询机制,其使得事件的处理随着事件被EPS 702接收来执行,而不必存储所有接收 到的事件。
[0183] 事件驱动的应用是规则驱动的并且运些规则可用来处理输入流的连续查询 的形式来表达。连续查询可W包括识别要为接收到的事件执行的、包括哪些事件要被选择 作为显著事件的处理并且输出作为查询处理的结果的指令(例如,业务逻辑)。连续查询可 被持久保存到数据存储库并且用于处理输入事件流和生成输出事件流。连续查询通常执行 过滤和聚合功能,W从输入事件流中发现和提取显著事件。因此,输出事件流中的出站事件 的数量通常比从中选择事件的输入事件流中的事件的数量少得多。
[0184] 不像在有限数据集运行一次的S化查询,已由应用向EPS 702注册用于特定事件流 的连续查询可W在每次那个事件流中接收到事件时被执行。作为连续查询执行的部分,EPS 702基于由连续查询指定的指令评估接收到的事件,W确定一个或多个事件是否要被选择 作为显著事件,并且作为连续查询执行的结果输出。
[0185] 连续查询可W利用不同的语言来编程。在某些实施例中,连续查询可W利用由 Oracle公司提供的并且被Oracle的复杂事件处理(Complex Exents Processing,CEP)产品 系列使用的CQL进行配置。Oracle的CQL是可W用来编程可针对事件流执行的查询(被称为 C化查询)的声明性语言。在某些实施例中,C化基于SQL,其中添加了支持流事件数据的处理 的构造。
[0186] 在一种实施例中,事件处理应用可W由W下组件类型构成:
[0187] (1)直接接口到输入和输出流W及关系源和接收器的一个或多个适配器。适配器 被配置为理解输入和输出流协议,并且负责将事件数据转换为可被应用处理器查询的规格 化的形式。适配器可W将规格化的事件数据转发到信道或者输出流和关系接收器。可W为 各种数据源和接收器定义事件适配器。
[0188] (2)充当事件处理端点的一个或多个信道。除其它之外,信道还负责将事件数据排 队,直到事件处理代理可W对其操作。
[0189] (3) -个或多个应用处理器(或事件处理代理)被配置为消费来自信道的规格化事 件数据、利用查询处理它W选择显著事件、并且将选定的显著事件转发(或者复制)到输出 信道。
[0190] (4) 一个或多个bean被配置为监听输出信道,并且由于新事件插入到输出信道中 而被触发。在一些实施例中,运种用户代码是简单的老化va对象(plain-old-Java-object, P0J0)。用户应用可W利用一组外部服务,诸如JMS、Web服务和文件书写器,把生成的事件转 发到外部事件接收器。
[0191] (5)事件bean可被注册,W监听输出信道,并且由于新事件插入到输出信道中而被 触发。在一些实施例中,运种用户代码可W使用化acle CEP事件bean API,使得bean可被 Oracle CEP管理。
[0192] 在一种实施例中,事件适配器向输入信道提供事件数据。输入信道连接到与一个 或多个CQL查询相关联的C化处理器,其中CQL查询对由输入信道提供的事件操作。C化处理 器连接到查询结果要写到其的输出信道。
[0193] 在一些实施例中,组装文件可W提供给事件处理应用,该文件描述事件处理应用 的各种组件、组件如何被连接到一起、被应用处理的事件类型。可W提供单独的文件,用于 为事件的选择指定连续查询或业务逻辑。
[0194] 应当认识到,图7中所绘出的系统700可W具有除图7中所绘出的之外的其它组件。 另外,图7中所示的实施例仅仅是可W结合本公开内容实施例的系统的一个例子。在一些其 它实施例中,系统700可W具有比图7中所示更多或更少的组件、可W组合两个或更多个组 件、或者可W具有组件的不同配置或布置。系统700可W是各种类型,包括个人计算机、便携 式设备(例如,移动电话或设备)、工作站、网络计算机、大型机、信息站、服务器,或者任何其 它数据处理系统。在一些其它实施例中,系统700可被配置为分布式系统,其中系统700的一 个或多个组件跨云中的一个或多个网络分布。
[01%]图7中所绘出组件中的一个或多个组件可W用软件、用硬件或者其组合来实现。在 一些实施例中,软件可w存储在存储器(例如,非暂态计算机可读介质)、存储器设备或某种 其它物理存储器上,并且可W由一个或多个处理单元(例如,一个或多个处理器、一个或多 个处理器核屯、、一个或多个GPU,等等)执行。
[0196] 在一些图中绘出的系统可W在各种配置中提供。在一些实施例中,系统可被配置 为分布式系统,其中系统的一个或多个组件在云计算系统中跨一个或多个网络分布。
[0197] 图8绘出了用于实现其中一种实施例的分布式系统800的简化图。在所示出的实施 例中,分布式系统800包括一个或多个客户端计算设备802、804、806和808,其被配置为经一 个或多个网络810执行和操作客户端应用,诸如web浏览器、专有客户端(例如,Oracle 化rms)等。服务器812可W经由网络810与远程客户端计算设备802、804、806和808通信地禪 厶 1=1 〇
[0198] 在各种实施例中,服务器812可W适于运行由系统的组件中的一个或多个组件提 供的一个或多个服务或软件应用。服务器或软件应用可W包括非虚拟和虚拟环境。虚拟环 境可W包括用于虚拟事件、展览会、模拟器、教室、购物交易和企业的那些环境,无论是二维 或Ξ维(3D)表示、基于页面的逻辑环境、还是W其它方式。在一些实施例中,运些服务可W 作为基于web或云的服务提供或者根据软件即服务(Software as a Service,SaaS)模型提 供给客户端计算设备802、804、806和/或808的用户。操作客户端计算设备802、804、806和/ 或808的用户又可W利用一个或多个客户端应用与服务器812交互,W利用由运些组件提供 的服务。
[0199] 在该图绘出的配置中,系统800的软件组件818、820和822被示为在服务器812上实 现。在其它实施例中,系统800的组件中的一个或多个组件和/或由运些组件提供的服务也 可W由客户端计算设备802、804、806和/或808中的一个或多个来实现。操作客户端计算设 备的用户然后可W利用一个或多个客户端应用来使用由运些组件提供的服务。运些组件可 W用硬件、固件、软件或其组合来实现。应当理解,各种不同的系统配置是可能的,运些配置 可W与分布式系统800不同。在该图中示出的实施例因此是用于实现实施例系统的分布式 系统的一个例子并且不是要作为限制。
[0200] 客户端计算设备802、804、806和/或808可W是运行诸如Microsoft Windows Mobile?和/或诸如i〇S、Windows Phone、And;roid、BlackBe;r;ry 10、Palm OS等各种移动操 作系统的软件并且启用互联网、电子邮件、短消息服务(SMS)、Blackbeiry?或其它通信 协议的便携式手持设备(例如,iPh(me@、蜂窝电话、iPad?、计算平板电脑、个人数字助 理(PDA))或可穿戴设备(例如,GoogleG:laSS@头戴式显示器)。客户端计算设备可W是通 用个人计算机,作为例子,包括,运行各种版本的Mic;rosoft\VindoWsW%Apple Maeintosh?和/或Linux操作系统的个人计算机和/或笔记本计算机。客户端计算设备可 W是运行任何各种商用UNIX:?或类UNIX操作系统,包括但不限于各种GNU/Linux操作系 统,诸如像,Google化rome 0S的工作站计算机。可替代地或附加地,客户端计算设备802、 804、806和808可W是能够通过(一个或多个)网络810通信的任何其它电子设备,诸如瘦客 户端计算机、启用互联网的游戏系统(例如,具有或不具有Kineet?手势输入设备的 Microsoft甜0X游戏控制台)和/或个人消息传送设备。
[0201] 虽然示例性分布式系统800被示为具有四个客户端计算设备,但是任何数量的客 户端计算设备都可被支持。诸如具有传感器的设备等的其它设备可W与服务器812交互。
[0202] 在分布式系统800中的(一个或多个)网络810可W是对本领域技术人员熟悉的、可 W支持利用包括但不限于TCP/IP(传输控制协议/互联网协议)、SNA(系统网络体系结构)、 IPX(互联网数据包交换)、AppleTalk等任何各种商用协议的数据通信的任何类型的网络。 仅仅作为例子,(一个或多个)网络810可W是局域网(LAN),诸如基于W太网、令牌环等的网 络。(一个或多个)网络810可W是广域网和互联网。它可W包括虚拟网络,包括但不限于,虚 拟专用网(VPN)、内联网、外联网、公共交换电话网(PSTN)、红外网络、无线网络(例如,在任 何电气和电子协会(IEEE)802.11协议套件、蓝牙和/或任何其它无线协议下操作的网络); 和/或运些和/或其它网络的任意组合。
[0203] 服务器812可W由一个或多个通用计算机、专用服务器计算机(作为例子,包括PC (个人电脑)服务器、UNIX?服务器、中档服务器、大型计算机、机架式服务器等)、服务器 农场、服务器集群或者任何其它适当的布置和/或组合组成。服务器812可W包括运行虚拟 操作系统的一个或多个虚拟机,或设及虚拟化的其它计算体系架构。逻辑存储设备的一个 或多个灵活池可被虚拟化,W维护用于服务器的虚拟存储设备。虚拟网络可W由服务器812 利用软件定义的网络来控制。在各种实施例中,服务器812可W适于运行在上述公开内容中 描述的一个或多个服务或软件应用。例如,服务器812可W对应于用于执行上述根据本公开 内容的实施例的处理的服务器。
[0204] 服务器812可W运行操作系统,包括任何W上讨论的操作系统,
[0205] W及任何商用的服务器操作系统。服务器812也可W运行任何各种附加的服务器 应用和/或中间层应用,包括HTTP(超文本传输协议)服务器、FTP(文件传输协议)服务器、 CGI (公共网关接口)服务器、JAVA?服务器、数据库服务器等。示例性数据库服务器包括 但不限于来自Oracle、Mic;rosoft、Sybase、IBM(国际商业机器公司)等的那些商用数据库服 务器。
[0206] 在一些实现中,服务器812可W包括一个或多个应用,W分析和整合从客户端计算 设备802、804、806和808的用户接收到的数据馈送和/或事件更新。作为例子,数据馈送和/ 或事件更新可W包括,但不限于,Twit化r?馈送、Faeebook?要新或者从一个或多个第 Ξ方信息源和连续数据流接收到的实时更新,其可W包括与传感器数据应用、金融报价机、 网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车交通监视等相 关的实时事件。服务器812也可W包括一个或多个应用,W经由客户端计算设备802、804、 806和808中的一个或多个显示设备显示数据馈送和/或实时事件。
[0207] 分布式系统800也可W包括一个或多个数据库814和816。数据库814和816可W驻 留在各种位置。作为例子,数据库814和816中的一个或多个数据库可W驻留在服务器812本 地的非暂态存储介质上(和/或驻留在服务器812中)。可替代地,数据库814和816可W远离 服务器812,并且经由基于网络的或专用的连接与服务器812通信。在一组实施例中,数据库 814和816可W驻留在存储区域网络(SAN)中。类似地,用于执行属于服务器812的功能的任 何必要的文件可W按照需要本地存储在服务器812上和/或远程地存储。在一组实施例,数 据库814和816可W包括适于响应于S化格式的命令而存储、更新和检索数据的关系数据库, 诸如由化acle提供的数据库。
[0208] 图9是根据本公开内容实施例的、通过其由实施例系统的一个或多个组件提供的 服务可被提供为云服务的系统环境900的一个或多个组件的简化框图。在所示出的实施例 中,系统环境900包括可被用户使用W与提供云服务的云基础设施系统902交互的一个或多 个客户端计算设备904、906和908。客户端计算设备可被配置为操作可被客户端计算设备的 用户使用来与云基础设施系统902交互,W使用由云基础设施系统902提供的服务的客户端 应用,诸如web浏览器、私有客户端应用(例如,Oracle化rms)或一些其它应用。
[0209] 应当认识到,在该图中绘出的云基础设施系统902可W具有除了所绘出的那些之 外的其它组件。此外,在该图中示出的实施例只是可W结合本发明的实施例的云基础设施 系统的一个例子。在一些其它实施例中,云基础设施系统902可W具有比在该图中示出的组 件更多或更少的组件、可W合并两个或更多个组件、或者可W具有不同的组件配置或布置。
[0210] 客户端计算设备904、906和908可W是类似于上述用于802、804、806和808的那些 设备。
[0211] 虽然示例性系统环境900被示为具有Ξ个客户端计算设备,但是任何数量的客户 端计算设备都可被支持。诸如具有传感器的设备等的其它设备可W与云基础设施系统902 交互。
[0212] (-个或多个)网络910可W促进客户端904、906和908与云基础设施系统902之间 的通信和数据交换。每个网络可W是对本领域技术人员熟悉的、可W支持利用任何各种商 业协议的任何类型的网络,包括上述用于(一个或多个)网络810的那些网络。
[0213] 云基础设施系统902可W包括一个或多个计算机和/或服务器,运可W包括上述用 于服务器812的那些服务器。
[0214] 在某些实施例中,由云基础设施系统提供的服务可W包括可W让云基础设施系统 的用户按需使用的托管的服务,诸如在线数据存储和备份解决方案、基于web的电子邮件服 务、托管的办公套件和文档协作服务、数据库处理、管理的技术支持服务等。由云基础设施 系统提供的服务可W动态地扩展,W满足其用户的需求。由云基础设施系统提供的服务的 具体实例在本文中称作为"服务实例"。一般地,来自云服务提供商系统的、经由诸如互联网 的通信网络对用户可用的任何服务被称为"云服务"。通常,在公共云环境中,构成云服务提 供商的系统的服务器和系统与客户自己的办公场所服务器和系统不同。例如,云服务提供 商的系统可W托管应用,并且用户可W经由诸如互联网的通信网络按需订购和使用应用。
[0215] 在一些例子中,在计算机网络云基础设施中的服务可W包括对由云供应商提供给 用户的存储、托管数据库、托管web服务器、软件应用或其它服务的受保护的计算机网络访 问,或者如W其它方式在本领域中已知的。例如,服务可W包括通过互联网对云上远程存储 的密码保护的访问。作为另一个例子,服务可W包括用于被联网开发人员私人使用的基于 web服务的托管关系数据库和脚本语言中间件引擎。作为另一个例子,服务可W包括对在云 供应商的网站上托管的电子邮件软件应用的访问。
[0216] 在某些实施例中,云基础设施系统902可W包括W自助服务、基于订购、弹性可扩 展、可靠、高可用性并且安全的方式交付给客户的一套应用、中间件和数据库服务产品。运 种云基础设施系统的例子是由本受让人提供的化acle化blic Cloud。
[0217] "大数据"可W由基础设施系统在许多级别上和W不同规模被托管和/或操纵。非 常大的数据集可w由分析师和研究人员存储并操纵,w可视化大量数据、检测趋势,和/或 W其它方式与数据进行交互。数十、数百或数千并行连接的处理器可W作用于运种数据,W 便呈现它或者模拟对数据或它所代表的内容的外力。运些数据集可W设及结构化的数据, 诸如在数据库中或W其它方式根据结构化模型组织的数据,和/或非结构化的数据(例如, 电子邮件、图像、数据blob(二进制大对象)、网页、复杂事件处理)。通过充分利用相对迅速 地将更多(或更少)计算资源聚焦到目标的实施例的能力,云基础设施系统可W更好地可用 于基于来自企业、政府机构、研究机构、私营个体、志同道合的个人或组织的组或者其它实 体的需求对大数据集执行任务。
[0218] 在各种实施例中,云基础设施系统902可W适于自动供给、管理和跟踪客户对由云 基础设施系统902提供的服务的订购。云基础设施系统902可W经由不同的部署模型提供云 服务。例如,服务可W根据公共云模型来提供,其中云基础设施系统902由销售云服务的组 织拥有(例如,被化acle拥有)并且使得服务对一般公众和不同行业的企业可用。作为另一 个例子,服务可W根据私有云模型来提供,其中云基础设施系统902只为单个组织运营并且 可W为该组织内的一个或多个实体提供服务。云服务也可W根据社区云模型来提供,其中 云基础设施系统902和由云基础设施系统902提供的服务被相关社区中的若干个组织共享。 云服务也可W根据混合云模型来提供,它是两种或更多种不同模型的组合。
[0219] 在一些实施例中,由云基础设施系统902提供的服务可W包括根据软件即服务 (SaaS)类别、平台即服务(PaaS)类别、基础设施即服务(laaS)类别、或包括混合服务的其它 服务类别提供的一个或多个服务。客户经由订购订单可W订购由云基础设施系统902提供 的一个或多个服务。云基础设施系统902然后执行处理,W提供在客户的订购订单中的服 务。
[0220] 在一些实施例中,由云基础设施系统802提供的服务可W包括但不限于,应用服 务、平台服务和基础设施服务。在一些实例中,应用服务可W经由SaaS平台由云基础设施系 统提供。SaaS平台可被配置为提供属于SaaS类别的云服务。例如,SaaS平台可W提供在集成 开发和部署平台上构建和交付一套按需应用的能力。SaaS平台可W管理和控制用于提供 SaaS服务的底层软件和基础设施。通过利用由SaaS平台提供的服务,客户可W利用在云基 础设施系统上执行的应用。客户可W获取应用服务,而无需客户购买单独的许可和支持。可 W提供各种不同的SaaS服务。例子包括但不限于,提供用于大型企业的销售绩效管理、企业 整合和业务灵活性的解决方案的服务。
[0221] 在一些实施例中,平台服务可W经由化aS平台由云基础设施系统提供。PaaS平台 可被配置为提供属于PaaS类别的云服务。平台服务的例子可W包括但不限于,使组织(诸如 Oracle)能够在共享、公共的体系架构上整合现有应用,W及利用由平台提供的共享服务构 建新应用的能力的服务。PaaS平台可W管理和控制用于提供PaaS服务的底层软件和基础设 施。客户可W获得由云基础设施系统提供的化aS服务,而无需客户购买单独的许可和支持。 平台服务的例子包括但不限于,Oracle Java云服务(Oracle Java Cloud Service,JCS)、 Oracle数据库云服务(Oracle Database Cloud Service,DBCS)W及其它服务。
[0222] 通过利用由化aS平台提供的服务,客户可W采用由云基础设施系统支持的编程语 言和工具并且也可W控制所部署的服务。在一些实施例中,由云基础设施系统提供的平台 服务可W包括数据库云服务、中间件云服务(例如,Oracle Fusion Middleware服务)和 化va云服务。在一种实施例中,数据库云服务可W支持使组织能够集中数据库资源并且W 数据库云的形式为客户提供数据库即服务的共享服务部署模型。中间件云服务可W为客户 提供平台来开发和部署各种商业应用,并且化va云服务可W为客户提供在云基础设施系统 中部署化va应用的平台。
[0223] 各种不同的基础设施服务可W由云基础设施系统中的laaS平台提供。基础设施服 务促进对诸如存储、网络和其它基本计算资源的底层计算资源的管理和控制,W便让客户 利用由SaaS平台和化aS平台提供的服务。
[0224] 在某些实施例中,云基础设施系统902也可W包括用于提供用来向云基础设施系 统的客户提供各种服务的资源的基础设施资源930。在一种实施例中,基础设施资源930可 W包括诸如服务器、存储和网络资源的硬件的预先集成和优化组合,W便执行由PaaS平台 和SaaS平台提供的服务。
[0225] 在一些实施例中,在云基础设施系统902中的资源可被多个用户共享并且动态地 按需重新分配。此外,资源可被分配给在不同时区的用户。例如,云基础设施系统930可W使 在第一时区的第一组用户能够利用云基础设施系统的资源指定的小时数,并且然后使相同 资源重新分配给位于不同时区的另一组用户,从而最大化资源的利用率。
[0。6]在某些实施例中,可W提供由云基础设施系统902的不同组件或模块W及由云基 础设施系统902提供的服务共享的多个内部共享服务932。运些内部共享服务可W包括,但 不限于,安全和身份服务、集成服务、企业信息库服务、企业管理服务、病毒扫描和白名单服 务、高可用性、备份和恢复服务、用于启用云支持的服务、电子邮件服务、通知服务、文件传 输服务,等等。
[0227] 在某些实施例中,云基础设施系统902可W提供在云基础设施系统中云服务(例 如,SaaS JaaS和laaS服务)的综合管理。在一种实施例中,云管理功能可W包括用于供给、 管理和跟踪由云基础设施系统902接收到客户的订购等能力。
[0228] 在一种实施例中,如在该图中所绘出的,云管理功能可W由一个或多个模块提供, 诸如订单管理模块920、订单编制模块922、订单供给模块924、订单管理和监视模块926、W 及身份管理模块928。运些模块可W包括一个或多个计算机和/或服务器或者利用一个或多 个计算机和/或服务器来提供,该一个或多个计算机和/或服务器可W是通用计算机、专用 服务器计算机、服务器农场、服务器集群、或任何其它适当的布置和/或组合。
[0229] 在示例性操作934中,利用客户端设备,诸如客户端设备904、906或908的客户可W 通过请求由云基础设施系统902提供的一个或多个服务和为由云基础设施系统902提供的 一个或多个服务下订购单来与云基础设施系统902交互。在某些实施例中,客户可W访问云 用户界面(UI)、云UI 912、云UI 914和/或云UI 916并且经由运些UI下订购单。响应于客户 下订单而被云基础设施系统902接收到的订单信息可W包括识别客户和客户想要订购的由 云基础设施系统902提供的一个或多个服务的信息。
[0230] 在客户下订单之后,订单信息经由云UI 912、914和/或916被接收。
[0231] 在操作936,订单被存储在订单数据库918中。订单数据库918可W是由云基础设施 系统918操作并且结合其它系统元素一起操作的若干个数据库之一。
[0232] 在操作938,订单信息被转发到订单管理模块920。在一些情况下,订单管理模块 920可被配置为执行与订单相关的计费和记帐功能,诸如验证订单,W及在验证后预订订 单。
[0233] 在操作940,关于订单的信息被传送到订单编制模块922。订单编制模块922可W利 用订单信息来编制用于由客户所下订单的服务和资源的供给。在一些情况下,订单编制模 块922可W编制资源的供给,W利用订单供给模块924的服务支持订购的服务。
[0234] 在某些实施例中,订单编制模块922使得能够管理与每个订单相关联的业务流程 并且应用业务逻辑,W确定订单是否应该继续供给。在操作942,当接收到新订购的订单时, 订单编制模块922发送请求到订单供给模块924, W分配资源和配置履行订购订单所需的那 些资源。订单供给模块924使得能够分配用于客户订购的服务的资源。订单供给模块924在 由云基础设施系统900提供的云服务和用于为了提供所请求的服务供给资源的物理实现层 之间提供一层抽象。订单编制模块922可W因此与实现细节隔离,诸如服务和资源是实际上 在运行中被供给还是预先被供给并且只在请求时被分配/指定。
[0235] 在操作944,一旦服务和资源被供给,所提供的服务的通知就可W通过云基础设施 系统902的订单供给模块924发送给在客户端设备904、906和/或908的客户。
[0236] 在操作946,客户的订购订单可被订单管理和监视模块926管理和跟踪。在一些情 况下,订单管理和监视模块926可被配置为收集订购订单中的服务的使用统计数据,诸如使 用的存储量、传送的数据量、用户的数量、W及系统上线时间和系统停机时间的量。
[0237] 在某些实施例中,云基础设施系统900可W包括身份管理模块928。身份管理模块 928可被配置为提供身份服务,诸如在云基础设施系统900中的访问管理和授权服务。在一 些实施例中,身份管理模块928可W控制关于希望利用由云基础设施系统902提供的服务的 客户的信息。运种信息可W包括验证运种客户的身份的信息和描述运些客户被授权哪些行 为来相对于各种系统资源(例如,文件、目录、应用、通信端口、存储器段、等等)执行的信息。 身份管理模块928也可W包括关于每个客户的描述性信息和关于描述性信息可W如何W及 由谁来访问和修改的管理。
[0238] 图10示出了示例性计算机系统1000,本发明的各种实施例可W在其中被实现。如 在该图中所示出的,计算机系统1000包括经由总线子系统1002与多个外围子系统通信的处 理单元1004。运些外围子系统可W包括处理加速单元1006、I/O子系统1008、存储子系统 1018和通信子系统1024。存储子系统1018包括有形计算机可读存储介质1022和系统存储器 1010。
[0239] 总线子系统1002提供了用于让计算机系统1000的各种组件和子系统按意图彼此 通信的机制。虽然总线子系统1002被示意性地示为单条总线,但是总线子系统的备选实施 例可W利用多条总线。总线子系统1002可W是若干种类型的总线结构中的任何一种,包括 存储器总线或存储器控制器、外围总线、W及利用任何各种总线体系结构的局部总线。例 如,运种体系结构可W包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强 型ISA化ISA)总线、视频电子标准协会(VESA)局部总线和外围组件互连(PCI)总线,其可被 实现为按IE邸P1386.1标准制造的Mezzanine总线。
[0240] 可被实现为一个或多个集成电路(例如,常规微处理器或微控制器)的处理单元 1004控制计算机系统1000的操作。一个或多个处理器可被包括在处理单元1004中。运些处 理器可W包括单核或多核处理器。在某些实施例中,处理单元1004可被实现为一个或多个 独立的处理单元1032和/或1034,其中在每个处理单元中包括单核或多核处理器。在其它实 施例中,处理单元1004也可被实现为通过将两个双核处理器集成到单个忍片中形成的四核 处理单元。
[0241] 在各种实施例,处理单元1004可W响应于程序代码执行各种程序并且可W维护多 个并发执行的程序或进程。在任何给定时间,要被执行的程序代码中的一些或全部代码可 W驻留在(一个或多个)处理器1004中和/或存储子系统1018中。通过适当的编程,(一个或 多个)处理器1004可W提供上述各种功能。计算机系统1000可W附加地包括处理加速单元 1006,其可W包括数字信号处理器(DSP)、专用处理器,等等。
[0242] I/O子系统1008可W包括用户界面输入设备和用户界面输出设备。用户界面输入 设备可W包括键盘、诸如鼠标或轨迹球的定点设备、结合到显示器中的触摸板或触摸屏、滚 动轮、点击轮、拨盘、按钮、开关、键盘、具有语音命令识别系统的音频输入设备、麦克风W及 其它类型的输入设备。用户界面输入设备可W包括,例如,运动感测和/或手势识别设备,诸 如的Microsoft Kineet?运动传感器,其使得用户能够通过利用手势和语音命令的自然用 户界面控制诸如的MicrosoftXb:〇X?360游戏控制器的输入设备并与之交互。用户界面输 入设备也可W包括眼睛姿势识别设备,诸如从用户检测眼睛活动(例如,当拍拍摄照片和/ 或做出菜单选择时的"巧眼")并且将眼睛姿势转换为到输入设备(例如,GoogleGlaSS?) 中的输入的GoogleClasS?巧眼检测器。此外,用户界面输入设备可W包括使用户能够通过 语音命令与语音识别系统(例如,Sirf导航器)交互的语音识别感测设备。
[0243] 用户接口输入设备也可W包括,但不限于,Ξ维(3D)鼠标、操纵杆或指向棒、游戏 面板和绘图板,W及音频/视频设备,诸如扬声器、数码相机、数码摄像机、便携式媒体播放 器、网络摄像头、图像扫描仪、指纹扫描仪、条形码阅读器3D扫描仪、3D打印机、激光测距仪 和视线跟踪设备。此外,用户接口输入设备可W包括,例如,医学成像输入设备,诸如计算机 断层扫描、磁共振成像、正电子发射断层摄影术、医疗超声设备。用户接口输入设备也可W 包括,例如,诸如MIDI键盘、数字乐器等的音频输入设备。
[0244] 用户接口输出设备可W包括显示子系统、指示灯,或者诸如音频输出设备的非视 觉显示器,等等。显示子系统可W是阴极射线管(CRT)、诸如利用液晶显示器化CD)或等离子 显示器的平板设备、投影设备、触摸屏,等等。一般而言,术语"输出设备"的使用意在包括用 于从计算机系统1000向用户或其它计算机输出信息的所有可能类型的设备和机制。例如, 用户接口输出设备可W包括,但不限于,在视觉上传达文字、图形和音频/视频信息的各种 显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备,W及 调制解调器。
[0245] 计算机系统1000可W包括包含软件元素、被示为当前位于系统存储器1010中的存 储子系统1018。系统存储器1010可W存储可加载并且可在处理单元1004上执行的程序指 令,W及在运些程序执行期间所产生的数据。
[0246] 取决于计算机系统1000的配置和类型,系统存储器1010可W是易失性的(诸如随 机存取存储器(RAM))和/或非易失性的(诸如只读存储器(ROM)、闪存存储器,等等)dRAM通 常包含可被处理单元100位即访问和/或目前正被处理单元1004操作和执行的数据和/或 程序模块。在一些实现中,系统存储器1010可W包括多种不同类型的存储器,例如静态随机 存取存储器(SRAM)或动态随机存取存储器(DRAM)。在一些实现中,诸如在启动期间,包含有 助于在计算机系统1000的元件之间传送信息的基本例程的基本输入/输出系统(BIOS),通 常可被存储在ROM中。作为例子,但不是限制,系统存储器1010也示出了可W包括客户端应 用、web浏览器、中间层应用、关系数据库管理系统(RDBMS)等的应用程序1012,程序数据 1014, W及操作系统1016。作为例子,操作系统1016可W包括各种版本的Micro soft Windows?\AwleMadn化811@和/或Linux操作系统、各种商用UNIX?或类UNIX操 作系统(包括但不限于各种GNU/Linux操作系统、GoogleChrome?操作系统,等等)和/或 诸如 iOS、Windows? 化 one、Aiidroid?〇s、BlackBerry? 100S 和 Palmas 0S 操作系统 的移动操作系统。
[0247] 存储子系统1018也可W提供用于存储提供一些实施例的功能的基本编程和数据 结构的有形计算机可读存储介质。当被处理器执行时提供上述功能的软件(程序、代码模 块、指令)可被存储在存储子系统1018中。运些软件模块或指令可被处理单元1004执行。存 储子系统1018也可W提供用于存储根据本发明被使用的数据的储存库。
[0248] 存储子系统1018也可W包括可被进一步连接到计算机可读存储介质1022的计算 机可读存储介质读取器1020。与系统存储器1010-起并且,可选地,与其相结合,计算机可 读存储介质1022可W全面地表示用于临时和/或更持久地包含、存储、发送和检索计算机可 读信息的远程、本地、固定和/或可移除存储设备加存储介质。
[0249] 包含代码或代码的部分的计算机可读存储介质1022也可W包括本领域已知或使 用的任何适当的介质,包括存储介质和通信介质,诸如但不限于,W用于信息的存储和/或 传输的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。运可W包括有 形的、非暂态计算机可读存储介质,诸如RAM、R0M、电可擦除可编程ROM化EPROM)、闪存存储 器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学储存器、磁带盒、磁带、磁盘 储存器或其它磁存储设备,或者其它有形的计算机可读介质。当被指定时,运也可W包括非 有形的、临时计算机可读介质,诸如数据信号、数据传输,或者可被用来发送期望信息并且 可被计算系统1000访问的任何其它介质。
[0250] 作为例子,计算机可读存储介质1022可W包括从不可移除的非易失性磁介质读取 或写到其的硬盘驱动器、从可移除的非易失性磁盘读取或写到其的磁盘驱动器、W及从可 移除的非易失性光盘,诸如CD R〇M、DVD和Blu-Ray?盘或其它光学介质,读取或写到其的 光盘驱动器。计算机可读存储介质1022可W包括,但不限于,Zip'^驱动器、闪存卡、通用串 行总线化SB)闪存驱动器、安全数字(SD)卡、DVD盘、数字音频带,等等。计算机可读存储介质 1022也可W包括基于非易失性存储器的固态驱动器(SSD),诸如基于闪存存储器的SSD、企 业闪存驱动器、固态ROM等,基于易失性存储器的SSD,诸如固态RAM、动态RAM、静态RAM,基于 DRAM的SSD,磁阻RAM(MRAM)SSD,W及使用基于DRAM和闪存存储器的SSD的组合的混合SSD。 盘驱动器及其相关联的计算机可读介质可W为计算机系统1000提供计算机可读指令、数据 结构、程序模块及其它数据的非易失性存储。
[0251] 通信子系统1024提供到其它计算机系统和网络的接口。通信子系统1024用作用于 从其它系统接收数据和从计算机系统1000向其它系统发送数据的接口。例如,通信子系统 1024可W使计算机系统1000能够经由互联网连接到一个或多个设备。在一些实施例中,通 信子系统1024可W包括用于访问无线语音和/或数据网络的射频(RF)收发器组件(例如,利 用蜂窝电话技术,诸如3G、4G或抓GE(用于全球演进的增强型数据速率)的先进数据网络技 术,Wi-Fi (I趾E 802.11系列标准),或其它移动通信技术,或其任意组合)、全球定位系统 (GPS)接收器组件和/或其它组件。在一些实施例中,作为无线接口的附加或者替代,通信子 系统1024可W提供有线网络连接(例如,W太网)。
[0252] 在一些实施例中,通信子系统1024也可W代表可W使用计算机系统1000的一个或 多个用户接收结构化和/或非结构化数据馈送1026、事件流1028、事件更新1030等形式的输 入通信。
[0253] 作为例子,通信子系统1024可被配置为实时地从社交媒体网络和/或其它通信服 务的用户接收数据馈送1026,诸如Twitter?馈送、Facebook?更新、诸如丰富站点摘要 (RSS)馈送的web馈送和/或来自一个或多个第Ξ方信息源的实时更新。
[0254] 此外,通信子系统1024也可被配置为接收连续数据流形式的数据,运可W包括本 质上可W是连续的或无界的没有明确终止的实时事件的事件流1028和/或事件更新1030。 产生连续数据的应用的例子可W包括,例如,传感器数据应用、金融报价机、网络性能测量 工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车流量监视,等等。
[0255] 通信子系统1024也可被配置为向一个或多个数据库输出结构化和/或非结构化数 据馈送1026、事件流1028、事件更新1030,等等,运一个或多个数据库可W与禪合到计算机 系统1000的一个或多个流式数据源计算机通信。
[0256] 计算机系统1000可W是各种类型之一,包括手持便携式设备(例如,iPhone?蜂 窝电话、iPad?计算平板、PDA)、可穿戴设备(例如,GoogleGlass?头戴式显示器)、PC、工 作站、大型机、信息站,服务器机架,或任何其它数据处理系统。
[0257] 由于计算机和网络的不断变化的本质,在该图中绘出的计算机系统1000的描述仅 仅要作为具体的例子。具有比该图中绘出的系统更多或更少组件的许多其它配置是可能 的。例如,定制的硬件也可被使用和/或特定的元素可W用硬件、固件、软件(包括applets) 或它们的组合来实现。另外,也可W采用到诸如网络输入/输出设备之类的其它计算设备的 连接。基于本文提供的公开内容和示教,本领域普通技术人员将认识到实现各种实施例的 其它方式和/或方法。换句话说,在一些实施例中,作为整体,计算机系统1000的配置可W包 括:用于接收包括至少第一输入数据流和第二输入数据流的多个输入数据流的装置;用于 生成用于第一输入数据流的第一动态数据类型的装置;用于生成用于第二输入数据流的第 二动态数据类型的装置;用于至少部分地基于第一动态数据类型和第二动态数据类型组合 第一输入数据流和第二输入数据流W生成组合数据流的装置;W及用于由计算机系统处理 对组合数据流的连续查询W检测样式的装置。
[0258] 图11示出了本发明的各种实施例可W在其中实现的示例性服务提供商设备的简 化框图。服务提供商设备1100的模块可W由硬件、软件或硬件和软件的组合实现,W执行本 发明的原理。本领域技术人员应当理解,图11中所描述的模块可被组合或分离为子模块,W 实现如上所述的本发明的原理。因此,本文的描述可W支持本文所述的功能模块的任何可 能的组合或分离或进一步定义。
[0259] 如图11中所示,服务提供商设备1100可W包括输入数据流接收单元1101、第一动 态数据类型生成单元1103、第二动态数据类型生成单元1105、组合数据流生成单元1107W 及样式检测单元1109。输入数据流接收单元1101可被配置为接收包括至少第一输入数据流 和第二输入数据流的多个输入数据流。第一动态数据类型生成单元1103可被配置为生成用 于第一输入数据流的第一动态数据类型。第二动态数据类型生成单元1105可被配置为成生 用于第二输入数据流的第二动态数据类型。组合数据流生成单元1107可被配置为至少部分 地基于第一动态数据类型和第二动态数据类型组合第一输入数据流和第二输入数据流,W 生成组合数据流。样式检测单元1109可被配置为处理对组合数据流的连续查询,W检测样 式。在一种实施例中,每个单元可被实现为通过读取计算机程序指令来执行对应处理的处 理器。
[0260] 在一种实施例中,第一动态数据类型生成单元1103还可被配置为识别第一输入数 据流的第一属性不存在于第二数据流中;W及生成用于第一属性的第一动态数据类型。
[0261] 在一种实施例中,第一动态数据类型可被配置为存储对应于第一输入数据流的第 一属性的第一数据值。
[0262] 在一种实施例中,第二动态数据类型生成单元1105还可被配置为识别第二输入数 据流的第二属性不存在于第一数据流中;W及生成用于第二属性的第二动态数据类型,第 二动态数据类型被配置为存储对应于第二输入数据流的第二属性的第二数据值。
[0263] 在一种实施例中,服务提供商设备1100还可W包括共同属性识别单元1111和同质 模式生成单元1113。共同属性识别单元1111可被配置为识别共同属性,该共同属性被识别 为在第一输入数据流和第二输入数据流中存在。同质模式生成单元1113可被配置为生成同 质模式,该同质模式包括第一输入数据流和第二输入数据流的一个或多个属性的表示,该 表示包括至少共同属性、第一动态数据类型和第二动态数据类型。
[0264] 在一种实施例中,同质模式可W包括流名称标识符属性、与第一输入数据流关联 的第一时间戳属性或与第二输入数据流关联的第二时间戳属性当中至少一个。
[0265] 在一种实施例中,组合数据流生成单元1107还可被配置为从第一输入数据流选择 第一组元组,第一输入数据流由同质模式识别,从第二输入数据流选择第二组元组,第二输 入数据流由同质模式识别,并且对第一组元组和第二组元组处理子查询,W生成组合数据 流。
[0266] 在一种实施例中,样式可W至少部分地基于分析组合数据流来检测,其中样式识 别第一输入数据流中的第一事件,后面跟着第二输入数据流中的第二事件。
[0267] 图11中所描述的模块可被组合或分离成子模块,W实现如上所述本发明的原理。 例如,第一动态数据类型生成单元1103和第二动态数据类型生成单元1105可被集成为动态 数据类型生成单元。集成的动态数据类型生成单元还可W结合共同属性识别单元1111和同 质模式生成单元1113。
[0268] 本领域技术人员可W理解,服务提供商设备1100可W是在前面的示例性实施例中 描述的服务提供商计算机106的示例性实现。本领域技术人员还可W理解,服务提供商设备 1100可W根据期望被修改,W执行根据本发明的原理的任何操作或它们的组合。
[0269] 在前述的说明书中,本发明的各方面参照其具体实施例进行了描述,但本领域技 术人员将认识到,本发明不限于此。上述发明的各个特征和各方面可被单独或联合使用。另 夕h在不背离本说明书的更广泛精神和范围的情况下,实施例可W在除本文所述的那些之 外的任何数目的环境和应用中被使用。因此,本说明书和附图应当被认为是说明性而不是 限制性的。
【主权项】
1. 一种计算机实现的方法,包括: 由利用计算机可执行指令配置的计算机系统,接收包括至少第一输入数据流和第二输 入数据流的多个输入数据流; 由该计算机系统,生成用于第一输入数据流的第一动态数据类型; 由该计算机系统,生成用于第二输入数据流的第二动态数据类型; 由该计算机系统,至少部分地基于第一动态数据类型和第二动态数据类型组合第一输 入数据流和第二输入数据流,以生成组合数据流;及 由该计算机系统,处理对组合数据流的连续查询,以检测样式。2. 如权利要求1所述的计算机实现的方法,其中生成第一动态数据类型包括: 识别第一输入数据流的第一属性不存在于第二数据流中;及 生成用于第一属性的第一动态数据类型。3. 如权利要求2所述的计算机实现的方法,其中第一动态数据类型被配置为存储对应 于第一输入数据流的第一属性的第一数据值。4. 如权利要求1-3中任何一项所述的计算机实现的方法,其中生成第二动态数据类型 包括: 识别第二输入数据流的第二属性不存在于第一数据流中;及 生成用于第二属性的第二动态数据类型,第二动态数据类型被配置为存储对应于第二 输入数据流的第二属性的第二数据值。5. 如权利要求1-4中任何一项所述的计算机实现的方法,还包括: 识别共同属性,该共同属性被识别为在第一输入数据流中存在并在第二输入数据流中 存在;及 生成同质模式,该同质模式包括第一输入数据流和第二输入数据流的一个或多个属性 的表示,该表示包括至少共同属性、第一动态数据类型和第二动态数据类型。6. 如权利要求5所述的计算机实现的方法,其中同质模式包括流名称标识符属性、与第 一输入数据流关联的第一时间戳属性或者与第二输入数据流关联的第二时间戳属性当中 至少一个。7. 如权利要求5或6所述的计算机实现的方法,其中组合第一输入数据流和第二输入数 据流还包括: 从第一数据流选择第一组元组,第一输入数据流由同质模式识别; 从第二输入数据流选择第二组元组,第二输入数据流由同质模式识别;及 处理对第一组元组和第二组元组的子查询,以生成组合数据流。8. 如权利要求1-7中任何一项所述的计算机实现的方法,其中样式是至少部分地基于 分析所述组合数据流来检测的,其中样式识别第一输入数据流中的第一事件,后面跟着第 二输入数据流中的第二事件。9. 一种系统,包括: 存储多条指令的存储器;及 被配置为访问该存储器的处理器,其中处理器还被配置为执行所述多条指令,以便至 少: 接收识别第一输入数据流和第二输入数据流的连续查询; 识别用于第一输入数据流的第一属性的第一动态数据类型; 识别用于第二输入数据流的第二属性的第二动态数据类型; 至少部分地基于在第一输入数据流中识别出的第一动态数据类型和在第二输入数据 流中识别出的第二动态数据类型生成组合数据流;及 执行对组合数据流的连续查询,以检测样式。10. 如权利要求9所述的系统,其中至少一个处理器被配置为执行识别第一输入数据流 的第一属性不存在于第二数据流中的计算机可执行指令。11. 如权利要求9或10所述的系统,其中至少一个处理器被配置为执行识别第二输入数 据流的第二属性不存在于第一数据流中的计算机可执行指令。12. 如权利要求9-11中任何一项所述的系统,其中至少一个处理器还被配置为执行计 算机可执行指令,以便: 识别共同属性,该共同属性被识别为存在于第一输入数据流和第二输入数据流中;及 生成同质模式,该同质模式包括至少共同属性、第一属性、第一动态数据类型、第二属 性和第二动态数据类型的表示。13. 如权利要求12所述的系统,其中同质模式还包括流名称标识符属性、与第一输入数 据流关联的第一时间戳属性或者与第二输入数据流关联的第二时间戳属性当中至少一个。14. 如权利要求13所述的系统,其中至少一个处理器还被配置为执行计算机可执行指 令,以通过执行用于执行以下动作的指令来生成组合数据流: 从第一数据流选择第一组元组,第一输入数据流由同质模式识别; 从第二输入数据流选择第二组元组,第二输入数据流由同质模式识别;及 处理对第一组元组和第二组元组的子查询,以生成组合数据流。15. 如权利要求9-14中任何一项所述的系统,其中样式是至少部分地基于分析述组合 数据流来检测的,其中样式识别第一输入数据流中的第一事件,后面跟着第二输入数据流 中的第二事件。16. -种或多种存储可由一个或多个处理器执行的计算机可执行指令的非暂态计算机 可读介质,计算机可执行指令包括: 使一个或多个处理器接收包括至少第一输入数据流和第二输入数据流的多个输入数 据流的指令; 使一个或多个处理器生成用于第一输入数据流的第一动态数据类型的指令; 使一个或多个处理器生成用于第二输入数据流的第二动态数据类型的指令; 使一个或多个处理器至少部分地基于第一动态数据类型和第二动态数据类型组合第 一输入数据流和第二输入数据流以生成组合数据流的指令;及 使一个或多个处理器处理对组合数据流的连续查询以检测样式的指令。17. 如权利要求16所述的计算机可读介质,其中生成第一动态数据类型的指令还包括 用于执行以下动作的指令: 识别第一输入数据流的第一属性不存在于第二数据流中;及 生成用于第一属性的第一动态数据类型,第一动态数据类型被配置为存储对应于第一 输入数据流的第一属性的第一数据值。18. 如权利要求16或17所述的计算机可读介质,其中生成第二动态数据类型的指令还 包括使一个或多个处理器执行以下动作的指令: 识别第二输入数据流的第二属性不存在于第一数据流中;及 生成用于第二属性的第二动态数据类型,第二动态数据类型被配置为存储对应于第二 输入数据流的第二属性的第二数据值。19. 如权利要求16-18中任何一项所述的计算机可读介质,其中计算机可执行指令还包 括: 使一个或多个处理器识别共同属性的指令,该共同属性被识别为在第一输入数据流中 存在并在第二输入数据流中存在; 使一个或多个处理器生成同质模式的指令,该同质模式包括第一输入数据流和第二输 入数据流的一个或多个属性的表示,该表示包括至少共同属性、第一动态数据类型和第二 动态数据类型;及 使一个或多个处理器至少部分地基于同质模式生成组合数据流的指令。20. 如权利要求16-19中任何一项所述的计算机可读介质,其中计算机可执行指令还包 括使一个或多个处理器至少部分地基于分析所述组合数据流来检测样式的指令,其中样式 识别第一输入数据流中的第一事件,后面跟着第二输入数据流中的第二事件。
【文档编号】G06F17/30GK105993011SQ201480065473
【公开日】2016年10月5日
【申请日】2014年12月4日
【发明人】P·卡里, A·斯里尼瓦桑, S·比施诺伊
【申请人】甲骨文国际公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1