CN105379183B - 连续数据流上的可变持续时间窗口 - Google Patents
连续数据流上的可变持续时间窗口 Download PDFInfo
- Publication number
- CN105379183B CN105379183B CN201480004731.1A CN201480004731A CN105379183B CN 105379183 B CN105379183 B CN 105379183B CN 201480004731 A CN201480004731 A CN 201480004731A CN 105379183 B CN105379183 B CN 105379183B
- Authority
- CN
- China
- Prior art keywords
- event
- time
- window
- duration
- flow
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0604—Management of faults, events, alarms or notifications using filtering, e.g. reduction of information by using priority, element types, position or time
- H04L41/0622—Management of faults, events, alarms or notifications using filtering, e.g. reduction of information by using priority, element types, position or time based on time
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0686—Additional information in the notification, e.g. enhancement of specific meta-data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Bus Control (AREA)
- Debugging And Monitoring (AREA)
- Information Transfer Systems (AREA)
- User Interface Of Digital Computer (AREA)
- Data Mining & Analysis (AREA)
Abstract
提供了用于处理数据流的改进技术。事件有资格保留在基于时间的窗口中的持续时间对于经由相同事件流接收的不同事件是可变的。在某些实施例中,输入事件在基于时间的窗口中所花费的持续时间是该事件的一个或多个属性的一个或多个值的函数。由于不同的事件可以具有不同的一个或多个属性值,因此不同的事件可以在用于那个事件流的基于时间的窗口中花费不同的时间量。事件在基于时间的窗口中所花费的时间量可以经由该事件的一个或多个属性来控制。
Description
对相关申请的交叉引用
本申请要求于2013年1月15日提交的标题为“VARIABLE DURATION WINDOWS ONCONTINUOUS DATA STREAMS”的美国临时申请No.61/752,850的权益和优先权。本申请还要求于2013年3月15日提交的标题为“VARIABLE DURATION WINDOWS ON CONTINUOUS DATASTREAMS”的美国非临时申请No.13/838,259的权益和优先权,该申请又要求美国临时申请No.61/752,850的优先权。61/752,850和13/838,259申请的全部内容通过引入被结合于此,用于所有目的。
技术领域
所公开的实施例一般而言涉及数据处理系统,并且更具体而言涉及用于利用可变持续时间窗口处理连续事件流的技术。
背景技术
在传统的数据库系统中,数据通常以表的形式存储在一个或多个数据库中。然后,所存储的数据利用诸如SQL的数据管理语言被查询和操纵。例如,SQL查询可以被定义并执行,以便从存储在数据库中的数据识别相关的数据。因此,SQL查询对存储在数据库中的有限数据集执行。另外,当SQL查询被执行时,它对有限数据集执行一次并且产生有限的静态结果。因此,数据库最佳配备为在有限存储的数据集上运行。
但是,众多的现代应用和系统以连续数据或事件流而不是有限数据集的形式生成数据。这种应用的例子包括但不限于传感器数据应用、金融行情(financial tickers)、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车交通监视,等等。例如,温度传感器可被配置为发出温度读数。这种应用已经引起了对可以处理数据流的新型应用的需求。
管理和处理用于这些类型的基于事件流的应用的数据涉及利用强时间焦点建立数据管理和查询能力。需要包括对连续无界限数据集进行长期运行查询的不同种类的查询机制。虽然一些厂商现在提供针对事件流处理的产品套件,但是这些产品供应仍然缺乏处理如今的事件处理需求所需要的处理灵活性。
发明内容
本发明的某些实施例一般而言涉及数据处理系统,并且更具体而言涉及利用可变持续时间的窗口处理连续事件流的技术。技术可以包括,例如,利用对事件数据流操作的计算机实现的方法实现的技术,处理事件数据流的计算设备、系统或装置,存储可由一个或多个处理单元执行的多条指令的计算机可读存储器,等等。
在某些实施例中,事件有资格保留在基于时间的窗口中的持续时间可以对经由相同事件流接收的不同事件变化。例如,对于经由事件流接收的第一输入事件,第一事件有资格保留在基于时间的窗口中的持续时间可以是“X”,并且对于经由相同事件流接收的第二输入事件,第二事件有资格保留在基于时间的窗口中的持续时间可以是“Y”,其中X与Y不同。第一和第二事件可以具有相同的关联时间戳或不同的时间戳。因此,本发明的实施例使得事件在基于时间的窗口中所花费的时间量受控。
在某些实施例中,输入事件在基于时间的窗口中所花费的持续时间是该事件的一个或多个属性的一个或多个值的函数。由于不同的事件可以具有不同的一个或多个属性值,因此不同的事件可以在基于时间的窗口中花费不同的时间量。这使得事件在基于时间的窗口中所花费的时间量能够经由该事件的一个或多个属性来控制。
在一种实施例中,多个事件可以被计算设备经由事件流接收。例如,第一事件和第二事件可以经由事件流接收。第一持续时间可以为第一事件确定,其中第一持续时间指示第一事件有资格保留在为该事件流指定的基于时间的窗口中的持续时间。第二持续时间可以为第二事件确定,其中第二持续时间指示第二事件有资格保留在该基于时间的窗口中的持续时间,其中第二持续时间不同于第一持续时间。
在某些实施例中,第一和第二事件可以添加到为事件流指定的基于时间的窗口。第一事件保留在基于时间的窗口中第一持续时间,然后从基于时间的窗口除去或删除。第二事件保留在基于时间的窗口中第二持续时间,然后从基于时间的窗口除去或删除。以这种方式,第一事件在基于时间的窗口内所花费的持续时间可以不同于第二事件在基于时间的窗口内所花费的持续时间。
在上述第一和第二事件示例实施例中,第一事件可以具有关联的第一时间并且第二事件可以具有关联的第二时间。在一种情况下,第一时间和第二时间可以相同。在第二种情况下,第一时间可以与第二时间不同。
在某些实施例中,事件有资格在基于时间的窗口内花费的持续时间可以基于该事件的一个或多个属性的值。
在某些实施例中,行-时间范围窗口可以是不同的分区。事件所属的分区可以基于第一事件的属性的值。事件有资格在用于分区的行-时间范围窗口内花费的时间量可以基于该事件的一个或多个属性的一个或多个值。因此,对于属于特定分区的事件,不同的事件可以有资格在用于特定分区的行-时间范围窗口中花费不同的持续时间。
在某些实施例中,基于与第一事件关联的第一时间和第一持续时间,可以为第一事件计算第一到期时间。基于与第二事件关联的第二时间和第二持续时间,可以为第二事件计算第二到期时间。在第一到期时间发生时或者之后,第一事件从基于时间的窗口被除去或删除。同样,在第二到期时间发生时或者之后,第二事件可以从基于时间的窗口被除去或删除。
根据本公开内容的一方面,提供了计算设备。计算设备包括配置为确定用于第一事件的第一持续时间的第一确定单元,其中第一事件是由计算设备经由事件流接收的,第一持续时间指示第一事件有资格保留在为事件流指定的基于时间的窗口中的持续时间。计算设备可以包括配置为确定用于第二事件的第二持续时间的第二确定单元,其中第二事件是由计算设备经由事件流接收的,第二持续时间指示第二事件有资格保留在该基于时间的窗口中的持续时间。第二持续时间可以不同于第一持续时间。
在某些实施例中,计算设备还包括配置为在第一时间事件已经在基于时间的窗口中第一持续时间之后从基于时间的窗口除去第一事件的第一去除单元,以及配置为在第二时间事件已经在基于时间的窗口中第二持续时间之后从基于时间的窗口除去第二事件的第二去除单元。
在某些实施例中,第一事件具有关联的第一时间并且第二事件具有关联的第二时间,其中第一时间与第二时间相同。
在某些实施例中,第一事件具有关联的第一时间并且第二事件具有关联的第二时间,其中第一时间与第二时间不同。
在某些实施例中,确定第一持续时间包括基于第一事件的一个或多个属性的一个或多个值计算第一持续时间。另外,确定第二持续时间包括基于第二事件的一个或多个属性的一个或多个值计算第二持续时间。
在某些实施例中,第一确定单元配置为基于第一事件的第一属性的值确定用于第一事件的第一分区。第二确定单元配置为基于第二事件的第一属性的值确定第二事件属于第一分区。基于时间的窗口用于该第一分区。
在某些实施例中,第一确定单元配置为基于与第一事件关联的第一时间和第一持续时间确定用于第一事件的第一到期时间。第二确定单元配置为基于与第二事件关联的第二时间和第二持续时间确定用于第二事件的第二到期时间。第一去除单元配置为在第一到期时间发生时或者之后从基于时间的窗口除去第一事件。第二去除单元配置为在第二到期时间发生时或者之后从基于时间的窗口除去第二事件。
以下具体描述与附图一起将提供对本发明实施例的本质的更好理解。
附图说明
图1绘出了可以结合本发明实施例的事件处理系统的简化高级图。
图2绘出了根据本发明实施例描绘用于管理可变持续时间窗口的方法的简化流程图。
图3绘出了根据本发明实施例可以用来实现基于可变持续时间的窗口处理的模块和数据结构。
图4绘出了描绘在如上所述的优先级队列用来实现基于可变持续时间的窗口的实施例中可以由基于事件的窗口操作器(operator)执行的处理的简化流程图。
图5绘出了根据本发明实施例描绘用于管理用于分区的可变持续时间窗口的方法的简化流程图。
图6绘出了根据本发明实施例描绘可以由基于时间的窗口操作器执行的用于利用优先权队列处理用于分区的可变持续时间窗口的处理的简化流程图。
图7是说明可以根据本发明实施例使用的系统环境的部件的简化框图。
图8是可以根据本发明某些实施例使用的计算机系统的简化框图。
图9是可以根据本发明某些实施例使用的计算设备的简化框图。
具体实施方式
在以下描述中,为了解释,阐述具体的细节,以便提供对本发明实施例的透彻理解。但是,应当认识到,各种实施例没有这些具体细节也可以实践。附图和描述不是约束性的。
描述了提供用于处理数据流的改进技术的某些实施例。事件有资格保留在基于时间的窗口内的持续时间可以对经由相同事件流接收的不同事件变化。在某些实施例中,输入事件在基于时间的窗口内花费的持续时间是该事件的一个或多个属性的一个或多个值的函数。由于不同的事件可以具有不同的一个或多个属性值,因此不同的事件可以在用于那个事件流的基于时间的窗口内花费不同的时间量。事件在基于时间的窗口内花费的时间量可以经由该事件的一个或多个属性来控制。
连续的数据流(也被称为事件流或事件数据流)是本质上没有明确结束的连续或无界的数据或事件的流。在逻辑上,事件或数据的流是数据元素(也被称为事件)序列,每个数据元素具有关联的时间戳。连续的事件流可以逻辑表示为数据元素的包(bag)或集合(s,T),其中“s”代表数据部分并且“T”是在时间域中。“s”部分一般被称为元组或事件。因此,事件流是带时间戳的元组或事件的序列。
在一些实施例中,与流中的事件关联的时间戳可以等同于时钟时间。但是,在其它实施例中,与事件流中的事件关联的时间可以由应用域定义并且不对应于时钟时间,但是可以例如代替地由序列号表示。因此,与事件流内的事件关联的时间信息可以由表示时间序列的符号的数字、时间戳或者任何其它信息表示。对于接收输入事件流的系统,事件按增大的时间戳的次序到达系统。可以有多个一个具有相同时间戳的事件。
在一些实施例中,事件流中的事件可以代表一些世俗事件的发生(例如,当温度传感器把值改变成新值时;当股票代码的价格改变时)并且与事件关联的时间信息可以指示由数据流事件表示的世俗事件发生的时间。
对于经由事件流接收的事件,与事件关联的时间信息被用来确保事件流中的事件按增大的时间戳值的次序到达。这使得在事件流中接收的事件基于它们关联的时间信息被排序并处理。为了启用这种排序,时间戳以非减小的方式与事件流中的事件关联,使得后生成的事件具有比早生成的事件更晚的时间戳。作为另一个例子,如果序列号被用作时间信息,则与后生成的事件关联的序列号大于与之前生成的事件关联的序列号。属于相同事件流的事件一般按照由关联的时间信息强加到事件的次序处理,较早的事件在较晚的事件之前被处理。在一些实施例中,多个事件可以与相同的时间戳或序列号关联,例如,当由数据流事件表示的世俗事件同时发生时。在这些情况下,事件按其接收的次序被处理。
与事件流中事件关联的时间信息(例如,时间戳)可以由流的源设置或者,作为替代,可以由接收流的系统设置。例如,在某些实施例中,心跳可以在接收事件流的系统上维护,并且与事件关联的时间可以基于事件到达系统的时间,如由心跳测量的。有可能事件流中的两个事件具有相同的时间信息。应当指出,虽然时间戳排序需求特定于一个事件流,但是不同流的事件可以任意交织。
事件流具有关联的模式“S”,该模式包括时间信息和一组一个或多个命名属性。属于特定事件流的所有事件都符合与那个特定事件流关联的模式。因此,对于事件流(s,T),事件流可以具有模式“S”(<time_stamp>,<attribute(s)>),其中<attribute>代表模式的数据部分并且可以包括一个或多个属性。例如,用于股票行情事件流的模式可以包括属性<股票代码>和<股票价格>。每个经由这种流接收的事件将具有时间戳和两个属性。例如,股票行情事件流可以接收以下事件和关联的时间戳:
…
(<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,以及一个或多个事件接收器(110,112)。事件源生成由EPS 102接收的事件流。EPS 102可以从一个或多个事件源接收一个或多个事件流。例如,如图1中所示,EPS 102从事件源104接收输入事件流114,从事件源106接收第二输入事件流116并且从事件源108接收第三事件流118。一个或多个事件处理应用(120、122和124)可以部署在EPS102上并由其执行。由EPS 102执行的事件处理应用可以配置为监听一个或多个输入事件流,基于从输入事件流选择一个或多个事件作为值得注意的事件的处理逻辑处理经由一个或多个事件流接收的事件。然后,值得注意的事件可以以一个或多个输出事件流的形式发送到一个或多个事件接收器(110,112)。例如,在图1中,EPS 102把输出事件流126输出到事件接收器110,并且把第二输出事件流128输出到事件接收器112。在某些实施例中,事件源、事件处理应用和事件接收器彼此解耦,使得可以添加或除去这些部件中任何部件,而不造成对其它部件的改变。
在一种实施例中,EPS 102可以实现为包括带共享服务的轻量级Java应用容器,诸如基于Equinox OSGi的容器,的Java服务器。在一些实施例中,EPS 102可以对处理事件支持超高吞吐量和微秒级延迟,例如,通过使用JRockit Real Time。EPS 102还可以提供开发平台(例如,完全实时的端到端Java事件驱动体系架构(EDA)开发平台),包括用于开发事件处理应用的工具(例如,Oracle CEP Visualizer和Oracle CEP IDE)。
事件处理应用配置为监听一个或多个输入事件流,执行用于从一个或多个输入事件流选择一个或多个值得注意的事件的逻辑(例如,查询),并且把选定的值得注意的事件经由一个或多个输出事件流输出到一个或多个事件源。图1提供了用于一个这种事件处理应用120的钻取(drilldown)。如图1中所示,事件处理应用120配置为监听输入事件流118、执行包括用于从输入事件流118选择一个或多个值得注意的事件的逻辑的查询130,并且经由输出事件流128向事件接收器112输出选定的值得注意的事件。事件源的例子包括,但不限于,适配器(例如,JMS、HTTP和文件)、通道、处理器、表、高速缓存,等等。事件接收器的例子包括,但不限于,适配器(例如,JMS、HTTP和文件)、通道、处理器、表、高速缓存,等等。
虽然图1中的事件处理应用120示为监听一个输入流并且经由一个输出流输出选定的事件,但这不是要作为限制。在备选实施例中,事件处理应用可以配置为监听从一个或多个事件源接收的多个输入流,从被监视的流选择事件,并且经由一个或多个输出事件流向一个或多个事件接收器输出选定的事件。相同的查询可以与多于一个事件接收器并且与不同类型的事件接收器关联。
由于其无界性,经由事件流接收的数据量一般非常大。因此,为了查询目的而存储或归档所有数据一般是不实际和不期望的。当事件被EPS 102接收时,事件流的处理需要实时的事件处理,而无需存储所有接收的事件数据。因此,当事件被EPS 102接收时,EPS 102提供使事件处理能够被执行的具体查询机制,而无需存储所有接收的事件。
事件驱动的应用是规则驱动的并且这些规则可以以用来处理输入流的连续查询的形式表示。连续的查询可以包括识别对所接收的事件要执行的处理的指令(例如,业务逻辑),包括什么事件要作为值得注意的事件被选择并且作为查询处理的结果输出。连续查询可以被持久化到数据存储并且用于处理事件的输入流以及生成事件的输出流。连续查询可以指定过滤和聚合功能,以便从输入事件流发现和提取值得注意的事件。因此,输出事件流中出站事件的数量一般比从其选择事件的输入事件流中事件的数量少得多。
不像对有限数据集运行一次的SQL查询,已经由应用向EPS102对特定事件流登记的连续查询可以在每次在那个事件流中接收到事件时被执行。作为连续查询执行的一部分,EPS 102基于由连续查询指定的指令评估所接收的事件以确定一个或多个事件是否要被选择作为值得注意的事件,并且作为连续查询执行的结果输出。
连续查询可以利用不同的语言来编程。在某些实施例中,连续查询可以利用由Oracle公司提供的连续查询语言(CQL)配置并且被Oracle的复杂事件处理(CEP)产品供应使用。Oracle的CQL是可以被用来编程可以对照事件流来执行的查询(称为CQL查询)的声明性语言。在某些实施例中,CQL基于具有支持流化事件数据的处理的附加结构的SQL。
在一种实施例中,事件处理应用可以由以下部件类型组成:
(1)直接对接到输入和输出流以及关系(relation)源和接收器的一个或多个适配器。适配器配置为理解输入和输出流协议,并且负责把事件数据转换为可以由应用处理器查询的规格化形式。适配器可以把规格化的事件数据转发到通道或输出流和关系接收器中。事件适配器可以为各种数据源和接收器定义。
(2)充当事件处理端点的一个或多个通道。除其它的之外,通道负责查询事件数据,直到事件处理代理可以对其作用。
(3)一个或多个应用处理器(或者事件处理代理)配置为消费来自通道的规格化事件数据,利用选择值得注意的事件的查询来处理它,并且把选定的值得注意的事件转发(或拷贝)到输出通道。
(4)一个或多个bean可以被配置为或注册为监听输出通道,并且可以通过把新事件插入输出通道而被触发。在一些实施例中,这种用户代码是Java原生类对象(POJO)或者用户代码可以使用Oracle CEP事件bean API,使得bean可以由Oracle CEP管理。用户应用可以使用一组外部服务,诸如JMS、Web服务和文件书写器,以便把生成的事件转发到外部事件接收器。
在一种实施例中,事件适配器向输入通道提供事件数据。输入通道连接到与对由输入通道提供的事件操作的一个或多个CQL查询关联的CQL处理器。CQL处理器连接到查询结果写到其的输出通道。
在一些实施例中,组装文件可以为事件处理应用提供,该文件用于描述事件处理应用的各种部件,部件如何连接到一起,由应用处理的事件类型。可以提供单独的文件,用于指定用于事件选择的连续查询或业务逻辑。
应当认识到,图1中所绘出的系统100可以具有除图1中所绘出的之外的其它部件。另外,图1中所示的实施例仅仅是可以结合本发明实施例的系统的一个例子。在一些其它实施例中,系统100可以具有比图1中所示更多或更少的部件,可以组合两个或更多个部件,或者可以具有部件的不同配置或布置。系统100可以是各种类型,包括个人计算机、便携式设备(例如,移动电话或设备)、工作站、网络计算机、大型机、信息站、服务器,或者任何其它数据处理系统。在一些其它实施例中,系统100可以配置为分布式系统,其中系统100的一个或多个部件跨云中的一个或多个网络分布。
图1中所绘出的一个或多个部件可以在软件中、在硬件中或者其组合中实现。在一些实施例中,软件可以存储在存储器(例如,非暂态计算机可读介质)中、存储器设备上或者某种其它物理存储器中,并且可以由一个或多个处理单元(例如,一个或多个处理器、一个或多个处理器核心、一个或多个GPU,等等)执行。
事件和应用的例子
(1)用于基于市场动向自动化股票交易的金融算法交易应用。样本查询:如果在任何20秒的窗口内StockB上升超过2%并且StockA没有,则自动购买StockA。
(2)交通:用于通过检测事件中的模式来发现欺诈行为的安全和欺诈检测应用。样本查询:如果单个ID卡在不到5秒的时间内被使用两次来访问城市地铁系统,则提醒保安进行介入。
(3)用于减少假阳性报警的能源和电讯报警相关应用。样本查询:当在任何5秒窗口内接收到15个报警但是在30秒内检测到少于5个相似的报警时,什么也不做。
(4)健康护理患者监视应用,用于监视患者的生命体征并且如果发生特定的事件就执行某个任务。样本查询:当药物治疗的变化后面跟着任何10秒窗口内在该患者最大允许值20%之内的血压上升时,提醒最近的护士。
基于窗口的处理
作为另一个例子,事件处理应用可以配置为对某个时间范围收集并处理数据或事件。例如,EPS 102可以接收事件的温度事件流,包括“temp”属性和关联的时间。“temp”数据可以指示在关联的时间的温度。CQL查询可以为这种事件流格式化,以获得用于前十秒的平均温度。查询可以如下指定:
Select avg(temp)from temp[range 10]
以上查询在“10”的范围上找出“temp”数据的平均值,在这个例子中,“10”的范围指示10秒。在其它实施例中,范围可以利用诸如分钟、天或者任何其它指定的时间单位的其它时间单位指定。当被EPS 102执行时,CQL查询评估在前十秒内接收的元组并且找出平均温度。“到期的”元组,或者在所指示范围之前(即,在10秒窗口之外)接收的那些元组,被查询忽略。因此,CQL查询不需要考虑并存储所有接收的事件而是只处理最后10秒窗口内的事件。
由于事件流代表潜在无尽的元组流,因此,为了在接收到元组的时候处理元组,CQL查询(或者一般而言的是连续查询)识别所接收事件中用来在CQL查询每次执行时处理的子集。CQL查询通过指定窗口来实现这,其中窗口定义当CQL查询被执行时要用于处理目的所接收事件的子集(或部分)。窗口是来自事件流的零个或多个事件的有界子集。
在Oracle事件处理CQL语义中,窗口被定义为流到关系的操作器,在每个时刻,关系是无序的、时变有界事件集合(或包)。在一种实施例中,流到关系的操作器在流上提供滑动窗口并且利用窗口规范定义。在一些实施例中,窗口可以是
(1)基于时间的–基于具体的持续时间;
(2)基于元组或基于事件的–基于多个事件;或者
(3)基于分区的–对于每个分区基于时间或基于元组的。
基于时间的窗口
为了处理事件流,基于时间的窗口是利用控制包括在那个窗口中的事件的时间参数定义的。在一些实施例中,时间参数可以指定用于窗口的时间范围。例如,CQL查询可以如下指定用于输入流S的基于时间范围的窗口:
S[range T]
以上CQL代码在以持续时间“T”为参数的流上创建基于时间的范围窗口并且产生输出关系。持续时间T可以以某个时间单位指定,诸如分钟、秒、天,等等,并且在一种实施例中,如果没有指定单位,则缺省是秒。因此,利用“range”关键词指定的基于时间的窗口在流S上创建基于时间的滑动窗口,以时间间隔“T”为参数并且产生输出关系“R(t)”。在时间“t”,输出关系R(t)包含来自输入事件流S的所有事件,具有在“t-T”和“t”之间的关联的时间戳,其中“T”是窗口的尺寸或持续时间。
在基于时间的范围窗口的之前实现中,用于在CQL中指定时间窗口的持续时间的时间参数“T”是恒定或固定的。因此,在之前的实现中,每个事件在基于时间的窗口中所花费的时间量不随事件本身而变。对于留在基于时间的窗口中相同持续时间的所有事件,所有事件都被相同地对待。例如,在早先描述的温度平均示例CQL查询中,范围被指定为“[range 10]”,其中“T”的值被设置为表示10秒的固定值“10”。由于范围窗口的固定不变本质,在时间“t”,窗口评估在最后10秒内(即,“t”与“t-10”之间)接收到的事件的关系集合。应当指出,虽然窗口本身随“t”滑动,但是窗口的持续时间总是固定到10秒。以前,由于固定的持续时间,基于时间的窗口中的事件总是在时间窗口中相同的持续时间之后到期。
除了固定的或恒定的基于时间的范围窗口,本发明的某些实施例允许基于时间的窗口的持续时间对于经由相同事件流接收的不同事件是可变的。在这种实施例中,用于定义滑动的基于时间的范围窗口的持续时间的持续时间参数“T”的值可以不同,并且因此对于不同的事件可变。因此,对于向EPS 102登记的用于特定事件流的查询,经由事件流接收的事件的持续时间可以对不同事件不同。例如,如图1中所示,事件应用120可以包括具有指定基于可变时间的窗口的CQL代码的连续查询130。
例如,对于经由事件流接收的第一输入事件,第一事件有资格保留在基于时间的范围窗口中的持续时间可以是“X”,并且对于经由相同事件流接收的第二事件,第二事件有资格保留在基于时间的范围窗口中的持续时间可以是“Y”,其中X与Y不同。第一和第二事件可以具有相同的关联时间戳或者不同的时间戳。因此,本发明的实施例使得事件在基于时间的窗口中所花费的时间量受控。
存在可变范围持续时间参数T的值可以为事件设置的各种途径。在一些实施例中,持续时间参数T可以是用户可配置的。在某些实施例中,T的值(即,基于事件的范围窗口的持续时间)是事件本身的函数。例如,对于接收到的事件,T的值可以基于所接收事件的一个或多个属性的值来设置。例如,假设具有带两个属性<attr_1,attr_2>的关联模式的事件流。在一种实施例中,在针对事件流的CQL查询中,事件可以在基于时间的范围窗口中花费的时间可以编程为设置成属性“attr_2”的值。例如,如果事件流接收如下事件:
…
(<timestamp_N>,<attr_1=100,attr_2=5>)
(<timestamp_N+1>,<attr_1=100,attr_2=2>)
(<timestamp_N+2>,<attr_1=200,attr_2=2>)
(<timestamp_N+3>,<attr_1=600,attr_2=4>)
…
当接收到具有timestamp_N的事件时,事件可以保留在基于时间的范围窗口中的持续时间被计算为5个时间单位,因为元组的attr_2的值是5;对于具有timestamp_N+1的事件,事件可以保留在基于时间的范围窗口中的持续时间被计算为2个时间单位;对于具有timestamp_N+2的事件,事件可以保留在基于时间的范围窗口中的持续时间被计算为2个时间单位;对于具有timestamp_N+3事件,事件可以保留在基于时间的范围窗口中的持续时间被计算为4个时间单位;以此类推。以这种方式,事件有资格留在用于事件流的基于时间的窗口中的持续时间可以从一个事件到另一个事件变化。在以上例子中,持续时间基于所接收事件的“attr_2”的值而变化。
在一些其它实施例中,时间参数T可以表示为如下的数学表达式:
S[RANGE<数学表达式>]
在某些实施例中,数学表达式可以基于事件流模式的一个或多个属性。例如,对于具有模式属性<attr_1,attr_2>的事件流,<数学表达式>可以定义为<attr_2+4>、<attr_1+attr_2),等等。在备选实施例中,可以或者可以不基于事件的其它函数或条件也可以用来设置和改变用于连续查询的基于时间的范围窗口的持续时间。
作为另一个例子,假设流定义为:
CREATE STREAM S(DATA INTEGER,RANGE_COLUMN BIGINT);
经由这种定义,每个流事件包含两个属性(也称为列),第一个属性“DATA”取integer数据值并且第二个属性“RANGE_COLUMN”取bigint(long)值。然后,“RANGE_COLUMN”属性可以用来指定基于时间的范围窗口的持续时间。
指定基于可变持续时间的范围窗口的CQL查询可以如下对流S指定:
CREATE QUERY Q1 AS SELECT*FROM S[RANGE<range_expression>]
这对基于时间的范围窗口创建了连续查询Q1,其中基于时间的窗口的持续时间指定为表达式“range_expression”。
在一种实施例中,range_expression可以基于来自流S的一个或多个属性。例如:
CREATE QUERY Q1 AS SELECT*FROM S[RANGE RANGE_COLUMN]
在这里,所接收事件的属性RANGE_COLUMN的值指定基于时间的范围窗口的持续时间。在这种情况下,利用所接收输入事件的属性RANGE_COLUMN的值,为经由S事件流接收的每个输入事件计算<range_expression>的值。在时间“t”接收的输入元组将被插入基于时间的窗口并且将留在基于时间的窗口中依照<range_expression>的值的持续时间,然后从该窗口到期或除去。因此,为所接收事件计算的到期时间是(t+range_expression_value),其中,当利用所接收事件的RANGE_COLUMN属性的值接收事件时,“range_expression_value”是通过评估<range_expression>计算出的值。由于属性RANGE_COLUMN的值可以从一个事件到另一个事件改变,因此基于时间的窗口的持续时间也可以从一个事件到另一个事件变化。
以下例子示出了当事件被接收时基于可变持续时间的范围窗口的影响。对于这个例子,假设输入事件流S具有模式(<timestamp>,<attributes>),带三个属性c1、c2和c3:(c1integer,c2bigint,c3double)。连续CQL查询可以如下对流S指定:
SELECT*FROM S[range c2]
经由这个查询,对于每个接收的事件,用于基于时间的窗口的持续时间基于属性c2的值。
以下表A示出了当事件经由输入事件流S被接收时元组的输入流以及在各个时间点基于时间的范围窗口的内容。
表A:基于可变持续时间的范围窗口处理
在以上所示的表A中,左列示出经由具有模式(时间戳,c1,c2,c3)的流S接收的事件流。时间戳以毫秒(msec)示出,其中1秒=1000msec。时间戳可以,例如,是当事件被接收或者当事件发生时的时间。表A的右列示出基于时间的范围窗口内在各个时间点的内容(即,事件)(以毫秒(msec)示出,其中1秒=1000msec)。事件前面的“+”号用来指示事件被添加到基于时间的窗口。事件前面的“-”号用来指示事件已经由于事件到期而从基于时间的窗口被删除。
在一种实施例中,在接收到事件时,为事件计算到期时间。为事件计算的到期时间指示当事件到期并且要从基于时间的窗口删除时的时间。然后,事件被添加到基于时间的窗口。基于时间的窗口还被检查,以确定窗口中是否有任何事件到期并且需要从窗口中除去。
对于在时间“t”到达并且具有时间范围或持续时间“T”的事件,事件的到期时间是(t+T)。对于查询
SELECT*FROM S[range c2],
范围值是基于所接收事件中属性c2的值。因此,对于具有关联时间戳“t”的所接收事件,用于事件的到期时间是(t+c2的值)。在以上的表A中,用于每个所接收事件的到期时间示为事件的上标(例如,(时间戳,c1,c2,c3)到期时间)。在某些实施例中,除非通过范围语句专门指定,否则缺省地,范围时间单位是秒,因此S[range 1]等效于S[range 1秒]。
假设基于时间的窗口(即,由基于时间的窗口输出的关系集)在事件在1000msec到达之前,即,具有关联时间戳1000msec的事件的到达之前,是空的。如表A中所示,事件(1000,10,1,10.0)首先被接收。用于事件的到期时间计算为2秒(事件的时间戳+c2的值,即,1+1=2秒)。然后,事件添加(由“+”号表示)到基于时间的窗口。事件(1000,10,1,10.0)留在基于时间的窗口中1秒,然后在2秒标记从该窗口被删除。在这个时候,基于时间的范围窗口包括一个事件(1000,10,1,10.0)。
接下来接收事件(2000,20,2,20.0)。在一种实施例中,2000msec的时间戳可以指示事件被接收的时间。基于时间的窗口的内容被检查,以查看窗口内是否有任何事件到期。确定事件(1000,10,1,10.0)已经到期并且从基于时间的窗口删除(由“-”号表示)。事件(2000,20,2,20.0)的到期时间计算为4秒(事件的时间戳+c2的值,即,2+2=4秒)。然后,事件添加到基于时间的窗口。事件停留在窗口中2秒并且在4秒标记从窗口删除。在这个时候,基于时间的范围窗口包括一个事件(2000,20,2,20.0)。
接下来接收事件(3000,30,3,30.0)。基于时间的窗口的内容被检查,以查看窗口内是否有任何事件到期并且确定没有一个事件到期。事件(3000,30,3,30.0)的到期时间计算为6秒(事件的时间戳+c2的值,即,3+3=6秒)。事件添加到基于时间的窗口。事件留在窗口中3秒并且在6秒标记从窗口删除。在这个时候,基于时间的范围窗口包括两个事件(2000,20,2,20.0)和新添加的事件(3000,30,3,30.0)。
接下来接收事件(4000,40,4,40.0)。基于时间的窗口的内容被检查,以查看窗口内是否有任何事件到期。确定事件(2000,20,2,20.0)已到期并且从基于时间的窗口被删除(由“-”号表示)。事件(4000,40,4,40.0)的到期时间计算为8秒(事件的时间戳+c2的值,即,4+4=8秒)。然后,事件添加到基于时间的窗口。事件留在窗口中4秒并且在8秒标记从窗口删除。在这个时候,基于时间的范围窗口包括两个事件(3000,30,3,30.0)和新添加的事件(4000,40,4,40.0)。
接下来接收事件(5000,50,5,50.0)。基于时间的窗口的内容被检查,以查看窗口内是否有任何事件到期并确定没有事件到期。事件(5000,50,5,50.0)的到期时间计算为10秒(事件的时间戳+c2的值,即,5+5=10秒)。然后,事件添加到基于时间的窗口。事件留在窗口中5秒并且在10秒标记从窗口删除。在这个时候,基于时间的范围窗口包括三个事件(3000,30,3,30.0)、(4000,40,4,40.0)和新添加的事件(5000,50,5,50.0)。
接下来接收事件(6000,60,6,60.0)。基于时间的窗口的内容被检查,以查看窗口内是否有任何事件到期。确定事件(3000,30,3,30.0)已到期并且从基于时间的窗口被删除(由“-”号表示)。事件(6000,60,6,60.0)的到期时间计算为12秒(事件的时间戳+c2的值,即,6+6=12秒)。然后,事件添加到基于时间的窗口。事件留在窗口中6秒并且在12秒标记从窗口删除。在这个时候,基于时间的范围窗口包括三个事件(4000,40,4,40.0)、(5000,50,5,50.0)和新添加的事件(6000,60,6,60.0)。
接下来接收事件(7000,70,7,70.0)。基于时间的窗口的内容被检查,以查看窗口内是否有任何事件到期并且确定没有事件到期。事件(7000,70,7,70.0)的到期时间计算为14秒(事件的到达时间+c2的值,即,7+7=14秒)。然后,事件添加到基于时间的窗口。事件留在窗口中7秒并且在14秒标记从窗口删除。在这个时候,基于时间的范围窗口包括四个事件(4000,40,4,40.0)、(5000,50,5,50.0)、(6000,60,6,60.0)和新添加的事件(7000,70,7,70.0)。
接下来接收事件(8000,80,8,80.0)。基于时间的窗口的内容被检查,以查看窗口内是否有任何事件到期,并且确定事件(4000,40,4,40.0)已到期并且从基于时间的窗口被删除(由“-”号表示)。事件(8000,80,8,80.0)的到期时间计算为16秒(事件的时间戳+c2的值,即,8+8=16秒)。然后,事件添加到基于时间的窗口。事件留在窗口中8秒并且在16秒标记从窗口删除。在这个时候,基于时间的范围窗口包括四个事件(5000,50,5,50.0)、(6000,60,6,60.0)、(7000,70,7,70.0)和新添加的事件(8000,80,8,80.0)。
接下来接收事件(9000,90,9,90.0)。基于时间的窗口的内容被检查,以查看窗口内是否有任何事件到期,并且确定没有事件到期。事件(9000,90,9,90.0)的到期时间计算为18秒(事件的到达时间+c2的值,即,9+9=18秒)。事件添加到基于时间的窗口。事件留在窗口中9秒并且在18秒标记从窗口删除。在这个时候,基于时间的范围窗口包括五个事件(5000,50,5,50.0)、(6000,60,6,60.0)、(7000,70,7,70.0)、(8000,80,8,80.0)和新添加的事件(9000,90,9,90.0)。
接下来接收事件(10000,100,10,100.0)。基于时间的窗口的内容被检查,以查看窗口内是否有任何事件到期,并且确定事件(5000,50,5,50.0)已到期并且从基于时间的窗口被删除(由“-”号表示)。事件(10000,100,10,100.0)的到期时间计算为20秒(事件的时间戳+c2的值,即,10+10=20秒)。事件添加到基于时间的窗口。事件留在窗口中10秒并且在20秒标记从窗口删除。在这个时候,基于时间的范围窗口包括五个事件(6000,60,6,60.0)、(7000,70,7,70.0)、(8000,80,8,80.0)、(9000,90,9,90.0)和新添加的事件(10000,100,10,100.0)。
接下来接收事件(11000,110,11,110.0)。基于时间的窗口的内容被检查,以查看窗口内是否有任何事件到期,并且确定没有事件到期。事件(11000,110,11,110.0)的到期时间计算为22秒(事件的时间戳+c2的值,即,11+11=22秒)。事件添加到基于时间的窗口。事件留在窗口中11秒并且在22秒标记从窗口删除。在这个时候,基于时间的范围窗口包括六个事件(6000,60,6,60.0)、(7000,70,7,70.0)、(8000,80,8,80.0)、(9000,90,9,90.0)、(10000,100,10,100.0)和新添加的事件(11000,110,11,110.0)。
接下来接收事件(12000,120,12,12.0)。基于时间的窗口的内容被检查,以查看窗口内是否有任何事件到期,并且确定事件(6000,60,6,60.0)已到期并且从窗口输出的关系中被删除(由“-”号表示)。事件(12000,120,12,12.0)的到期时间计算为24秒(事件的到达时间+c2的值,即,12+12=24秒)。然后,事件添加到基于时间的窗口。事件留在窗口中12秒并且在24秒标记从窗口删除。在这个时候,基于时间的范围窗口包括六个事件(7000,70,7,70.0)、(8000,80,8,80.0)、(9000,90,9,90.0)、(10000,100,10,100.0)、(11000,110,11,110.0)和新添加的事件(12000,120,12,12.0)。
如以上关于表A所描述的,在接收到输入事件时执行的处理包括确定用于输入事件的到期时间、把输入事件添加到基于时间的窗口,并且检查该窗口以识别和删除任何到期的事件。事件留在基于时间的窗口中的持续时间可以是输入事件的属性的函数。由于那个属性的值可以在不同的事件中不同,因此事件留在基于时间的窗口中的持续时间可以从一个事件到另一个事件不同。因此,事件有资格保留在基于时间的窗口中的持续时间可以对不同的事件有所不同。
图2绘出了根据本发明实施例描绘用于管理可变持续时间窗口的方法的简化流程图200。图2中绘出的处理可以在由一个或多个处理器执行的软件(例如,代码、指令、程序)、硬件或者其组合中实现。软件可以存储在存储器中(例如,存储器设备上、非暂态计算机可读存储介质上)。图2中所绘出的处理步骤的特定序列不是要作为限制。
在某些实施例中,图2中所绘出的处理可以在每次经由事件流接收输入事件时作为连续查询执行的一部分来执行。在202,在事件流中可以接收输入事件(元组)。事件可以具有关联的时间信息(例如,时间戳)。在一些情况下,与事件关联的时间可以代表事件被接收的时间。
在204,为所接收的事件计算事件保持在基于时间的窗口中的持续时间。作为204的一部分,由CQL代码为基于时间的窗口指定的范围参数被确定并用来确定持续时间。如前所述,在一些实施例中,连续查询可以将基于时间的窗口的持续时间定义为所接收输入事件的一个或多个属性的值的函数。在这种场景中,在204中确定持续时间可以涉及确定在202中接收的事件的一个或多个属性的值并且作为那些值的函数计算那个事件的持续时间。由于用于计算持续时间的一个或多个属性的值可以对不同的事件不同,这使得该持续时间潜在地对不同的事件变化。
例如,在某些实施例中,持续时间可以设置为事件的特定属性的值。那个特定属性的值可以在204中确定并且用于该输入事件的窗口持续时间设置为所确定的值。在一些其它实施例中,连续查询可以将窗口的持续时间定义为基于一个或多个属性值的算术表达式。在这种场景中,在204中,可以确定用于所接收事件的一个或多个属性值并且然后利用所确定的值评估算术表达式,以计算所接收事件的持续时间。
在206,基于在204中确定的持续时间,为所接收的事件计算到期时间。在一种实施例中,
事件的到期时间=t+T
其中,“t”是与在202中接收的事件关联的时间(例如,事件的到达时间)并且“T”是在204中确定的持续时间。
在208,在206中计算的到期时间可以与在202接收的事件关联。例如,到期时间信息可以被存储,使得,给定事件,EPS 102可以容易地确定为该事件计算的到期时间。
在210,基于事件的窗口被检查,以查看它是否包含任何已经到期的事件(即,之前接收的事件)。对于被识别为已经到期的任何事件,在210,事件从基于时间的窗口被删除或者除去。在一种实施例中,如果为事件计算的到期时间等于或早于当前时间,则基于时间的窗口中的事件被认为到期。如上所述,事件的到期时间计算为(t+T)。因此,如果当前时间(tP)与(t+T)相同或稍晚,则事件被认为已到期。然后,在210,被确定为已经到期的任何事件都从基于时间的窗口删除或除去。
在212,在202中接收的事件插入或添加到基于时间的窗口。在214,处理随后等待事件流中的下一个事件。在接收到下一个事件时,处理从202至214重复。
如以上关于图2描述的,为每个所接收的事件计算持续时间和到期时间,然后事件插入基于时间的窗口。另外,基于时间的窗口中的任何现有事件也被检查,以识别任何到期的事件,然后,这些到期的事件从基于时间的窗口被删除或除去。以这种方式,为每个事件计算事件保留在基于时间的窗口中的持续时间,其中持续时间可以基于事件的一个或多个属性值。基于持续时间为事件计算的到期时间代表事件已到期并且要从基于时间的窗口删除或除去的时间。
图3绘出了根据本发明实施例可以用来实现基于可变持续时间的窗口处理的模块和数据结构。图3中绘出的模块可以在软件或硬件或者其组合中实现。另外,在图3中绘出的模块和数据结构不是要作为限制。在各种布置和组合中,备选实施例可以具有比图3中所示更多或更少的模块。
在图3中所绘出的实施例中,模块包括持续时间和到期时间评估器模块302以及基于时间的窗口操作器模块304。持续时间和到期时间评估器模块302可以配置为,对于每个新接收的事件,确定用于所接收事件的持续时间和到期时间。然后,所接收的事件连同为该事件接收的到期时间可以移交到基于时间的窗口操作器模块304,供进一步处理。在一种实施例中,持续时间和到期时间评估器302可以配置为执行在图2的204、206和208中绘出并在以上描述的处理。
基于时间的窗口操作器模块304可以配置为管理基于时间的窗口。这可以涉及把新接收的事件插入基于时间的窗口,确定基于时间的窗口中的事件何时到期,并且从基于时间的窗口删除或除去到期的事件。在一种实施例中,基于时间的窗口操作器304可以配置为执行在210和212中绘出并在上面描述的处理。
各种数据结构可以用来实现基于可变持续时间的窗口。在一种实施例中,使用优先级队列,其中优先级是由为窗口中的事件计算的到期时间指示的。新接收的事件添加到队列并且到期的事件从该队列删除。队列中的事件可以基于它们关联的到期时间排序。在一种实施例中,事件被排序,使得具有较早到期时间的事件更靠近队列的头部并且具有更晚到期时间的事件朝着队列的尾部。在任何时刻,优先级队列都可以包括零个或多个事件,代表在那个时刻基于时间的窗口中的零个或多个事件。
图4绘出了描绘在如上所述优先级队列用来实现基于可变持续时间的窗口的实施例中可以由基于时间的窗口操作器执行的处理的简化流程图400。图4中所绘出的处理可以在由一个或多个处理器执行的软件(例如,代码、指令、程序)、硬件或者其组合中实现。软件可以存储在存储器中(例如,在存储器设备上,在非暂态计算机可读存储介质上)。图4中所绘出的处理步骤的特定序列不是要作为限制。
在402,可以接收新接收的具有关联的到期时间的事件。事件的到期时间可以已经由持续时间和到期时间评估器模块302计算。
在404,确定队列是否为空。空队列指示当前窗口中没有事件。如果在404中确定队列为空,则处理以412继续,否则以406继续。
在406,位于优先级队列头部的事件被访问。由于优先级队列中的事件元素总是基于与事件关联的到期时间来排序,因此具有较早到期时间的事件更靠近队列的头部并且具有较晚到期时间的事件朝着队列的尾部,位于队列头部的事件代表窗口中具有最早到期时间的事件。
在408,确定在406访问的事件是否已到期。在一种实施例中,如果与被访问的事件关联的到期时间等于或早于当前时间,则事件被认为到期。例如,如果当前时间在10秒标记,则如果与被访问事件关联的到期时间是10秒或少于10秒,则被访问的事件被认为到期。如果在408中确定被访问的事件已经到期,则在410,被访问的事件从优先级队列除去或删除并且处理以404继续。如果在408中确定被访问的事件还没有到期,则处理以412继续。以这种方式,404、406、408和410中的处理重复,直到队列中所有到期的事件都已经从队列除去或者直到队列为空。
如果在404中确定队列为空或者在406中确定被访问的事件还没有到期,则处理以412继续。在412,基于为事件计算的到期时间,在402接收的事件添加到队列。事件以维持队列的有序本质的方式插入(即,基于到期时间排序)。然后,处理以414继续,其中EPS102等待事件流中的下一个事件。在事件来临时,处理以402继续。
基于时间的分区窗口
在某些实施例中,“PARTITION BY”CQL子句使得事件流能够基于流的属性被逻辑分区为多个子流。然后,在每个子流上独立地计算范围T的滑动窗口。
例如,基于时间的分区窗口可以如下为流S计算:
S[partition by A1,...,Ak rows N range T]
在流S上的以上分区的滑动窗口取正整数个事件N并且流的属性的子集{A1,...Ak}作为参数并且(1)基于属性A1,...Ak的平等性把S逻辑分区为不同的子流以及(2)在每个子流上独立地计算尺寸为N且范围/持续时间为T的基于事件的滑动窗口。基于事件的滑动窗口独立地应用到每个分区。这种窗口可以被称为“行-时间范围窗口”,因为,对于分区上的窗口,或者基于由“range T”控制的关联的到期时间或者基于窗口中由“rows N”控制的事件数量,事件从窗口到期,其中N定义行-时间范围窗口中事件的最大数量。
在之前的实现中,范围/持续时间“T”是恒定或固定的并且是不变的。对于由子句PARTITION BY创建为对不同事件不同的分区,本发明的某些实施例允许范围/持续时间T指定事件有资格保持在行-时间范围窗口中的持续时间。因此,对于为特定的输入事件流向EPS 102登记的查询,事件保留在用于分区的窗口中的持续时间可以对不同的事件不同。
例如,考虑以下具有可变持续时间分区窗口的CQL查询:
CREATE QUERY Q1AS
SELECT*
FROM S[PARTITION BY DATA ROWS M RANGE<range_expression>]
以上CQL代码基于“DATA”的值把流S分区成分区或子流。对于每个分区,CQL代码指定行-时间范围窗口,其中行-时间范围窗口中事件的最大数量是“M”并且事件有资格保留在行-时间范围窗口中的持续时间由<range_expression>表示。在这个例子中,用于“range”的参数指定为表达式<range_expression>,其中range_expression可以是变量或算术表达式。在一些实施例中,<range_expression>可以基于事件属性。在某些其它实施例中,<range_expression>可以是算术表达式,其可以基于事件流模式的一个或多个属性。
例如,考虑以下:
FROM S[PARTITION BY DATA ROWS 2 RANGE RANGE_COLUMN]
在这里,事件流S再一次基于属性“DATA”的值分区。CQL代码为每个分区指定行-事件范围窗口,其中用于分区的窗口中事件的最大数量是2并且事件有资格保留在窗口中的持续时间由RANGE_COLUMN表示,RANGE_COLUMN是事件属性。对于属于特定分区的事件,事件有资格保留在行-时间范围窗口中的持续时间通过事件的属性RANGE_COLUMN的值并且通过分区窗口中事件的数量(最大值2)控制。因此,具有属性RANGE_COLUMN的不同值的事件将有资格保留在窗口中不同的持续时间。
在以下例子中,分区的基于时间的持续时间参数表示为算术表达式。
CREATE QUERY Q1 AS
SELECT*FROM S[PARTITION BY DATA ROWS 2RANGE<range_expression>]]
在这里,事件流S基于属性“DATA”的值被分区。CQL代码指定用于每个分区的行-时间范围窗口,其中窗口内事件的最大数量为2并且事件有资格保留在窗口内的持续时间由表达式<range_expression>表示。这个行-时间范围窗口独立地应用到每个分区。因此,为分区的被接收事件计算的到期时间是(t+range_expression_value),其中“range_expression_value”是当接收到事件时通过评估<range_expression>来计算的值。
以下例子示出了当事件被接收时应用到不同分区的基于可变持续时间的范围窗口的效果。对于这个例子,假设输入事件流S具有带两个属性c1和c2的模式:
S(c1character(2),c2bigint)
连续CQL查询可以如下为流S指定:
SELECT*from S[PARTITION BY c1ROWS 2RANGE c2]
经由以上CQL代码,输入流S基于属性c1的值被分区。CQL代码指定用于每个分区的行-时间范围窗口,其中用于分区的窗口内事件的最大数量是2(由于“ROWS 2”)并且事件有资格留在用于该分区的窗口中的持续时间是由事件的属性c2的值确定的(由于“RANGEc2”)。
以下表B示出了当事件经由输入事件流S被接收时元组的输入流和元组的内容以及在各个时间点应用到多个分区的行-时间范围窗口。
表B:具有分区处理的基于可变持续时间的范围窗口
在以上所示的表B中,左列示出了经由具有模式(时间戳,c1,c2)的流S接收的事件流。时间戳以毫秒(msec)示出,其中1秒=1000msec。在一种实施例中,与事件关联的时间戳可以代表当事件被接收时或者当事件发生时的时间。表B的右列为每个分区示出了在各个时间点用于分区的行-时间范围窗口内的内容(即,事件)。事件前面的“+”号用来指示事件被添加到用于分区的行-时间范围窗口。事件前面的“-”号用来指示事件由于事件到期而已经从行-时间范围窗口删除。
在一种实施例中,在接收到事件时,确定用于该事件的分区。为事件计算到期时间。为事件计算的到期时间指示当事件到期并且要从用于分区的行-时间范围窗口删除的时间。然后,事件添加到用于适当分区的行-时间范围窗口。用于每个分区的行-时间范围窗口也被检查,以确定行-时间范围窗口中是否有任何事件由于事件到期或者由于ROWs条件而需要从窗口中除去。
对于具有关联的时间戳“t”并且具有时间范围或持续时间“T”的事件,用于事件的到期时间是(t+T)。对于查询
SELECT*from S[PARTITION BY c1 ROWS 2 RANGE c2]
范围值是基于所接收的事件中属性c2的值。因此,对于所接收的事件,用于事件的到期时间是(t+c2的值)。在以上表B中,用于每个所接收事件的到期时间示为事件的上标(例如,(时间戳,c1,c2)到期时间)。
如表B中所示,接收事件(1000,a,2)。用于各个分区的行-时间范围窗口(即,由窗口对每个分区输出的关系集)被检查,以确定是否有任何事件由于事件到期而需要从行-时间范围窗口删除。对于表B中所绘出的例子,假设用于各个分区的行-时间范围窗口在事件(1000,a,2)到达之前是空的。基于事件的c2属性的值,确定事件要留在用于对应于属性值“a”的分区(“Pa”)的行-时间范围窗口中2秒。用于事件(1000,a,2)的到期时间计算为3秒标记(事件的时间戳+c2的值,即,1+2=3秒)。然后,事件(1000,a,2)添加到用于Pa的行-时间范围窗口(通过“+”表示)。事件(1000,a,2)有资格留在用于分区Pa的行-时间范围窗口中2秒。事件要在3秒标记从行-时间范围窗口删除(或者由于用于分区窗口的“ROWS 2”条件而更早)。然后,用于Pa的行-时间范围窗口被检查,以确定是否有任何事件由于“ROWS 2”条件而需要从行-时间范围窗口删除。确定没有事件需要删除。
接收具有相同的关联时间戳信息的事件(1000,a,9)。基于事件的c2属性的值确定事件要留在用于Pa的行-时间范围窗口中9秒。用于事件的到期时间计算为10秒标记(事件的时间戳+c2的值,即,1+9=10秒)。然后,事件(1000,a,9)添加到用于分区Pa的行-时间范围窗口(通过“+”表示)。事件(1000,a,9)有资格留在用于分区Pa的行-时间范围窗口中9秒。事件要在10秒标记从行-时间范围窗口删除(或者更早,由于用于分区窗口的“ROWS 2”条件)。用于Pa的行-时间范围窗口被检查,以确定是否有任何事件由于事件(1000,a,9)的插入而需要从行-时间范围窗口删除以满足“ROWS 2”条件。确定没有事件需要删除。在这个时候,用于分区Pa的行-时间范围窗口包括两个事件(1000,a,2)和(1000,a,9)。
接下来接收事件(2000,a,1)。用于各个分区的行-时间范围窗口被检查,以确定是否有任何事件由于事件到期而需要从行-时间范围窗口删除。确定没有事件到期。基于事件的c2属性的值确定事件要留在用于Pa的行-时间范围窗口中1秒。事件(2000,a,1)的到期时间计算为3秒标记(事件的时间戳+c2的值,即,2+1=3秒)。然后,事件(2000,a,1)添加到用于分区Pa的行-时间范围窗口(通过“+”表示)。事件(2000,a,1)有资格留在用于分区Pa的行-时间范围窗口中1秒。事件要在3秒标记从行-时间范围窗口删除(或者由于用于分区窗口的“ROWS 2”条件而更早)。然后,用于Pa的行-时间范围窗口被检查,以确定是否有任何事件由于事件(2000,a,1)的插入以满足“ROWS 2”条件而需要从行-时间范围窗口删除。由于用于Pa的行-时间范围窗口的“ROWS 2”条件,事件(2000,a,1)的添加使事件(1000,a,2)从用于分区Pa的行-时间范围窗口被除去(用“-”表示),在用于分区Pa的行-时间范围窗口中留下两个事件(1000,a,9)和(2000,a,1)。
接下来接收事件(3000,b,1)。用于各个分区的行-时间范围窗口被检查,以确定是否有任何事件由于事件到期而需要从行-时间范围窗口删除。确定用于分区Pa的行-时间范围窗口中的事件(2000,a,1)已经到期并且从窗口中删除(用“-”表示)。基于事件的c2属性的值确定事件(3000,b,1)要留在用于对应于属性值“b”的分区(“Pb”)的行-时间范围窗口中1秒。事件(3000,b,1)的到期时间计算为4秒标记(事件的时间戳+c2的值,即,3+1=4秒)。然后,事件(3000,b,1)添加到用于Pb的行-时间范围窗口(通过“+”表示)。事件(3000,b,1)有资格留在用于分区Pb的行-时间范围窗口中1秒。事件要在4秒标记从行-时间范围窗口删除(或者由于用于分区窗口的“ROWS 2”条件而更早)。然后,用于Pb的行-时间范围窗口被检查,以确定是否有任何事件由于事件(3000,b,1)的插入而需要从行-时间范围窗口删除以满足“ROWS 2”条件。确定没有事件需要删除。在这个时候,用于分区Pa的行-时间范围窗口包括事件(1000,a,9)并且用于分区Pb的行-时间范围窗口包括事件(3000,b,1)。
接下来接收具有相同的相关联时间戳的三个事件(4000,a,2)、(4000,a,3)和(4000,b,3)。用于各个分区的行-时间范围窗口被检查,以确定是否有任何事件由于事件到期而需要从行-时间范围窗口删除。确定用于分区Pb的行-时间范围窗口中的事件(3000,b,1)已经到期并且从窗口中删除(用“-”表示)。基于事件的c2属性的值确定事件(4000,a,2)要留在用于Pa的行-时间范围窗口中2秒。事件(4000,a,2)的到期时间计算为6秒标记(事件的时间戳+c2的值,即,4+2=6秒)。然后,事件(4000,a,2)添加到用于分区Pa的行-时间范围窗口(通过“+”表示)。事件(4000,a,2)有资格留在用于分区Pa的行-时间范围窗口中2秒并且要在6秒标记从行-时间范围窗口删除(或者由于用于分区窗口的“ROWS 2”条件而更早)。用于Pa的行-时间范围窗口被检查,以确定是否有任何事件由于事件(4000,a,2)的插入而需要从行-时间范围窗口删除以满足“ROWS 2”条件。确定没有事件需要删除。
对于事件(4000,a,3),基于c2属性的值,确定事件(4000,a,3)要留在用于Pa的行-时间范围窗口中3秒。事件(4000,a,3)的到期时间计算为7秒标记(事件的时间戳+c2的值,即,4+3=7秒)。然后,事件(4000,a,3)添加到用于分区Pa的行-时间范围窗口(通过“+”表示)。事件(4000,a,3)有资格留在用于分区Pa的行-时间范围窗口中3秒并且要在7秒标记从行-时间范围窗口删除(或者由于用于分区窗口的“ROWS 2”条件而更早)。用于Pa的行-时间范围窗口被检查,以确定是否有任何事件由于事件(4000,a,3)的插入而需要从行-时间范围窗口删除以满足“ROWS 2”条件。事件(4000,a,3)的添加使得事件(1000,a,9)从用于分区Pa的行-时间范围窗口删除(用“-”表示)。
对于事件(4000,b,3),基于c2属性的值,确定事件(4000,b,3)要留在用于分区Pb的行-时间范围窗口中3秒。事件(4000,b,3)的到期时间计算为7秒标记(事件的时间戳+c2的值,即,4+3=7秒)。然后,事件(4000,b,3)添加到用于分区Pb的行-时间范围窗口(通过“+”表示)。事件(b,3)有资格留在用于分区Pb的行-时间范围窗口中3秒并且要在7秒标记从行-时间范围窗口删除(或者由于用于分区窗口的“ROWS 2”条件而更早)。用于分区Pb的行-时间范围窗口被检查,以确定是否有任何事件由于事件(4000,b,3)的插入以满足“ROWS 2”条件而需要从行-时间范围窗口删除。确定没有事件需要删除。在这个时候,用于分区Pa的行-时间范围窗口包括事件(4000,a,2)和(4000,a,3),并且用于分区Pb的行-时间范围窗口包括事件(4000,b,3)。
接下来接收事件(5000,b,2)。用于各个分区的行-时间范围窗口被检查,以确定是否有任何事件由于事件到期而需要从行-时间范围窗口删除。确定没有事件到期。基于c2属性的值,确定事件(5000,b,2)要留在用于分区Pb的行-时间范围窗口中2秒。事件(5000,b,2)的到期时间计算为7秒标记(事件的时间戳+c2的值,即,5+2=7秒)。然后,事件(5000,b,2)添加到用于分区Pb的行-时间范围窗口(通过“+”表示)。事件(5000,b,2)有资格留在用于分区Pb的行-时间范围窗口中2秒并且要在7秒标记从行-时间范围窗口删除(或者由于用于分区窗口的“ROWS 2”条件而更早)。用于分区Pb的行-时间范围窗口被检查,以确定是否有任何事件由于事件(5000,b,2)的插入而需要从行-时间范围窗口删除以满足“ROWS 2”条件。确定没有事件需要删除。在这个时候,用于分区Pa的行-时间范围窗口包括事件(4000,a,2)和(4000,a,3),并且用于分区Pb的行-时间范围窗口包括事件(4000,b,3)和(5000,b,2)。
接下来接收具有关联的6000msec时间戳的心跳事件。在一种实施例中,心跳事件是用来传送仅仅时间进度信息的具体输入事件类型。心跳事件不具有用于其它属性的任何值。事件处理系统可以配置为以周期性间隔自动发送心跳事件,该间隔可以由系统的用户配置。然后,如果没有其它实际事件在那个周期内被接收(即,事件流对那个时间段是沉默的),则心跳事件自动生成并且以周期间隔自动发送。在接收到心跳事件时,执行与窗口相关的处理。因此,在接收到心跳事件(6000,heartbeat_event>)时,用于各个分区的行-时间范围窗口被检查,以确定是否有任何事件由于时间到期而需要从行-时间范围窗口删除。确定用于分区Pa的行-时间范围窗口中的事件(4000,a,2)到期并且从该窗口被删除(用“-”表示)。在这个时候,用于分区Pa的行-时间范围窗口包括事件(4000,a,3),并且用于分区Pb的行-时间范围窗口包括事件(4000,b,3)和(5000,b,2)。
接下来接收事件(7000,c,1)。用于各个分区的行-时间范围窗口被检查,以确定是否有任何事件由于事件到期而需要从行-时间范围窗口删除。确定用于分区Pa的行-时间范围窗口中的事件(4000,a,3)和用于分区Pb的行-时间范围窗口中的事件(4000,b,3)和(5000,b,2)到期并且从窗口删除(由“-”号表示)。基于接收的事件的c2属性的值,确定事件(7000,c,1)要留在用于对应于属性值“c”的分区(“Pc”)的行-时间范围窗口中1秒。用于事件(7000,c,1)的到期时间计算为8秒标记(事件的时间戳+c2的值,即,7+1=8秒)。然后,事件(7000,c,1)添加到用于对应于属性值“c”的分区Pc的行-时间范围窗口(通过“+”表示)。事件(7000,c,1)有资格留在用于分区Pc的行-时间范围窗口中1秒并且要在8秒标记从行-时间范围窗口删除(或者由于用于分区窗口的“ROWS 2”条件而更早)。用于Pc的行-时间范围窗口被检查,以确定是否有任何事件由于事件(7000,c,1)的插入而需要从行-时间范围窗口删除以满足“ROWS 2”条件。确定没有事件需要删除。在这个时候,用于分区Pa和Pb的行-时间范围窗口为空,并且用于分区Pc的行-时间范围窗口包括事件(7000,c,1)。
应当指出,不是所有系统都需要具有心跳事件发送机制。在不发出心跳事件的系统中,在经由事件流接收规律的输入事件时,执行与口相关的处理。例如,对于表B中所绘出的事件流,对于不具有心跳事件发送能力的系统,当接收到新事件(7000,c,1)时,在6000msec标记和7000msec标记执行的处理可以在7000msec标记执行。
接下来接收心跳事件(8000,<heartbeat_event>)。用于各个分区的行-时间范围窗口被检查,以确定是否有任何事件由于事件到期而需要从行-时间范围窗口删除。确定用于分区Pc的行-时间范围窗口中的事件(7000,c,1)已经到期并且从窗口删除(由“-”号表示)。在这个时候,用于分区Pa、Pb和Pc的行-时间范围窗口为空。
如以上关于表B所描述的,在接收输入事件时执行的处理包括确定用于输入事件的到期时间,确定事件所属的分区,把输入事件添加到用于那个分区的行-时间范围窗口,并且检查用于各个分区的行-时间范围窗口,以识别并删除由于ROWS条件而需要从分区窗口除去的任何到期的一个或多个事件。事件留在用于分区的行-时间范围窗口中的持续时间可以是输入事件的属性的函数,该属性可以对不同的输入事件有所不同。因此,事件有资格保留在用于分区的行-时间范围窗口中的持续时间可以对不同的输入事件有所不同。
图5绘出了根据本发明实施例、描绘用于管理用于分区的可变持续时间窗口的方法的简化流程图500。图5中所绘出的处理可以在由一个或多个处理器执行的软件(例如,代码、指令、程序)、硬件或者其组合中实现。软件可以存储在存储器中(例如,存储器设备上、非暂态计算机可读存储介质上)。图5中绘出的处理步骤的特定序列不是要作为限制。
在某些实施例中,图5中绘出的处理可以在每次经由事件流接收输入事件(可以是实际事件或者心跳事件)时作为连续查询指令的一部分来执行。在502,输入事件(元组)可以在事件流中接收。事件可以具有关联的时间信息(例如,时间戳)。在一些情况下,与事件关联的时间可以代表事件被接收的时间。
在504,为所接收的事件计算事件有资格保留在用于分区的行-时间范围窗口中的持续时间。作为504的一部分,由CQL代码为行-时间范围窗口指定的范围参数被确定并用来确定持续时间。如前所述,在一些实施例中,连续查询可以把持续时间定义为所接收输入事件的一个或多个属性的值的函数。在这种场景下,在504中确定持续时间可以涉及确定在502中接收的事件的一个或多个属性的值并且作为那些值的函数来计算用于那个事件的持续时间。由于用于计算持续时间的一个或多个属性的值可以对不同的事件不同,因此这造成持续时间潜在地对单独的事件变化。
例如,在某些实施例中,持续时间可以设置为事件的特定属性的值。那个特定属性的值可以在504中确定并且用于输入事件的行-时间范围窗口持续时间设置为所确定的值。在一些其它实施例中,连续查询可以将用于行-时间范围窗口的持续时间定义为基于一个或多个属性值的算术表达式。在这种场景下,在504中,用于所接收事件的一个或多个属性值可以被确定并且然后利用所确定的值评估算术表达式,以计算用于所接收事件的持续时间。
在506,基于在504中所确定的持续时间为所接收的事件计算到期时间。在一种实施例中,
事件的到期时间=t+T
其中,“t”是与在502中接收的事件关联的时间(例如,事件的到达时间)并且“T”是在504中确定的持续时间。
在508,在506中计算的到期时间可以与在502接收的事件关联。例如,到期时间信息可以被存储,使得,给定事件,EPS 102可以容易地确定为事件计算的到期时间。
在510,对于每个现有分区,用于那个分区的行-时间范围窗口被检查,以识别并删除任何到期的事件。对于被识别为已经到期的任何事件,事件从那个分区行-时间范围窗口被删除或除去。在一种实施例中,如果为事件计算的到期时间等于或早于现有时间,则行-时间范围窗口中的事件被认为已经到期。如上所述,事件的到期时间计算为(t+T)。因此,如果当前时间(tP)与(t+T)相同或稍晚,则事件被认为已经到期。
在512,为在502接收的输入事件确定分区。事件所属的分区可以依赖于事件的属性的值。因此,在512,对所接收的输入事件检查用于把输入事件流分区的属性的值并且事件所属的分区基于那个值来确定。
在514,在502中接收的事件被插入或添加到在512中确定的分区的行-时间范围窗口。
如上所述,对于
S[partition by A1,...,Ak rows N range T]
子句,从分区除去事件是通过事件的到期时间或者基于行-时间范围窗口中的事件总数来控制的。例如,“…rows N…”暗示着至多“N”个事件可以在用于分区的行-时间范围窗口中并且当新事件被接收并添加到窗口时,分区中最早的事件从行-时间范围窗口被删除,以维持“rows N”条件。因此,在516中,用于在512中确定的分区的行-时间范围窗口被检查,以识别并删除符合“rows N”的任何事件。在一些实施例中,516中的处理可以在514中的处理之前执行,或者作为替代,在514和516中执行的处理可以一起执行。
在518,随后处理等待事件流中下一个事件。当接收到下一个事件时,处理从502重复。
图3中所绘出并且如上所述的各种模块还可以在根据本发明实施例的基于分区的基于可变持续时间的窗口处理中使用。在一种实施例中,持续时间和到期时间评估器模块302可以适于执行图5中的502、504、506和508中的操作。除了早先描述的各种功能,基于事件的窗口操作者模块304可以适于管理有可能多个分区行-时间范围窗口。例如,基于事件的窗口操作器模块304可以配置为根据图5中的510、512、514和516执行处理。
各种数据结构可以用来实现用于各种分区的行-时间范围窗口。在一种实施例中,可以使用一组优先级队列,每个优先级队列对应于用于特定分区的行-时间范围窗口。在表示用于分区的行-时间范围窗口的优先级队列中,优先级可以由为行-时间范围窗口中的事件计算的到期时间指示。新接收的属于分区的事件添加到用于那个分区的优先级队列。对于分区,由于“rows N”条件而从分区行-时间范围窗口除去的到期的一个或多个事件从对应的优先级队列删除。
在用于分区的队列中,队列中的事件可以基于它们关联的到期时间排序。在一种实施例中,事件被排序,使得具有较早到期时间的事件更接近队列的头部并且具有较晚到期时间的事件朝着队列的尾部。在任何时刻,用于分区的优先级队列都可以包括代表在那个时刻用于分区的窗口中零个或多个事件的零个或多个事件。
图6绘出了根据本发明实施例、描绘可以由基于时间的窗口操作器304执行的用于利用优先权队列处理用于分区的可变持续时间窗口处理的简化流程图600。图6中所绘出的处理可以在由一个或多个处理器执行的软件(例如,代码、指令、程序)、硬件或者其组合中实现。软件可以存储在存储器中(例如,存储器设备上、非暂态计算机可读存储介质上)。图6中所绘出的处理步骤的特定序列不是要作为限制。
在602,可以接收新接收的具有关联的到期时间的输入事件。用于事件的到期时间可以已经由持续时间和到期时间评估器302计算。
根据604、606、608、610、614和612的处理对每个现有分区执行。在604,对应于用于未处理分区的行-时间范围窗口的优先级队列被访问。在606,确定队列是否为空。空队列指示目前在那个分区行-时间范围窗口中没有事件。如果在606中确定队列为空,则处理以614继续,其中用于下一个未处理的分区的处理以604开始恢复。如果在606中确定队列非空,则处理以608继续。
在608,访问处于被处理的优先级队列的头部的事件。由于用于该分区的优先级队列中的队列元素总是基于与事件关联的到期时间排序,使得具有较早到期时间的事件更靠近队列的头部并且具有较晚到期时间的事件朝着队列的尾部,因此在队列的头部的事件代表具有最早到期时间的那个分区窗口中的事件。
在610,确定在608访问的事件是否到期。在一种实施例中,如果与被访问事件关联的到期时间等于或早于当前时间,则认为事件到期。例如,如果当前事件处于10秒标记,则如果与被访问事件关联的到期事件是10秒或少于10秒,则被访问的事件被认为到期。如果在610中确定被访问的事件已经到期,则在612,被访问的事件从用于该分区的优先级队列除去或删除,并且然后处理以606继续。如果在610中确定被访问的事件还没有到期,则处理以614继续。以这种方式,604、606、608、610、62和614的处理重复,直到所有到期的事件都已经从用于各个分区的行-时间范围窗口删除。然后,处理以616继续。
在616,为在602中接收的事件确定分区。用于该事件的分区可以基于输入事件的属性的值来确定。
在618,访问对应于用于在616中确定的分区的行-时间范围窗口的优先级队列。在620,事件插入或添加到在618访问的优先级队列。在一种实施例中,事件可以基于为该事件计算的到期时间而插入,使得队列元素基于为队列中的事件计算的到期时间来排序。
在某些实施例中,哈希函数可以用来访问对应于在616确定的特定分区的队列。用于把输入事件流分区的属性的值可以作为输入提供给哈希函数,然后该哈希函数返回对对应于用于那个分区的行-时间范围的引用(例如,指针)。
在622,在618访问的队列被处理,以便从队列识别和删除任何事件,以便符合“rows N”条件。在624,然后处理等待事件流中的下一个事件。在接收到下一个事件时,处理从602重复。
以上述方式,事件有资格保留在基于时间的窗口内的持续时间可以从一个事件到另一个事件变化。另外,在某些实施例中,用于事件的持续时间可以基于并且是事件本身的一个或多个属性的函数。事件有资格保留在基于时间的窗口(或者基于规律时间的窗口或者用于分区的行-时间范围窗口)内的持续时间可以从一个事件到另一个事件变化并且因此是特定于事件的。
存在事件保留在基于时间的窗口中可变持续时间的几个后果。一个后果是,对于在相同时间接收(例如,具有相同关联时间戳)的两个事件,事件在基于时间的窗口中花费的持续时间可以不同。因此,用于两个事件的到期时间也可以不同。例如,连续查询可以为事件流定义,其中基于时间的窗口的持续时间是用于流的模式的属性“attr”的值的函数。考虑两个事件,其中第一事件(e1)在时间t1接收,并且第二事件(e2)也在时间t1接收。另外,让我们假设e1中属性“attr”的值是a1并且e2中属性“attr”的值是a2,其中a2与a1不同。因此:
e1的基于时间的窗口持续时间=a1。
e1的到期时间=t1+a1。
e2的基于时间的窗口持续时间=a2。
e2的到期时间=t1+a2。
由于a1与a2不同,因此e1的到期时间(即,t1+a1)与e2的到期时间(即,t1+a2)不同。因此,尽管两个事件在相同的时间被接收(即,具有相同的关联时间信息),但是两个事件在两个不同的时间到期并且因此保留在窗口中不同的持续时间。这在基于时间的窗口的现有实现中是不可能的,其中在相同时间接收的两个事件总是在相同的时间从窗口到期。
作为基于可变持续时间的窗口的另一个结果,有可能让较早接收的事件具有比与较晚接收的事件关联的到期时间更晚的关联到期事件,或者换句话说,较晚接收的事件在较早接收的事件之前从窗口到期。例如,考虑以上的例子,让我们假设第一事件(e1)在时间t1接收,并且第二事件(e2)在时间t2接收,其中t2比t1晚。另外,让我们假设e1中属性“attr”的值是a1并且e2中属性“attr”的值是a2。从而:
e1的基于时间的窗口持续时间=a1。
e1的到期时间=t1+a1。
e2的基于时间的窗口持续时间=a2。
e2的到期时间=t2+a2。
有可能e2的到期时间(即,t2+a2)早于e1的到期时间(即,t1+a1),即,(t2+a2)早于(t1+a1)。从而,尽管事件e2较晚到达,但是它在事件e1之前到期。这在基于时间的窗口的现有实现中是不可能的,其中较早接收的事件总是在较晚接收的事件之前到期,因为用于两个事件的窗口持续时间是相同的。
基于可变持续时间的窗口使用户能够控制事件在窗口中所花费的持续时间,其中持续时间可以对不同的事件有所不同。这在各种不同应用中是有用的。例如,考虑配置为处理与产品相关信息有关的事件流的应用。有可能每个产品的上架寿命不同(例如,易腐败产品的上架寿命小于非易腐败产品的上架寿命)。对于需要基于产品的上架寿命改变基于事件的窗口的持续时间的应用,用于流的模式可以被指定,使得上架寿命作为属性添加到模式。然后,用于事件的基于时间的窗口可以基于由上架寿命属性指定的值。可以使用基于可变持续时间的窗口的应用包括但不限于:关于用于具有不同关联报警定时器的不同任务的事件的应用,具有不同完成日期的任务,等等。
如以上所讨论的,用于事件的窗口持续时间可以基于事件本身的一个或多个属性。在某些实施例中,持续时间所基于的属性可以是输入事件流模式本身的一部分。但是,在一些实施例中,这种属性可以不是所接收输入流的一部分。在一种这样的实施例中,用于确定窗口持续时间的一个或多个属性可以通过从原始流得出新流而添加到事件流,其中持续时间计算所基于的一个或多个属性是得出的事件流的模式的一部分。
图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、Blackberry或其它通信协议的),和/或运行各种商用UNIX或像UNIX的操作系统(包括但不限于各种GNU/Linux操作系统)当中任意一种的工作站计算机。作为替代,客户端计算设备702、704、706和708可以是任何其它电子设备,诸如瘦客户端计算机、启用因特网的游戏系统和/或能够经网络(例如,下述网络710)通信的个人消息传送设备。虽然示例性系统环境700示为具有四个客户端计算设备,但是任何数量的客户端计算设备都可以被支持。诸如带传感器的设备等等的其它设备可以与系统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本地的存储介质上(和/或驻留在其中)。作为替代,数据库714和716可远离系统712,并且经由基于网络的或专用连接与系统712通信。在一组实施例中,数据库714和716可以驻留在本领域技术人员所熟知的存储区域网络(SAN)中。类似地,用于执行归因于系统712的功能的任何必要的文件都可以本地存储在系统712和/或远程存储。在一组实施例中,数据库714和716可以包括关系数据库,例如Oracle 11g,数据库适于响应于SQL格式化命令而存储、更新和检索数据。
图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的备选实施例可以具有更多或更少从以上所述的部件具有各种变化的部件。例如,定制的硬件也可被使用和/或特定的元件可以以硬件、软件(包括便携式软件,诸如小程序)来实现,或两者兼而有之。另外,也可以使用到诸如网络输入/输出设备的其它计算设备的连接。
图9是可以根据本发明某些实施例使用的计算设备900的简化框图。计算设备900的各个块可以通过硬件,软件,或硬件和软件的组合来实现,以执行本发明的原理。本领域技术人员应当理解,图9中所描述的块可以被组合或分离成子块,以实现如上所述本发明的原理。因此,本文的描述可以支持本文所述功能块任何可能的组合或分离或进一步定义。
如图9所示,计算设备900被示为包含第一确定单元902和第二确定单元903。可选地,计算设备900还可以包括接收单元901、第一去除单元904和第二去除单元905。
在实施例中,接收单元901可以被配置为经由事件流接收第一事件和第二事件。第一确定单元902可以被配置为确定经由事件流接收的第一事件的第一持续时间,其中该第一持续时间指示第一事件有资格留在为事件流指定的基于时间的窗口中的持续时间。第二确定单元903可以被配置为确定经由事件流接收的第二事件的第二持续时间,其中该第二持续时间指示第二事件有资格留在该基于时间的窗口中的持续时间。第二持续时间可以与第一持续时间不同。
在实施例中,第一去除单元904可以被配置为在第一时间事件已经在所述基于时间的窗口中第一持续时间之后从所述基于时间的窗口除去第一事件。第二去除单元905可以被配置为在第二时间事件已经在所述基于时间的窗口中第二持续时间之后从所述基于时间的窗除去第二事件。
在实施例中,第一事件具有相关联的第一时间并且第二事件具有相关联的第二时间,其中第一时间与第二时间相同。
在实施例中,第一事件具有相关联的第一时间并且第二事件具有相关联的第二时间,其中第一时间与第二时间不同。
在实施例中,第一确定单元902可以被配置为在确定第一持续时间时基于第一事件的一个或多个属性的一个或多个值计算第一持续时间。第二确定单元903可以被配置为在确定第二持续时间时基于第二事件的一个或多个属性的一个或多个值计算第二持续时间。
在实施例中,第一确定单元902可以被配置为基于第一事件的第一属性的值确定用于第一事件的第一分区。第二确定单元903可以被配置为基于第二事件的第一属性的值确定第二事件属于第一分区。基于时间的窗口是用于第一分区的。
在实施例中,第一确定单元902可以被配置为基于与第一事件相关联的第一时间和第一持续时间确定第一事件的第一到期时间。第二确定单元903可以被配置为基于与第二事件相关联的第二时间和第二持续时间确定第二事件的第二到期时间。第一去除单元904可以配置为在第一到期时间发生时或之后从基于时间的窗口除去第一事件。第二去除单元905可以配置为在第二到期时间发生时或之后从基于时间的窗口除去第二事件。
虽然本发明的具体实施例已经进行了描述,但是各种修改、变更、备选构造和等同物也包括在本发明的范围之内。本发明的实施例并不限于在某些特定数据处理环境中的操作,而是可以自由地在多个数据处理环境中运行。此外,虽然本发明的实施例已经利用特定的一系列事务和步骤进行了描述,但是本领域技术人员应当清楚,本发明的范围不限于所描述的一系列事务和步骤。
另外,虽然本发明的实施例已经利用硬件和软件的特定组合进行了描述,但是应当认识到,硬件和软件的其它组合也在本发明的范围之内。本发明的实施例可以只在硬件中或者只在软件中或者利用其组合来实现。本文所描述的各种过程可以以任意组合在同一处理器或不同的处理器上实现。因此,在部件或模块被描述为配置为执行某些操作时,这种配置可以通过例如设计执行所述操作的电路、通过编程可编程电路(诸如微处理器)来执行所述操作或者其任意组合来实现。过程可以利用各种技术进行通信,包括但不限于进行过程间通信的常规技术,以及不同的过程对可以使用不同的技术,或者相同的过程对可以在不同的时间使用不同的技术。
因此,说明书和附图应当被认为是说明性而不是限制性的。但是,很显然,在不背离如权利要求所述更广泛精神和范围的情况下,可以对其进行添加、删减、删除以及其它修改和变化。因此,虽然具体的发明实施例已经进行了描述,但是这些并不意在限制。各种修改和等价物都在以下权利要求的范围内。
Claims (30)
1.一种用于数据处理的方法,包括:
由计算设备,确定经由事件流接收的第一事件的第一持续时间,该第一持续时间指示第一事件有资格保留在为该事件流指定的基于时间的窗口中的第一时间量,所述基于时间的窗口识别所述事件流中有资格通过为该事件流指定的查询而被查询的事件的集合;
由计算设备,确定经由事件流接收的第二事件的第二持续时间,该第二持续时间指示第二事件有资格保留在所述基于时间的窗口中的第二时间量,其中第二时间量与第一时间量不同;以及
由计算设备针对当所述查询被执行时存在于所述基于时间的窗口中的、经由该事件流接收的所述事件的集合来反复执行所述查询。
2.如权利要求1所述的方法,还包括:
由计算设备,在第一事件已经在基于时间的窗口中保留了第一时间量之后从基于时间的窗口除去第一事件;及
由计算设备,在第二事件已经在基于时间的窗口中保留了第二时间量之后从基于时间的窗口除去第二事件。
3.如权利要求1或2所述的方法,其中:
第一事件具有关联的第一时间;
第二事件具有关联的第二时间;及
第一时间与第二时间相同。
4.如权利要求1或2所述的方法,其中:
第一事件具有关联的第一时间;
第二事件具有关联的第二时间;及
第一时间与第二时间不同。
5.如权利要求1或2所述的方法,其中:
基于第一事件的一个或多个属性的一个或多个值确定第一持续时间;及
基于第二事件的一个或多个属性的一个或多个值确定第二持续时间。
6.如权利要求1或2所述的方法,还包括:
基于第一事件的第一属性的值,确定用于第一事件的第一分区;及
基于第二事件的第一属性的值,确定第二事件属于该第一分区;
其中基于时间的窗口是用于该第一分区的。
7.如权利要求1或2所述的方法,还包括:
由计算设备,基于与第一事件关联的第一时间和第一持续时间,确定用于第一事件的第一到期时间;
由计算设备,基于与第二事件关联的第二时间和第二持续时间,确定用于第二事件的第二到期时间;
在第一到期时间发生时或之后,从基于时间的窗口除去第一事件;及
在第二到期时间发生时或之后,从基于时间的窗口除去第二事件。
8.如权利要求1或2所述的方法,其中,确定第一持续时间的步骤基于为该事件流指定的查询,并且其中确定第二持续时间的步骤基于为该事件流指定的查询。
9.如权利要求8所述的方法,其中,所述查询指定表达式,所述表达式指示针对经由该事件流接收的每个事件要如何计算持续时间,并且其中,确定第一持续时间的步骤包括使用第一事件的一个或多个属性值来评估所述表达式,并且其中,确定第二持续时间包括使用第二事件的一个或多个属性值来评估所述表达式。
10.如权利要求9所述的方法,其中,所述表达式是使用经由该事件流接收的每个事件的一个或多个属性的一个或多个值来评估的。
11.一种计算设备,包括:
存储器;及
一组处理单元,其中这组处理单元中的一个或多个处理单元适于:
确定经由事件流接收的第一事件的第一持续时间,该第一持续时间指示第一事件有资格保留在为该事件流指定的基于时间的窗口中的第一时间量,所述基于时间的窗口识别所述事件流中有资格通过为该事件流指定的查询而被查询的事件的集合;
确定经由事件流接收的第二事件的第二持续时间,该第二持续时间指示第二事件有资格保留在所述基于时间的窗口中的第二时间量,其中第二时间量与第一时间量不同;以及
针对当所述查询被执行时存在于所述基于时间的窗口中的、经由该事件流接收的所述事件的集合来反复执行所述查询。
12.如权利要求11所述的计算设备,其中这组处理单元中的一个或多个处理单元适于:
在第一事件已经在基于时间的窗口中保留了第一时间量之后从基于时间的窗口除去第一事件;及
在第二事件已经在基于时间的窗口中保留了第二时间量之后从基于时间的窗口除去第二事件。
13.如权利要求11或12所述的计算设备,其中:
第一事件具有关联的第一时间;
第二事件具有关联的第二时间;及
第一时间与第二时间相同。
14.如权利要求11或12所述的计算设备,其中:
第一事件具有关联的第一时间;
第二事件具有关联的第二时间;及
第一时间与第二时间不同。
15.如权利要求11或12所述的计算设备,其中这组处理单元中的一个或多个处理单元适于:
基于第一事件的一个或多个属性的一个或多个值计算第一持续时间;及
基于第二事件的一个或多个属性的一个或多个值计算第二持续时间。
16.如权利要求11或12所述的计算设备,其中这组处理单元中的一个或多个处理单元适于:
基于第一事件的第一属性的值,确定用于第一事件的第一分区;及
基于第二事件的第一属性的值,确定第二事件属于该第一分区;
其中基于时间的窗口是用于该第一分区的。
17.如权利要求11或12所述的计算设备,其中这组处理单元中的一个或多个处理单元适于:
基于与第一事件关联的第一时间和第一持续时间,确定用于第一事件的第一到期时间;
基于与第二事件关联的第二时间和第二持续时间,确定用于第二事件的第二到期时间;
在第一到期时间发生时或之后,从基于时间的窗口除去第一事件;及
在第二到期时间发生时或之后,从基于时间的窗口除去第二事件。
18.如权利要求11或12所述的计算设备,其中,这组处理单元中的一个或多个处理单元适于:
基于为该事件流指定的查询确定第一持续时间,以及
基于为该事件流指定的查询确定第二持续时间。
19.如权利要求18所述的计算设备,其中,所述查询指定表达式,所述表达式指示针对经由该事件流接收的每个事件要如何计算持续时间,并且其中,确定第一持续时间包括使用第一事件的一个或多个属性值来评估所述表达式,并且其中,确定第二持续时间包括使用第二事件的一个或多个属性值来评估所述表达式。
20.如权利要求19所述的计算设备,其中,所述表达式是使用经由该事件流接收的每个事件的一个或多个属性的一个或多个值来评估的。
21.一种用于数据处理的系统,包括:
用于由计算设备确定经由事件流接收的第一事件的第一持续时间的单元,该第一持续时间指示第一事件有资格保留在为该事件流指定的基于时间的窗口中的第一时间量,所述基于时间的窗口识别所述事件流中有资格通过为该事件流指定的查询而被查询的事件的集合;及
用于由计算设备确定经由事件流接收的第二事件的第二持续时间的单元,该第二持续时间指示第二事件有资格保留在所述基于时间的窗口中的第二时间量,其中第二时间量与第一时间量不同;以及
用于由计算设备针对当所述查询被执行时存在于所述基于时间的窗口中的、经由该事件流接收的所述事件的集合来反复执行所述查询的单元。
22.如权利要求21所述的系统,还包括:
用于由计算设备在第一事件已经在基于时间的窗口中保留了第一时间量之后从基于时间的窗口除去第一事件的单元;及
用于由计算设备在第二事件已经在基于时间的窗口中保留了第二时间量之后从基于时间的窗口除去第二事件的单元。
23.如权利要求21或22所述的系统,其中:
第一事件具有关联的第一时间;
第二事件具有关联的第二时间;及
第一时间与第二时间相同。
24.如权利要求21或22所述的系统,其中:
第一事件具有关联的第一时间;
第二事件具有关联的第二时间;及
第一时间与第二时间不同。
25.如权利要求21或22所述的系统,其中:
用于确定第一持续时间的单元包括用于基于第一事件的一个或多个属性的一个或多个值计算第一持续时间的单元;及
用于确定第二持续时间的单元包括用于基于第二事件的一个或多个属性的一个或多个值计算第二持续时间的单元。
26.如权利要求21或22所述的系统,还包括:
用于基于第一事件的第一属性的值确定用于第一事件的第一分区的单元;及
用于基于第二事件的第一属性的值确定第二事件属于该第一分区的单元;
其中基于时间的窗口是用于该第一分区的。
27.如权利要求21所述的系统,还包括:
用于由计算设备基于与第一事件关联的第一时间和第一持续时间确定用于第一事件的第一到期时间的单元;
用于由计算设备基于与第二事件关联的第二时间和第二持续时间确定用于第二事件的第二到期时间的单元;
用于在第一到期时间发生时或之后从基于时间的窗口除去第一事件的单元;及
用于在第二到期时间发生时或之后从基于时间的窗口除去第二事件的单元。
28.如权利要求21或22所述的系统,其中,基于为该事件流指定的查询来确定第一持续时间,并且基于为该事件流指定的查询来确定第二持续时间。
29.如权利要求28所述的系统,其中,所述查询指定表达式,所述表达式指示针对经由该事件流接收的每个事件要如何计算持续时间,并且其中,用于确定第一持续时间的单元包括用于使用第一事件的一个或多个属性值来评估所述表达式的单元,并且其中,用于确定第二持续时间的单元包括用于使用第二事件的一个或多个属性值来评估所述表达式的单元。
30.如权利要求29所述的系统,其中,所述表达式是使用经由该事件流接收的每个事件的一个或多个属性的一个或多个值来评估的。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361752850P | 2013-01-15 | 2013-01-15 | |
US61/752,850 | 2013-01-15 | ||
US13/838,259 | 2013-03-15 | ||
US13/838,259 US10298444B2 (en) | 2013-01-15 | 2013-03-15 | Variable duration windows on continuous data streams |
PCT/US2014/010920 WO2014113273A2 (en) | 2013-01-15 | 2014-01-09 | Variable duration windows on continuous data streams |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105379183A CN105379183A (zh) | 2016-03-02 |
CN105379183B true CN105379183B (zh) | 2019-08-30 |
Family
ID=51166112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480004731.1A Active CN105379183B (zh) | 2013-01-15 | 2014-01-09 | 连续数据流上的可变持续时间窗口 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10298444B2 (zh) |
EP (1) | EP2946527B1 (zh) |
JP (2) | JP6509127B2 (zh) |
CN (1) | CN105379183B (zh) |
WO (1) | WO2014113273A2 (zh) |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9305057B2 (en) | 2009-12-28 | 2016-04-05 | Oracle International Corporation | Extensible indexing framework using data cartridges |
US9430494B2 (en) | 2009-12-28 | 2016-08-30 | Oracle International Corporation | Spatial data cartridge for event processing systems |
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) |
US9805095B2 (en) | 2012-09-28 | 2017-10-31 | Oracle International Corporation | State initialization for continuous queries over archived views |
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 |
US9098587B2 (en) | 2013-01-15 | 2015-08-04 | Oracle International Corporation | Variable duration non-event pattern matching |
US10298444B2 (en) | 2013-01-15 | 2019-05-21 | Oracle International Corporation | Variable duration windows on continuous data streams |
US9390135B2 (en) | 2013-02-19 | 2016-07-12 | Oracle International Corporation | Executing continuous event processing (CEP) queries in parallel |
US9047249B2 (en) | 2013-02-19 | 2015-06-02 | Oracle International Corporation | Handling faults in a continuous event processing (CEP) system |
US9418113B2 (en) | 2013-05-30 | 2016-08-16 | Oracle International Corporation | Value based windows on relations in continuous data streams |
US9584379B2 (en) * | 2013-06-20 | 2017-02-28 | Microsoft Technology Licensing, Llc | Sorted event monitoring by context partition |
JP6114473B2 (ja) * | 2013-06-21 | 2017-04-12 | 株式会社日立製作所 | 時間調整を使用したストリームデータ処理方法 |
US9934279B2 (en) | 2013-12-05 | 2018-04-03 | Oracle International Corporation | Pattern matching across multiple input data streams |
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 |
US10965573B1 (en) | 2014-09-09 | 2021-03-30 | Wells Fargo Bank, N.A. | Systems and methods for online user path analysis |
US9870410B2 (en) * | 2014-09-15 | 2018-01-16 | Microsoft Technology Licensing, Llc | Constructed data stream for enhanced event processing |
US10120907B2 (en) | 2014-09-24 | 2018-11-06 | Oracle International Corporation | Scaling event processing using distributed flows and map-reduce operations |
US9886486B2 (en) | 2014-09-24 | 2018-02-06 | Oracle International Corporation | Enriching events with dynamically typed big data for event processing |
US9804951B2 (en) | 2014-10-08 | 2017-10-31 | Signalfx, Inc. | Quantization of data streams of instrumented software |
CA3158525A1 (en) * | 2014-10-08 | 2016-04-14 | Splunk Inc. | Real-time reporting based on instrumentation of software |
US10037187B2 (en) * | 2014-11-03 | 2018-07-31 | Google Llc | Data flow windowing and triggering |
US9846574B2 (en) * | 2014-12-19 | 2017-12-19 | Signalfx, Inc. | Representing result data streams based on execution of data stream language programs |
US10394692B2 (en) | 2015-01-29 | 2019-08-27 | Signalfx, Inc. | Real-time processing of data streams received from instrumented software |
US10152480B2 (en) * | 2015-01-31 | 2018-12-11 | Splunk Inc. | Archiving indexed data |
WO2017018901A1 (en) | 2015-07-24 | 2017-02-02 | Oracle International Corporation | Visually exploring and analyzing event streams |
US10198495B1 (en) * | 2015-09-25 | 2019-02-05 | Wells Fargo Bank, N.A. | Configurable database management |
CN105245305A (zh) * | 2015-10-26 | 2016-01-13 | 上海交通大学 | 智能传感器网络中的轻量级安全同步方法 |
US10628826B2 (en) * | 2015-11-24 | 2020-04-21 | Vesta Corporation | Training and selection of multiple fraud detection models |
US11977549B2 (en) | 2016-09-15 | 2024-05-07 | Oracle International Corporation | Clustering event processing engines |
US10789250B2 (en) | 2016-09-15 | 2020-09-29 | Oracle International Corporation | Non-intrusive monitoring output of stages in micro-batch streaming |
US10514952B2 (en) * | 2016-09-15 | 2019-12-24 | Oracle International Corporation | Processing timestamps and heartbeat events for automatic time progression |
CN106528717B (zh) * | 2016-10-26 | 2019-08-06 | 中国电子产品可靠性与环境试验研究所 | 数据处理方法和系统 |
US10922319B2 (en) | 2017-04-19 | 2021-02-16 | Ebay Inc. | Consistency mitigation techniques for real-time streams |
EP3619689A1 (de) * | 2017-06-02 | 2020-03-11 | Audi AG | Verfahren und vorrichtung zum situationsabhängigen speichern von daten eines systems |
US10984099B2 (en) | 2017-08-29 | 2021-04-20 | Micro Focus Llc | Unauthorized authentication events |
US10599857B2 (en) * | 2017-08-29 | 2020-03-24 | Micro Focus Llc | Extracting features for authentication events |
US10902000B2 (en) | 2017-09-29 | 2021-01-26 | Oracle International Corporation | Heartbeat propagation in a distributed stream processing system |
JP7064164B2 (ja) * | 2017-12-27 | 2022-05-10 | 富士フイルムビジネスイノベーション株式会社 | 情報管理装置、情報処理システムおよびプログラム |
US10691485B2 (en) | 2018-02-13 | 2020-06-23 | Ebay Inc. | Availability oriented durability technique for distributed server systems |
US11232106B1 (en) * | 2018-03-23 | 2022-01-25 | Amazon Technologies, Inc. | Windowed query with event-based open time for analytics of streaming data |
US11122064B2 (en) | 2018-04-23 | 2021-09-14 | Micro Focus Llc | Unauthorized authentication event detection |
US11797501B2 (en) * | 2020-12-21 | 2023-10-24 | Vmware, Inc. | Methods and systems for aggregating and querying log messages |
US11416312B1 (en) | 2021-02-12 | 2022-08-16 | Microsoft Technology Licensing, Llc | Near-real-time data processing with partition files |
JP2023534347A (ja) * | 2021-06-23 | 2023-08-09 | ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド | データ処理方法および装置、計算機器ならびに媒体 |
US11520576B1 (en) * | 2022-01-07 | 2022-12-06 | Plusai, Inc. | Methods and apparatus for automatically labeling data processing events in autonomous driving vehicles via machine learning |
CN116436772B (zh) * | 2023-06-08 | 2023-08-11 | 上海观安信息技术股份有限公司 | 实时告警方法和装置、电子设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102687134A (zh) * | 2009-12-29 | 2012-09-19 | 摩托罗拉解决方案公司 | 用于基于事件序列的呈现通知的方法 |
Family Cites Families (475)
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 |
US5339392A (en) | 1989-07-27 | 1994-08-16 | Risberg Jeffrey S | Apparatus and method for creation of a user definable video displayed document showing changes in real time data |
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 |
DE69432746T2 (de) | 1994-06-10 | 2004-03-25 | Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto | Ereignisverarbeitungssystem und Verfahren zur Herstellen eines solchen Systems |
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 |
US8019060B2 (en) | 1995-05-19 | 2011-09-13 | Martino Rocco L | Telephone/transaction entry device and system for entering transaction data into databases |
US5829006A (en) | 1995-06-06 | 1998-10-27 | 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 |
US7035914B1 (en) | 1996-01-26 | 2006-04-25 | Simpleair Holdings, Inc. | System and method for transmission of data |
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 |
US6128415A (en) | 1996-09-06 | 2000-10-03 | Polaroid Corporation | Device profiles for use in a digital image processing 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 |
US6212673B1 (en) | 1997-03-31 | 2001-04-03 | International Business Machines Corporation | Component-neutral builder interface |
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 |
US5822750A (en) | 1997-06-30 | 1998-10-13 | International Business Machines Corporation | Optimization of correlated SQL queries in a relational database management system |
US6112198A (en) | 1997-06-30 | 2000-08-29 | International Business Machines Corporation | Optimization of data repartitioning during parallel query optimization |
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 | デバッグ装置、方法及び記録媒体 |
AU7123300A (en) | 1999-09-10 | 2001-04-10 | William C. Rodgers | 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 |
US6507834B1 (en) | 1999-12-22 | 2003-01-14 | Ncr Corporation | Method and apparatus for parallel execution of SQL from stored procedures |
US6594651B2 (en) | 1999-12-22 | 2003-07-15 | Ncr Corporation | Method and apparatus for parallel execution of SQL-from within user defined functions |
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 |
AU2001236998A1 (en) | 2000-02-11 | 2001-08-20 | Acta Technologies, Inc. | 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 |
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 |
WO2001065418A1 (en) | 2000-02-28 | 2001-09-07 | Fibercycle Networks, Inc. | System and method for high speed string matching |
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 |
US6633867B1 (en) | 2000-04-05 | 2003-10-14 | International Business Machines Corporation | System and method for providing a session query within the context of a dynamic search result set |
US20020038217A1 (en) | 2000-04-07 | 2002-03-28 | Alan Young | System and method for integrated data analysis and management |
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 |
US7606782B2 (en) | 2000-05-24 | 2009-10-20 | Oracle International Corporation | System for automation of business knowledge in natural language using rete algorithm |
US7076647B2 (en) | 2000-06-09 | 2006-07-11 | Hewlett-Packard Development Company, L.P. | Dynamic kernel tunables |
CA2311884A1 (en) | 2000-06-16 | 2001-12-16 | Cognos Incorporated | Method of managing slowly changing dimensions |
US6578032B1 (en) | 2000-06-28 | 2003-06-10 | Microsoft Corporation | Method and system for performing phrase/word clustering and cluster merging |
US7958025B2 (en) * | 2000-08-04 | 2011-06-07 | Goldman Sachs & Co. | Method and system for processing raw financial data streams to produce and distribute structured and validated product offering objects |
US7139844B2 (en) | 2000-08-04 | 2006-11-21 | Goldman Sachs & Co. | Method and system for processing financial data objects carried on broadcast data streams and delivering information to subscribing clients |
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 |
US20020156792A1 (en) | 2000-12-06 | 2002-10-24 | Biosentients, Inc. | Intelligent object handling device and method for intelligent object data in heterogeneous data environments with high data density and dynamic application needs |
US6925631B2 (en) | 2000-12-08 | 2005-08-02 | Hewlett-Packard Development Company, L.P. | Method, computer system and computer program product for processing extensible markup language streams |
US7062749B2 (en) | 2000-12-15 | 2006-06-13 | Promenix, Inc. | Measuring, monitoring and tracking enterprise communications and processes |
US7904486B2 (en) | 2000-12-15 | 2011-03-08 | British Telecommunications Public Limited Company | Method of indexing entities |
US6954791B2 (en) * | 2001-01-23 | 2005-10-11 | Intel Corporation | Time-based network connections |
US7139977B1 (en) | 2001-01-24 | 2006-11-21 | Oracle International Corporation | System and method for producing a virtual online book |
US8307197B2 (en) | 2001-02-14 | 2012-11-06 | University Of North Carolina At Charlotte | Short-circuit evaluation of Boolean expression by rolling up sub-expression result in registers storing default value |
US7577916B2 (en) | 2001-02-21 | 2009-08-18 | Fuji Xerox Co., Ltd. | Method and apparatus for management and representation of dynamic context |
US7185232B1 (en) | 2001-02-28 | 2007-02-27 | Cenzic, Inc. | Fault injection methods and apparatus |
WO2002071260A1 (en) | 2001-03-01 | 2002-09-12 | Aalborg Universitet | Adaptable query optimization and evaluation in temporal middleware |
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 |
GB2377038A (en) | 2001-04-10 | 2002-12-31 | I2 Ltd | Method for identifying patterns in sequential event streams |
US6904019B2 (en) | 2001-04-13 | 2005-06-07 | Agilent Technologies, Inc. | Identifying a pattern in a data stream |
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 |
US7540011B2 (en) | 2001-06-11 | 2009-05-26 | Arrowsight, Inc. | Caching graphical interface for displaying video and ancillary data from a saved video |
US7757225B2 (en) | 2001-06-29 | 2010-07-13 | Microsoft Corporation | Linktime recognition of alternative implementations of programmed functionality |
US8332502B1 (en) | 2001-08-15 | 2012-12-11 | Metavante Corporation | Business to business network management event detection and response system and method |
EP1436936A4 (en) | 2001-09-12 | 2006-08-02 | Safenet Inc | RECOGNITION OF FORMS OF HIGH-SPEED DATA FLOW |
US7203927B2 (en) | 2001-09-20 | 2007-04-10 | International Business Machines Corporation | SQL debugging using XML dataflows |
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 |
AU2002334721B2 (en) | 2001-09-28 | 2008-10-23 | Oracle International Corporation | An index structure to access hierarchical data in a relational database system |
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 |
WO2003060771A1 (en) | 2002-01-14 | 2003-07-24 | 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 |
CA2374271A1 (en) | 2002-03-01 | 2003-09-01 | Ibm Canada Limited-Ibm Canada Limitee | Redundant join elimination and sub-query elimination using subsumption |
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 |
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 |
AU2003231176A1 (en) | 2002-04-29 | 2003-11-17 | Laboratory For Computational Analytics And Semiotics, Llc | Sequence miner |
EP1361526A1 (en) | 2002-05-08 | 2003-11-12 | Accenture Global Services GmbH | Electronic data processing system and method of using an electronic processing system for automatically determining a risk indicator value |
US7457810B2 (en) | 2002-05-10 | 2008-11-25 | International Business Machines Corporation | Querying markup language data sources using a relational query processor |
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 |
WO2003104990A1 (en) | 2002-06-05 | 2003-12-18 | Sap Aktiengesellschaft | Apparatus and method for integrating variable subsidiary information with main office information in an enterprise system |
WO2004014065A2 (en) | 2002-08-05 | 2004-02-12 | John Campbell | System of finite state machines |
US7840550B2 (en) | 2002-08-13 | 2010-11-23 | International Business Machines Corporation | System and method for monitoring database queries |
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 |
JP2004280283A (ja) | 2003-03-13 | 2004-10-07 | Hitachi Ltd | 分散ファイルシステム、分散ファイルシステムサーバ及び分散ファイルシステムへのアクセス方法 |
US7392239B2 (en) | 2003-04-14 | 2008-06-24 | International Business Machines Corporation | System and method for querying XML streams |
US7644019B2 (en) | 2003-04-21 | 2010-01-05 | Buysafe, Inc. | Safe transaction guaranty |
US6986019B1 (en) | 2003-04-21 | 2006-01-10 | Maxtor Corporation | Method and apparatus for detection and management of data 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 |
US6836778B2 (en) | 2003-05-01 | 2004-12-28 | Oracle International Corporation | Techniques for changing XML content in a relational database |
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 |
US7222123B2 (en) | 2003-05-28 | 2007-05-22 | Oracle International Corporation | Technique for using a current lookup for performing multiple merge operations using source data that is modified in between the merge operations |
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 |
US7430549B2 (en) | 2003-07-07 | 2008-09-30 | Netezza Corporaton | Optimized SQL code generation |
US20060242180A1 (en) | 2003-07-23 | 2006-10-26 | Graf James A | Extracting data from semi-structured text documents |
JP2007500401A (ja) | 2003-07-25 | 2007-01-11 | ジンガー,アーサー,アール. | ソフトウェアデバッギング用装置とその方法 |
US7873645B2 (en) | 2003-09-05 | 2011-01-18 | Oracle International Corporation | Method and mechanism for handling arbitrarily-sized XML in SQL operator tree |
US20050071217A1 (en) | 2003-09-30 | 2005-03-31 | General Electric Company | Method, system and computer product for analyzing business risk using event information extracted from natural language sources |
US20050108368A1 (en) | 2003-10-30 | 2005-05-19 | Aditya Mohan | Method and apparatus for representing data available in a peer-to-peer network using bloom-filters |
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 |
US7702676B2 (en) | 2006-12-29 | 2010-04-20 | Teradata Us, Inc. | Parallel virtual optimization |
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 |
US7440461B2 (en) | 2003-12-23 | 2008-10-21 | Intel Corporation | Methods and apparatus for detecting patterns in a data stream |
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 |
US7526804B2 (en) | 2004-02-02 | 2009-04-28 | Microsoft Corporation | Hardware assist for pattern matches |
US7376656B2 (en) | 2004-02-10 | 2008-05-20 | Microsoft Corporation | System and method for providing user defined aggregates in a database system |
US7194451B2 (en) | 2004-02-26 | 2007-03-20 | Microsoft Corporation | Database monitoring system |
US20050204340A1 (en) | 2004-03-10 | 2005-09-15 | Ruminer Michael D. | Attribute-based automated business rule identifier and methods of implementing same |
US7218325B1 (en) | 2004-03-31 | 2007-05-15 | Trading Technologies International, Inc. | Graphical display with integrated recent period zoom and historical period context data |
US7398265B2 (en) | 2004-04-09 | 2008-07-08 | Oracle International Corporation | Efficient query processing of XML data using XML index |
US20050273352A1 (en) | 2004-05-07 | 2005-12-08 | Lombardi Software, Inc. | Business method for continuous process improvement |
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 |
US7263464B1 (en) * | 2004-08-27 | 2007-08-28 | Tonic Software, Inc. | System and method for monitoring events in a computing environment |
GB0420097D0 (en) | 2004-09-10 | 2004-10-13 | Cotares Ltd | Apparatus for and method of providing data to an external application |
US20060064438A1 (en) | 2004-09-17 | 2006-03-23 | International Business Machines Corporation | Methods and apparartus for monitoring abnormalities in data stream |
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 |
US20060166704A1 (en) | 2005-01-26 | 2006-07-27 | Benco David S | Method for alerting a subscriber of an emergency call request |
WO2006081474A2 (en) | 2005-01-27 | 2006-08-03 | Intel Corp. | Multi-path simultaneous xpath evaluation over data streams |
US8396886B1 (en) | 2005-02-03 | 2013-03-12 | Sybase Inc. | Continuous processing language for real-time data streams |
US8510732B2 (en) | 2005-02-22 | 2013-08-13 | Connectif Solutions Inc. | Distributed asset management system and method |
KR100690787B1 (ko) * | 2005-02-25 | 2007-03-09 | 엘지전자 주식회사 | 무선통신 시스템에서 이벤트 통지방법 |
EP1859378A2 (en) | 2005-03-03 | 2007-11-28 | 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 |
US8145686B2 (en) | 2005-05-06 | 2012-03-27 | Microsoft Corporation | Maintenance of link level consistency between database and file system |
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 |
US7818313B1 (en) * | 2005-07-18 | 2010-10-19 | Sybase, Inc. | Method for distributing processing of queries over a cluster of servers in a continuous processing system |
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 |
WO2007022560A1 (en) | 2005-08-23 | 2007-03-01 | Position Networks Pty Ltd | A 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 |
US7730023B2 (en) | 2005-12-22 | 2010-06-01 | Business Objects Sotware Ltd. | Apparatus and method for strategy map validation and visualization |
US20070168154A1 (en) | 2005-12-23 | 2007-07-19 | Ericson Richard E | User interface for statistical data analysis |
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 |
US7689582B2 (en) | 2006-03-10 | 2010-03-30 | International Business Machines Corporation | Data flow system and method for heterogeneous data integration environments |
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 |
WO2007113533A1 (en) | 2006-03-31 | 2007-10-11 | British Telecommunications Public Limited Company | Xml-based transfer and a local storage of java objects |
US7644066B2 (en) | 2006-03-31 | 2010-01-05 | Oracle International Corporation | Techniques of efficient XML meta-data query using XML table index |
GB0606776D0 (en) | 2006-04-03 | 2006-05-10 | Novartis Pharma Ag | Predictive biomarkers for chronic allograft nephropathy |
US7974984B2 (en) | 2006-04-19 | 2011-07-05 | Mobile Content Networks, Inc. | Method and system for managing single and multiple taxonomies |
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 |
JP4804233B2 (ja) | 2006-06-09 | 2011-11-02 | 株式会社日立製作所 | ストリームデータ処理方法 |
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 |
US8671091B2 (en) | 2006-08-02 | 2014-03-11 | Hewlett-Packard Development Company, L.P. | Optimizing snowflake schema queries |
US20080034427A1 (en) | 2006-08-02 | 2008-02-07 | Nec Laboratories America, Inc. | Fast and scalable process for regular expression search |
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 | 한국전자통신연구원 | 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장데이터에 대한 통합 연속 질의 처리 시스템 및 그 방법 |
CN101136906B (zh) | 2006-08-31 | 2010-07-21 | 华为技术有限公司 | 移动IPv6中的通讯方法和移动IPv6通讯系统 |
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 |
US20080098359A1 (en) | 2006-09-29 | 2008-04-24 | Ventsislav Ivanov | Manipulation of trace sessions based on address parameters |
US20080082514A1 (en) | 2006-09-29 | 2008-04-03 | International Business Machines Corporation | Method and apparatus for integrating relational and hierarchical data |
US8645176B2 (en) | 2006-10-05 | 2014-02-04 | Trimble Navigation Limited | Utilizing historical data in an asset management environment |
US7921416B2 (en) | 2006-10-20 | 2011-04-05 | Yahoo! Inc. | Formal language and translator for parallel processing of data |
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 | 株式会社日立製作所 | インデックス処理方法及び計算機システム |
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 |
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 |
US7831607B2 (en) | 2006-12-08 | 2010-11-09 | Pandya Ashish A | Interval symbol architecture 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 |
US8370812B2 (en) | 2007-04-02 | 2013-02-05 | International Business Machines Corporation | Method and system for automatically assembling processing graphs in information processing systems |
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 | 会議可視化システム、会議可視化方法、及び集計処理サーバ |
US7899904B2 (en) | 2007-04-30 | 2011-03-01 | Lsi Corporation | Hardware processing of regular expressions |
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 |
US8122006B2 (en) | 2007-05-29 | 2012-02-21 | Oracle International Corporation | Event processing query language including retain clause |
US7975109B2 (en) | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
US7792784B2 (en) | 2007-05-31 | 2010-09-07 | International Business Machines Corporation | Streaming multidimensional data by bypassing multidimensional query processor |
US7984040B2 (en) * | 2007-06-05 | 2011-07-19 | Oracle International Corporation | Methods and systems for querying event streams using multiple event processors |
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 |
US7984043B1 (en) | 2007-07-24 | 2011-07-19 | Amazon Technologies, Inc. | System and method for distributed query processing using configuration-independent query plans |
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 |
US8335767B2 (en) | 2007-10-17 | 2012-12-18 | Oracle International Corporation | Maintaining and utilizing SQL execution plan histories |
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 |
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 |
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 |
US8307343B2 (en) | 2007-10-19 | 2012-11-06 | Microsoft Corporation | Application and database context correlation for database application developers |
US7673065B2 (en) | 2007-10-20 | 2010-03-02 | Oracle International Corporation | Support for sharing computation between aggregations 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 |
US8521867B2 (en) | 2007-10-20 | 2013-08-27 | Oracle International Corporation | Support for incrementally processing user defined aggregations in a data stream management system |
US20090112809A1 (en) | 2007-10-24 | 2009-04-30 | Caterpillar Inc. | Systems and methods for monitoring health of computing systems |
US7827127B2 (en) | 2007-10-26 | 2010-11-02 | Microsoft Corporation | Data scoping and data flow in a continuation based runtime |
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 |
JP5377897B2 (ja) | 2007-10-29 | 2013-12-25 | 株式会社日立製作所 | ストリームデータのランキングクエリ処理方法およびランキングクエリ処理機構を有するストリームデータ処理システム |
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 |
US7870167B2 (en) | 2007-11-09 | 2011-01-11 | Oracle America, Inc. | Implementing event processors |
KR100894910B1 (ko) * | 2007-11-09 | 2009-04-30 | 한국전자통신연구원 | 이기종 센서 네트워크 환경에서 다중 질의 처리 장치 및방법 |
US9275353B2 (en) | 2007-11-09 | 2016-03-01 | Oracle America, Inc. | Event-processing operators |
US8191074B2 (en) | 2007-11-15 | 2012-05-29 | Ericsson Ab | Method and apparatus for automatic debugging technique |
US8156134B2 (en) | 2007-11-15 | 2012-04-10 | International Business Machines Corporation | Using different groups of query graph transform modules to generate execution plans for queries for different database types |
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 |
US8365140B2 (en) | 2007-12-20 | 2013-01-29 | Hsbc Technologies Inc. | Automated methods and systems for developing and deploying projects in parallel |
US7882087B2 (en) | 2008-01-15 | 2011-02-01 | At&T Intellectual Property I, L.P. | Complex dependencies for efficient data warehouse updates |
JP2009171193A (ja) | 2008-01-16 | 2009-07-30 | Kyocera Mita Corp | 通信装置、通信方法及び通信制御プログラム |
US20090192981A1 (en) | 2008-01-29 | 2009-07-30 | Olga Papaemmanouil | Query Deployment Plan For A Distributed Shared Stream Processing System |
US9489495B2 (en) | 2008-02-25 | 2016-11-08 | Georgetown University | System and method for detecting, collecting, analyzing, and communicating event-related information |
US8055649B2 (en) | 2008-03-06 | 2011-11-08 | Microsoft Corporation | Scaled management system |
US8903802B2 (en) | 2008-03-06 | 2014-12-02 | Cisco Technology, Inc. | Systems and methods for managing queries |
US8805879B2 (en) | 2008-03-11 | 2014-08-12 | Virtualagility Inc. | Techniques for integrating parameterized information request into a system for collaborative work |
JP5589837B2 (ja) | 2008-03-28 | 2014-09-17 | 日本電気株式会社 | 情報再構成システム、情報再構成方法及び情報再構成用プログラム |
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 |
JP5198929B2 (ja) | 2008-04-25 | 2013-05-15 | 株式会社日立製作所 | ストリームデータ処理方法及び計算機システム |
US8155880B2 (en) | 2008-05-09 | 2012-04-10 | Locomatix Inc. | Location tracking optimizations |
US8886637B2 (en) | 2008-05-12 | 2014-11-11 | Enpulz, L.L.C. | Web browser accessible search engine which adapts based on user interaction |
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 |
US8291006B2 (en) | 2008-05-30 | 2012-10-16 | International Business Machines Corporation | Method for generating a distributed stream processing application |
US8918507B2 (en) | 2008-05-30 | 2014-12-23 | Red Hat, Inc. | Dynamic grouping of enterprise assets |
US8112378B2 (en) * | 2008-06-17 | 2012-02-07 | Hitachi, Ltd. | Methods and systems for performing root cause analysis |
US20090319501A1 (en) | 2008-06-24 | 2009-12-24 | Microsoft Corporation | Translation of streaming queries into sql queries |
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 |
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 |
US8447739B2 (en) | 2008-07-16 | 2013-05-21 | SAP France S.A. | Systems and methods to create continuous queries via a semantic layer |
US8037040B2 (en) | 2008-08-08 | 2011-10-11 | Oracle International Corporation | Generating continuous query notifications |
US8185508B2 (en) | 2008-08-08 | 2012-05-22 | Oracle International Corporation | Adaptive filter index for determining queries affected by a DML operation |
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 |
US8572103B2 (en) | 2008-09-29 | 2013-10-29 | Sap Ag | Method and system for benchmarking RFID data against SLA data |
US20100094838A1 (en) | 2008-10-10 | 2010-04-15 | Ants Software Inc. | Compatibility Server for Database Rehosting |
JP5337447B2 (ja) * | 2008-10-28 | 2013-11-06 | 株式会社日立製作所 | ストリームデータ処理方法、及びシステム |
JP5465413B2 (ja) | 2008-10-29 | 2014-04-09 | 株式会社日立製作所 | ストリームデータ処理方法、及びそのシステム |
JP5394197B2 (ja) | 2008-10-31 | 2014-01-22 | トピー工業株式会社 | 自動車用ホイールディスク |
AU2009316786A1 (en) | 2008-11-19 | 2010-05-27 | Merck Sharp & Dohme Corp. | Inhibitors of diacylglycerol acyltransferase |
US7945565B2 (en) | 2008-11-20 | 2011-05-17 | Yahoo! Inc. | Method and system for generating a hyperlink-click graph |
US8214325B2 (en) | 2008-11-20 | 2012-07-03 | Sap Ag | Federating business 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 |
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 |
US8352517B2 (en) | 2009-03-02 | 2013-01-08 | Oracle International Corporation | Infrastructure for spilling pages to a persistent store |
US8725707B2 (en) | 2009-03-26 | 2014-05-13 | Hewlett-Packard Development Company, L.P. | Data continuous SQL process |
US8713038B2 (en) | 2009-04-02 | 2014-04-29 | Pivotal Software, Inc. | Integrating map-reduce into a distributed relational database |
US8285709B2 (en) | 2009-05-12 | 2012-10-09 | Teradata Us, Inc. | High-concurrency query operator and method |
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 |
US20100332401A1 (en) | 2009-06-30 | 2010-12-30 | Anand Prahlad | Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites |
US8180801B2 (en) * | 2009-07-16 | 2012-05-15 | Sap Ag | Unified window support for event stream data management |
US8880524B2 (en) | 2009-07-17 | 2014-11-04 | Apple Inc. | Scalable real time event stream processing |
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 |
US8572016B2 (en) | 2009-07-31 | 2013-10-29 | International Business Machines Corporation | Match engine for detection of multi-pattern rules |
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 |
US20110032260A1 (en) | 2009-08-05 | 2011-02-10 | International Business Machines Corporation | Enhancing visualization of relationships and temporal proximity between events |
US20110035253A1 (en) | 2009-08-07 | 2011-02-10 | onFucus Healthcare | Systems and Methods for Optimizing Enterprise Performance Relationships to Other Applications |
CA2754159C (en) | 2009-08-11 | 2012-05-15 | Certusview Technologies, Llc | Systems and methods for complex event processing of vehicle-related information |
JP5395565B2 (ja) | 2009-08-12 | 2014-01-22 | 株式会社日立製作所 | ストリームデータ処理方法及び装置 |
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 |
US20110084967A1 (en) | 2009-10-09 | 2011-04-14 | International Business Machines Corporation | Visualization of Datasets |
US8195648B2 (en) * | 2009-10-21 | 2012-06-05 | Microsoft Corporation | Partitioned query execution in event processing systems |
US20110131588A1 (en) | 2009-12-01 | 2011-06-02 | International Business Machines Corporation | Software architecture that can sense and respond to contextual and state information |
US9305057B2 (en) | 2009-12-28 | 2016-04-05 | Oracle International Corporation | Extensible indexing framework using data cartridges |
US9430494B2 (en) | 2009-12-28 | 2016-08-30 | Oracle International Corporation | Spatial data cartridge for event processing systems |
US8959106B2 (en) | 2009-12-28 | 2015-02-17 | Oracle International Corporation | Class loading using java data cartridges |
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 |
US9805101B2 (en) | 2010-02-26 | 2017-10-31 | Ebay Inc. | Parallel data stream processing system |
US8484243B2 (en) | 2010-05-05 | 2013-07-09 | Cisco Technology, Inc. | Order-independent stream query processing |
WO2011142026A1 (ja) | 2010-05-14 | 2011-11-17 | 株式会社日立製作所 | 時系列データ管理装置、システム、方法、およびプログラム |
US8595234B2 (en) | 2010-05-17 | 2013-11-26 | Wal-Mart Stores, Inc. | Processing data feeds |
US8762297B2 (en) * | 2010-05-17 | 2014-06-24 | Microsoft Corporation | Dynamic pattern matching over ordered and disordered data streams |
US10380186B2 (en) | 2010-05-26 | 2019-08-13 | Entit Software Llc | Virtual topological queries |
US8595840B1 (en) | 2010-06-01 | 2013-11-26 | Trend Micro Incorporated | Detection of computer network data streams from a malware and its variants |
US20120116982A1 (en) | 2010-06-02 | 2012-05-10 | Salesforce. com. Inc. | Method and system for escalating content of discussions to particular memory locations |
CN101866353B (zh) | 2010-06-09 | 2012-10-10 | 孟小峰 | 一种基于位置服务的连续查询隐私保护方法 |
US8442863B2 (en) | 2010-06-17 | 2013-05-14 | Microsoft Corporation | Real-time-ready behavioral targeting in a large-scale advertisement system |
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 |
US8719207B2 (en) | 2010-07-27 | 2014-05-06 | Oracle International Corporation | Method and system for providing decision making based on sense and respond |
US8713049B2 (en) | 2010-09-17 | 2014-04-29 | Oracle International Corporation | Support for a parameterized query/view in complex event processing |
US8260803B2 (en) | 2010-09-23 | 2012-09-04 | Hewlett-Packard Development Company, L.P. | System and method for data stream processing |
CN103154935B (zh) | 2010-10-11 | 2016-08-24 | 惠普发展公司,有限责任合伙企业 | 用于查询数据流的系统和方法 |
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 |
US8478743B2 (en) * | 2010-12-23 | 2013-07-02 | Microsoft Corporation | Asynchronous transfer of state information between continuous query plans |
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 |
US9350567B2 (en) * | 2011-01-25 | 2016-05-24 | International Business Machines Corporation | Network resource configurations |
US8799271B2 (en) | 2011-01-25 | 2014-08-05 | Hewlett-Packard Development Company, L.P. | Range predicate canonization for translating a query |
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) |
US8762369B2 (en) | 2011-05-10 | 2014-06-24 | Telefonaktiebolaget L M Ericsson (Publ) | Optimized data stream management system |
US8738572B2 (en) | 2011-05-24 | 2014-05-27 | Red Lambda, Inc. | System and method for storing data streams in a distributed environment |
WO2012172600A1 (ja) | 2011-06-14 | 2012-12-20 | 株式会社日立製作所 | データ検索システム及びデータ検索方法 |
US9965520B2 (en) | 2011-06-17 | 2018-05-08 | Microsoft Corporation | Efficient logical merging over physically divergent streams |
US20120323941A1 (en) * | 2011-06-17 | 2012-12-20 | Microsoft Corporation | Processing Queries for Event Data in a Foreign Representation |
JP5640910B2 (ja) * | 2011-06-27 | 2014-12-17 | 富士通株式会社 | 照合装置および照合プログラム |
US9449030B2 (en) | 2011-06-30 | 2016-09-20 | International Business Machines Corporation | Method for native program to inherit same transaction content when invoked by primary program running in separate environment |
US9329975B2 (en) | 2011-07-07 | 2016-05-03 | Oracle International Corporation | Continuous query language (CQL) debugger in complex event processing (CEP) |
US20130031567A1 (en) * | 2011-07-25 | 2013-01-31 | Microsoft Corporation | Local event processing |
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 |
US9298773B2 (en) | 2011-09-12 | 2016-03-29 | Hewlett Packard Enterprise Development Lp | Nested complex sequence pattern queries over event streams |
US8880493B2 (en) | 2011-09-28 | 2014-11-04 | Hewlett-Packard Development Company, L.P. | Multi-streams analytics |
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 |
EP2823412A1 (en) | 2012-03-08 | 2015-01-14 | Telefonaktiebolaget L M Ericsson (PUBL) | Data stream management systems |
US9201911B2 (en) | 2012-03-29 | 2015-12-01 | International Business Machines Corporation | Managing test data in large scale performance environment |
US9239864B2 (en) * | 2012-04-17 | 2016-01-19 | Cisco Technology, Inc. | Distributing and processing streams over one or more networks |
CN102665207A (zh) | 2012-05-08 | 2012-09-12 | 杭州电子科技大学 | Lbs中基于移动终端的连续查询用户位置隐匿方法 |
US20130332240A1 (en) | 2012-06-08 | 2013-12-12 | University Of Southern California | System for integrating event-driven information in the oil and gas fields |
EP2868045B1 (en) | 2012-06-29 | 2018-08-08 | Telefonaktiebolaget LM Ericsson (publ) | A method of and network server for detecting data patterns in an input data stream |
US20140019194A1 (en) | 2012-07-12 | 2014-01-16 | Bank Of America | Predictive Key Risk Indicator Identification Process Using Quantitative Methods |
US9009213B2 (en) | 2012-08-27 | 2015-04-14 | Sap Se | Distributing pre-rendering processing tasks |
CN102892073B (zh) | 2012-09-11 | 2015-07-01 | 北京航空航天大学 | 一种适用于位置服务系统中面向连续查询的位置匿名方法 |
US20140082013A1 (en) | 2012-09-20 | 2014-03-20 | Sap Ag | Query templates for queries in data stream management systems |
US8892484B2 (en) | 2012-09-28 | 2014-11-18 | Sphere Of Influence, Inc. | System and method for predicting events |
US9805095B2 (en) | 2012-09-28 | 2017-10-31 | Oracle International Corporation | State initialization for continuous queries over archived views |
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 |
US9053210B2 (en) | 2012-12-14 | 2015-06-09 | Microsoft Technology Licensing, Llc | Graph query processing using plurality of engines |
US20140172506A1 (en) | 2012-12-17 | 2014-06-19 | Microsoft Corporation | Customer segmentation |
EP2936341B1 (en) * | 2012-12-18 | 2016-09-14 | Telefonaktiebolaget LM Ericsson (publ) | Load shedding in a data stream management system |
US10298444B2 (en) | 2013-01-15 | 2019-05-21 | Oracle International Corporation | Variable duration windows on continuous data streams |
US9098587B2 (en) * | 2013-01-15 | 2015-08-04 | Oracle International Corporation | Variable duration non-event pattern matching |
US20140237487A1 (en) | 2013-02-15 | 2014-08-21 | University Of Southern California | Complex event processing for dynamic data |
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 |
US20140324530A1 (en) | 2013-04-30 | 2014-10-30 | Liveops, Inc. | Method and system for detecting patters in data streams |
US9418113B2 (en) | 2013-05-30 | 2016-08-16 | Oracle International Corporation | Value based windows on relations in continuous data streams |
CN104252469B (zh) | 2013-06-27 | 2017-10-20 | 国际商业机器公司 | 用于模式匹配的方法、设备和电路 |
JP2016528553A (ja) | 2013-08-14 | 2016-09-15 | ザグ ホールディングス インコーポレーテッド | データサニタイゼーション及び正規化及びジオコーディング方法 |
US9934279B2 (en) | 2013-12-05 | 2018-04-03 | Oracle International Corporation | Pattern matching across multiple input data streams |
US9838512B2 (en) | 2014-10-30 | 2017-12-05 | Splunk Inc. | Protocol-based capture of network data using remote capture agents |
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 |
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 |
WO2017018901A1 (en) | 2015-07-24 | 2017-02-02 | Oracle International Corporation | Visually exploring and analyzing event streams |
-
2013
- 2013-03-15 US US13/838,259 patent/US10298444B2/en active Active
-
2014
- 2014-01-09 EP EP14702136.4A patent/EP2946527B1/en active Active
- 2014-01-09 CN CN201480004731.1A patent/CN105379183B/zh active Active
- 2014-01-09 WO PCT/US2014/010920 patent/WO2014113273A2/en active Application Filing
- 2014-01-09 JP JP2015552781A patent/JP6509127B2/ja active Active
-
2018
- 2018-12-07 JP JP2018230013A patent/JP2019061712A/ja active Pending
-
2019
- 2019-02-01 US US16/265,610 patent/US10644932B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102687134A (zh) * | 2009-12-29 | 2012-09-19 | 摩托罗拉解决方案公司 | 用于基于事件序列的呈现通知的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105379183A (zh) | 2016-03-02 |
WO2014113273A2 (en) | 2014-07-24 |
WO2014113273A3 (en) | 2015-01-29 |
EP2946527A2 (en) | 2015-11-25 |
EP2946527B1 (en) | 2016-12-07 |
US20190165990A1 (en) | 2019-05-30 |
US20140201355A1 (en) | 2014-07-17 |
JP6509127B2 (ja) | 2019-05-08 |
US10298444B2 (en) | 2019-05-21 |
JP2016513300A (ja) | 2016-05-12 |
US10644932B2 (en) | 2020-05-05 |
JP2019061712A (ja) | 2019-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105379183B (zh) | 连续数据流上的可变持续时间窗口 | |
JP6952067B2 (ja) | 継続時間可変イベントなしパターンマッチング | |
Moritz et al. | Trust, but verify: Optimistic visualizations of approximate queries for exploring big data | |
CN104838377B (zh) | 利用映射缩减集成事件处理 | |
Ciceri et al. | Crowdsourcing for top-k query processing over uncertain data | |
US7908160B2 (en) | System and method for producing audit trails | |
US20210034620A1 (en) | Systems and methods for querying time series data | |
US20150269224A1 (en) | Query routing based on complexity class determination | |
JP2012164318A5 (zh) | ||
CN106599164A (zh) | 复杂事件处理中对于参数化的查询/视图的支持 | |
US20130212157A1 (en) | Processing event instance data in a client-server architecture | |
CN110489653A (zh) | 舆情信息查询方法和装置、系统、电子设备、存储介质 | |
Rozsnyai et al. | Event cloud-searching for correlated business events | |
CN103189866A (zh) | 复杂事件处理中对于参数化的查询/视图的支持 | |
Rozsnyai et al. | Business process insight: An approach and platform for the discovery and analysis of end-to-end business processes | |
JP2018037069A (ja) | レポートの重要度を分析するメタデータ基盤のオンライン分析処理システム | |
CN109213793A (zh) | 一种流式数据处理方法和系统 | |
US8943064B2 (en) | Using organizational awareness in locating business intelligence | |
Álvarez-Chaves et al. | Machine Learning Methods for Predicting the Admissions and Hospitalisations in the Emergency Department of a Civil and Military Hospital | |
Graf et al. | Frost: Benchmarking and exploring data matching results | |
Muniroh et al. | Trend information system research topics in the Sinta journal for the period 2015-2019 | |
Bhogadhi et al. | A review of frequent pattern mining algorithms for uncertain data | |
Urbano | DOZER: a scalable and fault-tolerant streaming engine for Seraph queries evaluation | |
Li | Robust complex event pattern detection over streams | |
Griffin | A Preliminary Exploration of Database Performance for Use With ‘big data’projects in the aviation industry |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |