用于处理数据的方法和系统技术方案

技术编号:8934354 阅读:164 留言:0更新日期:2013-07-18 02:53
本公开提出了一种用于处理数据的计算机实现的方法和系统。在流计算应用中,可以使用元组在操作器之间发送数据。然而,接收操作器可以在这些元组到达时不评估它们,而是等待评估一组元组——即窗口。通常当与接收操作器相关联的缓冲器达到最大窗口大小时或当预定时间段已经期满时触发窗口。另外,可以通过监视元组速率——即操作器接收到元组的速率——来触发窗口。如果元组速率超过或小于阈值,则可以触发窗口。而且,可以监视异常的数量或操作器抛出异常的速率。如果这些参数的任何一个满足阈值,则可以触发窗口,由此指示操作器评估包含在窗口内的元组。

【技术实现步骤摘要】
用于处理数据的方法和系统
本专利技术的实施例一般涉及流计算应用。具体地,本专利技术涉及使用不同的流度量来触发操作器(operator)在流计算应用中处理的元组(tuple)的窗口。
技术介绍
在计算机数据库已经变得极其复杂的同时,对于数据库系统施加的计算要求也已经以快速的步伐增加。数据库系统通常被配置来将存储数据的处理与访问、操纵或使用存储在数据库中的数据分离。更具体地,数据库使用模型,其中,数据首先被存储,然后被索引化,并且最后被查询。然而,这个模型不能满足一些实时应用的性能要求。例如,数据库系统可以接收和存储进入的数据的速率限制可以处理或评估多少数据。这继而可能限制数据库应用实时处理大量数据的能力。
技术实现思路
本专利技术的实施例提供了用于处理数据的方法、系统和计算机程序产品。在一个实施例中,所述方法和计算机程序接收要由多个操作器处理的流数据元组,所述操作器处理所接收的数据元组的至少一部分。所述方法和计算机程序也建立所述多个操作器的操作器图(graph),其中,所述操作器图限定至少一个执行路径,并且其中,所述多个操作器的第一操作器被配置来从至少一个上游操作器接收数据元组,并且向至少一个下游操作器发送数据元组。所述方法和计算机程序确定当所述上游操作器基于所述流数据元组的至少一个执行操作的同时出现的异常(exception)的当前数量。所述方法和计算机程序基于所述异常的数量来触发在所述多个操作器的、与所述上游操作器不同的至少一个操作器中的数据窗口,其中,所述窗口包括多个数据元组。在另一个实施例中,所述系统包括至少两个计算节点,每一个计算节点包括至少一个计算机处理器。所述至少两个计算节点被配置来容纳处理流数据元组的多个操作器的至少一个。而且,所述操作器处理所接收的数据元组的至少一部分。所述多个操作器建立操作器图,所述操作器图限定至少一个执行路径,其中,所述多个操作器的第一操作器被配置来从至少一个上游操作器接收数据元组,并且向至少一个下游操作器发送数据元组。所述系统也包括窗口启动器,所述窗口启动器被配置来确定在所述上游操作器基于所述流数据元组的至少一个执行操作的同时出现的异常的当前数量,并且基于所述异常的数量来触发在所述多个操作器的、与所述上游操作器不同的至少一个操作器中的数据窗口,其中,所述窗口包括多个数据元组。附图说明为了获得并且可以详细地明白上述的方面,可以通过参考附图来进行上面简述的本专利技术的实施例的更具体的说明。然而,应当注意,附图仅图示了本公开的典型实施例,并且因此不被解释为限制其范围,因为本专利技术可以允许其他等同有效的实施例。图1A-1B图示了根据本专利技术的实施例的、被配置来执行流计算应用的计算基础架构。图2是根据本专利技术的一个实施例的、图1A-1B的计算结果的更详细视图。图3是根据本专利技术的一个实施例的、图1A-1B的服务器管理系统的更详细视图。图4是图示根据本专利技术的一个实施例的、在流计算应用中滚动(tumble)和滑动窗口的表格。图5图示了根据本专利技术的一个实施例的、用于触发窗口的部分操作器图。图6图示了根据本专利技术的一个实施例的、用于触发窗口部分操作器图。图7图示了根据本专利技术的一个实施例的、用于触发窗口的部分操作器图。具体实施方式基于流的计算和基于流的数据库计算正在作为用于数据库系统的发展中的技术而出现。可获得允许用户建立应用的产品,所述应用在流数据到达数据库文件前处理和查询流数据。利用该正在出现的技术,用户可以指定处理逻辑以在入站(inbound)数据记录在“飞行中(inflight)”的同时应用到该入站数据记录,在很短的时间量、经常在几个毫秒中可获得结果。使用该类型的处理来构造应用已经打开了新的编程范式,该新的编程范式允许开发大量革新应用、系统和处理,并且为应用程序员和数据库开发者带来新的挑战。在流计算应用中,处理单元(processingelement)彼此连接,使得数据从一个处理单元流向下一个(例如,通过TCP/IP套接字)。通过下述方式来达到可伸缩性(scalability):通过建立许多小的可执行代码片(即,操作器)而在节点上分布(distribute)应用,以及,在多个节点上复制处理单元并在它们之间进行负载平衡。在流计算应用中的处理单元(和操作器)可以被融合在一起,以形成较大的处理单元或作业。如此进行允许处理单元共享公共处理空间,导致在操作器之间获得比使用进程间的通信技术(例如,使用TCP/IP套接字)可获得的快得多的通信。而且,可以通过流计算应用动态地从表示数据的流的操作器图插入或去除处理单元,以及,可以在运行时间(runtime)期间从流计算应用融合或解除融合处理单元。而且,一些流计算应用使用元组来在操作器(或处理单元)之间流化(stream)数据。操作器可以然后使用接收的元组来执行一个或多个处理功能。取代在接收到元组时处理它们,操作器可以等待评估一组元组——即,窗口。然而,流计算应用需要用于确定何时触发窗口的指示器,该指示器指示操作器评估在数据窗口内包括的元组。可能的窗口化参数包括等待直到接收到特定数量的元组或等待直到已经过去了特定的时间量。取代仅依赖于这两个参数,可以基于操作器接收元组的速率——即,在一时间段内接收到的元组数量的比率——来触发窗口。如果该速率超过或小于阈值,则可以触发数据窗口。例如,如果操作器在它接收到1000个元组后触发窗口,但是它接收元组的速率小于每秒10个元组,则操作器可以触发窗口,即使它已经接收到仅500个元组。另外,流计算应用可以评估过去的元组速率以确定当前的元组速率相对于历史速率如何偏离。如果偏离——例如,将历史速率与当前速率作比较的百分比——超过或小于阈值,则可以触发窗口。如果多个操作器向单个操作器发送元组,则可以监视和考虑用于数据路径的每一个的元组速率。流计算应用可以例如保证在触发窗口前流入操作器内的元组速率全部超过相应的阈值。附加于或取代评估元组速率,流计算应用可以监视由一个或多个操作器抛出的异常的数量。作为由单独操作器执行的异常处理的一部分,操作器可以记录异常或特定类型的异常的总数,以确定它是否超过或小于阈值。如果如果是,则可以触发数据窗口。不论流计算应用是否使用元组速率或异常来触发窗口,都可以在不位于提供元组速率或异常计数的操作器的下游的操作器中触发窗口。即,这些参数可以用于在流计算应用的操作器图中的任何操作器上触发窗口。下面,参考本专利技术的实施例。然而,应当明白,本专利技术不限于特定的所述实施例。相反,下面的特征和元件的任何组合不论是否与不同的实施例相关,都被考虑为实现和实施本专利技术。而且,虽然本专利技术的实施例可以相对于其他可能解决方案和/或现有技术实现优点,但是是否通过给定实施例实现特定优点不是本专利技术的限制。因此,下面的方面、特征、实施例和优点仅是说明性的,并且不被考虑为所附的权利要求的元素或限制,除了在权利要求中明确地陈述。同样,对于“本专利技术”的引用不应当被解释为在此公开的任何专利技术主题的一般化,并且不应当被看作是所附的权利要求的元素或限制,除了在权利要求中明确地陈述。所属
的技术人员知道,本专利技术可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等)本文档来自技高网
...
用于处理数据的方法和系统

【技术保护点】
一种用于处理数据的计算机实现的方法,包括:接收要被多个操作器处理的流数据元组,所述操作器通过一个或多个计算机处理器的操作处理所接收的数据元组的至少一部分;建立所述多个操作器的操作器图,所述操作器图限定至少一个执行路径,其中,所述多个操作器的第一操作器被配置来从至少一个上游操作器接收数据元组,并且向至少一个下游操作器发送数据元组;确定在所述上游操作器基于所述流数据元组的至少一个执行操作的同时出现的异常的当前数量;并且基于所述异常的数量在所述多个操作器中与所述上游操作器不同的至少一个操作器中触发数据窗口,所述数据窗口包括多个数据元组。

【技术特征摘要】
2012.01.11 US 13/347,9741.一种用于处理数据的计算机实现的方法,包括:接收要被多个操作器处理的流数据元组,所述操作器通过一个或多个计算机处理器的操作处理所接收的数据元组的至少一部分;建立所述多个操作器的操作器图,所述操作器图限定至少一个执行路径,其中,所述多个操作器的第一操作器被配置来从至少一个上游操作器接收数据元组,并且向至少一个下游操作器发送数据元组;确定在所述上游操作器基于所述流数据元组的至少一个执行操作的同时出现的异常的当前数量;并且基于所述异常的数量在所述多个操作器中与所述上游操作器不同的至少一个操作器中触发数据窗口,所述数据窗口包括多个数据元组。2.根据权利要求1所述的方法,其中,在触发了所述数据窗口后,所述至少一个操作器使用所述数据窗口中的所述多个数据元组的至少一个来执行操作。3.根据权利要求1所述的方法,其中,还基于所述异常的当前数量是否超过或小于预定义阈值来触发所述数据窗口。4.根据权利要求1所述的方法,还包括:确定从所述上游操作器抛出的异常的历史数量;将所述异常的历史数量与所述异常的当前数量作比较,以确定是否满足阈值;并且如果满足所述阈值,则触发所述数据窗口。5.根据权利要求1所述的方法,其中至少两个上游操作器抛出异常,还包括:测量针对所述至少两个上游操作器的每一个的异常的当前数量;以及基于针对所述至少两个上游操作器的每一个的异常的当前数量在所述至少一个操作器中触发所述数据窗口。6.根据权利要求5所述的方法,其中,还基于针对所述至少两个上游操作器的每一个的异常的当前数量是否超过或小于一个或多个阈值触发所述数据窗口,所述阈值基于下述之一:预定义阈值,以及针对所述至少两个上游操作器的每一个的、异常的至少一个历史数量与异常的当前数量之间的差。7.根据权利要求1所述的方法,其中,基于异常速率触发所述数据窗口,所述异常速率是在预定义时间段期间由所述上游操作器抛出的异常的数量的比率。8.一种用于处理数据的系统,包...

【专利技术属性】
技术研发人员:MJ布兰森JM桑托苏索BW舒尔茨
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

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

1