数据处理装置和方法以及数据容器结构与流程

文档序号:14650005发布日期:2018-06-08 21:35阅读:237来源:国知局
数据处理装置和方法以及数据容器结构与流程

一般来说,本发明涉及数据处理的领域。更具体来说,本发明涉及一种用于处理数据流的数据处理装置和方法以及一种对应数据容器结构。



背景技术:

在当今信息丰富的环境中,快速处理大量数据可能具有挑战性并且非常重要。在事件发生时,此数据通常以数据流,即,连续或半连续数据流的形式提供,其中在许多情况下,实时产生数据元素。例如,在追踪和接入应用时用于射频识别(radio-frequency identification,RFID)中的传感器可以提供关于所追踪目标的位置的流式数据。对流式数据中的特定信号快速作出响应通常是多个应用的关键方面。例如,用于检测安全威胁的网络监视系统需要检测和报告在通过监视收集到的数据流中表示的事件。

常规上,通过首先将数据存储于数据库中执行对流式数据的处理。随后可以查询数据库以检索数据供进一步处理。因此,实时分析数据是非常困难的,因为数据库访问次数受限制,具体来说,具有高数据速率的流受限制。为了解决此问题,已重新设计若干传统的软件技术,例如,主存储器数据库管理系统。

近年来已开发称为“复杂事件处理”或“事件流处理”的技术。借助于这些技术,可以由于数据流的处理来检测体现为数据流内的有意义图案的事件。在此上下文中,已出现呈流处理引擎形式的新类别的基础架构,例如,“Aurora”、“STREAM”、“TelegraphCQ”以具体来说支持高容量、低时延的数据流处理应用。

常规的流处理范例涉及在数据流的所有元素/事件上应用的一组操作。在很多情形下,处理数据流涉及必须基于数据流的连续变化数据元素或事件及时重复进行计算的特定计算,例如,计算滑动平均值。换句话说,接收为数据流的一部分的新数据元素或事件通常必须客观地看待为数据流中的早期数据流。或者,在某些应用情形中,每个新数据元素基于数据流中的所有可用数据元素,即,早期数据元素和新数据元素触发重复计算。

此情况通常涉及将数据流分割成应用计算的不同窗口,即,时间间隔。窗口是相对于由数据流的数据元素或事件界定的时间或顺序的定界,所述数据流含有数据元素或事件的子集。在图1中例示此概念。常规的流处理引擎使用窗口来向数据流或事件应用处理功能(例如,计算操作)。如果实时接收事件,或如果事件存储于数据库中并且在重演事件以模仿流行为时反复进行处理,使用同一机构。

特定方面在于常规窗口是可传递的。出于将计算操作应用于数据流的数据元素或事件的目的形成窗口,但是在完成计算操作之后,不保存窗口。因为一般会舍弃与流的处理对应的窗口,所以数据流上的任何连续操作将需要重新产生和重新计算窗口。即使对于窗口的较小更新,例如,时间再校准,也会发生此行为。实际上考虑到对于多个分析情形,相对于分析的时刻完成流到多个窗口的分割,因此这是通用操作。随着时间推进,系统的参考时间也前进并且这需要重新调整窗口。

图2中说明可能在常规流处理引擎中发生的示例性情形。例如,在时间点X处,数据流的数据元素或事件可以分组成窗口,从当前时刻开始以及追溯6个月,所述窗口具有1小时的大小。基于数据元素或事件到窗口的此分组,可以计算不同统计测量,例如,窗口的数据元素或事件的平均值。在新数据元素或事件在时间点X+Δ处作为数据流的一部分到达之后,必须再次计算这些统计测量,因为对于时间点X+Δ窗口必须从头开始重新产生。

鉴于以上内容,需要一种改进的数据处理装置和方法以及一种改进的数据容器结构,具体而言,这允许以改进的方式利用数据流中的数据元素的时间结构。



技术实现要素:

本发明的目标是提供一种改进的数据处理装置和方法以及一种改进的数据容器结构,具体而言,这允许以改进的方式利用数据流中的数据元素的时间结构。

前述和其它目标通过独立权利要求的标的物实现。其它实施形式通过从属权利要求、描述以及图式清楚可见。

根据第一方面,本发明涉及一种用于处理数据流的数据处理装置,所述数据流包括按时间顺序布置在数据流内的多个数据元素。数据处理装置包括用于基于数据流产生多个数据容器结构的处理器,其中每个数据容器结构包括按时间顺序的数据流中的多个数据元素的子集。处理器进一步用于向每个数据容器结构提供元数据,其中元数据界定每个数据容器结构相对于多个数据容器结构中的其它数据容器结构的时间顺序,即,每个数据容器结构在数据流中的时间顺序。

因此,提供一种改进的数据处理装置,具体而言,这允许利用数据流中的数据元素的时间结构。基于元数据,提供通过数据处理装置的数据容器结构的基于时间的管理。所提供的性能优势在于节省通过更新触发的重新发生流操作的计算循环。所节省的计算循环量取决于特定操作和上下文而变化,从而在一些情况下达到多于90%的常规选项。

在根据第一方面本身的数据处理装置的第一可能实施形式中,每个数据容器结构包括至少一个数据窗口和/或至少一个数据子容器,所述至少一个数据窗口包括多个数据元素的子集中的至少一个数据元素,所述至少一个数据子容器包括至少两个数据子窗口,其中每个数据子窗口包括多个数据元素的子集中的至少一个数据元素。

例如,提供此层次的数据容器结构、数据子容器、数据窗口和/或数据子窗口允许利用不同层级的不同时间粒度。

在根据第一方面本身或其第一实施形式的数据处理装置的第二可能实施形式中,每个数据容器结构的元数据包括多个数据元素的子集中的数据元素的指针,所述指针是多个数据元素的子集的时间顺序中的第一数据元素。在实施形式中,每个数据容器结构的元数据可以进一步包括数据容器结构标识符和/或数据容器结构的开始时间或结束时间。

在根据第一方面本身或其第一或第二实施形式的数据处理装置的第三可能实施形式中,处理器进一步用于向每个数据容器结构提供与数据容器结构的多个数据元素的子集相关联的统计数据。在实施形式中,统计数据可以包括以下项中的至少一个:多个数据元素的计数、总和、平均值、中值、方差、标准差和/或变异系数。统计数据可以包括多个对,其中每个对包括应用于数据容器结构内的数据元素或其窗口的统计函数和统计函数的值。

在根据第一方面的第三实施形式的数据处理装置的第四可能实施形式中,每个数据容器结构的元数据进一步包括与数据容器结构的多个数据元素的子集相关联的统计数据的指针。

在根据第一方面本身或其第一至第四实施形式中的任一个的数据处理装置的第五可能实施形式中,处理器进一步用于通过将数据流的数据元素添加到数据容器结构的数据元素的子集或通过从数据容器结构的数据元素的子集清除数据元素来调整每个数据容器结构。在实施形式中,当更新或调整数据容器结构时,处理器用于针对与数据容器结构的数据元素相关联的统计数据利用延迟更新方案或主动更新方案。

在根据第一方面本身或其第一至第五实施形式中的任一个的数据处理装置的第六可能实施形式中,数据处理装置进一步包括用于存储多个数据容器结构的存储器。

根据第二方面,本发明涉及数据容器结构,用于将按时间顺序布置的多个数据元素存储在数据流中。数据容器结构包括按时间顺序的数据流中的多个数据元素的子集,以及界定数据流中的数据容器结构的时间顺序的元数据,即,数据容器结构基于数据流相对于其它容器结构的时间顺序。

在根据第二方面本身的数据容器结构的第一可能实施形式中,数据容器结构包括至少一个数据窗口和/或至少一个数据子容器,所述至少一个数据窗口包括多个数据元素的子集中的至少一个数据元素,所述至少一个数据子容器包括至少两个数据子窗口,其中每个数据子窗口包括多个数据元素的子集中的至少一个数据元素。

在根据第二方面本身或其第一实施形式的数据容器结构的第二可能实施形式中,数据容器结构的元数据包括多个数据元素的子集中的数据元素的指针,所述指针是多个数据元素的子集的时间顺序中的第一数据元素。

在根据第二方面本身或其第一或第二实施形式的数据容器结构的第三可能实施形式中,数据容器结构进一步包括与数据容器结构的多个数据元素的子集相关联的统计数据。

在根据第二方面的第三实施形式的数据容器结构的第四可能实施形式中,数据容器结构的元数据包括与数据容器结构的多个数据元素的子集相关联的统计数据的指针。

在根据第二方面本身或其第一至第四实施形式中的任一个的数据容器结构的第五可能实施形式中,数据容器结构用于通过将数据流的数据元素添加到数据容器结构的数据元素的子集或通过从数据容器结构的数据元素的子集清除数据元素而可调整。

根据第三方面,本发明涉及一种用于处理数据流的数据处理方法,所述数据流包括按时间顺序布置的多个数据元素。数据处理方法包括以下步骤:基于数据流产生多个数据容器结构,其中每个数据容器结构包括按时间顺序的数据流的多个数据元素的子集;以及向每个数据容器结构提供元数据,其中元数据界定每个数据容器结构相对于多个数据容器结构的其它数据容器结构的时间顺序。

根据本发明的第三方面的数据处理方法可以通过根据本发明的第一方面的数据处理装置执行。根据本发明的第三方面的数据处理方法的其它特征直接由根据本发明的第一方面以及其上述不同实施形式的数据处理装置的功能性产生。

根据第四方面,本发明涉及一种计算机程序,其包括用于在计算机上运行时执行根据本发明的第三方面或其实施形式中的任一个的数据处理方法的程序代码。

本发明可以在硬件和/或软件中实施。

附图说明

将相对于以下附图描述本发明的其它实施例,其中:

图1示出说明常规流处理引擎的方面的示意图;

图2示出说明常规流处理引擎的方面的示意图;

图3示出说明根据实施例的用于处理数据流的数据处理装置的示意图;

图4示出说明根据实施例的用于处理数据流的数据处理方法的示意图;

图5示出说明根据由根据实施例的数据处理装置提供的实施例的多个数据容器结构的示意图;

图6示出说明根据由根据实施例的数据处理装置提供的实施例的数据容器结构的不同方面的示意图;

图7示出说明根据由根据实施例的数据处理装置提供的实施例的数据容器结构的不同方面的示意图;

图8示出说明根据实施例的数据处理装置和根据实施例的多个数据容器结构的不同方面的示意图;以及

图9示出说明根据实施例的数据处理装置和方法的性能的表。

具体实施方式

下文参考附图进行描述,所述附图形成本发明的一部分,并通过图解说明的方式示出可以实施本发明的具体方面。应理解,在不脱离本发明范围的情况下,可以利用其它方面,并可以做出结构上或逻辑上的改变。因此,以下详细的描述并不视为具有限制意义,因为本发明的范围由所附权利要求书界定。

例如,应理解,结合所描述方法的揭示内容可以同样适用于用于执行所述方法的对应设备或系统,且反之亦然。例如,如果描述特定方法步骤,对应的装置可以包含执行所描述的方法步骤的单元,即使此单元未在图中明确描述或说明。此外,应理解,除非另外具体指出,否则本文中描述的各种示例性方面的特征可以彼此组合。

图3示出说明根据实施例的用于处理数据流301的数据处理装置300的示意图。数据流301由按时间顺序布置在数据流301内的多个数据元素301a、b组成,例如,归因于数据处理装置300处的相应数据元素301a、b的到达时间。

数据处理装置300包括处理器301,用于基于数据流301产生多个数据容器结构305a、b,其中每个数据容器结构305a、b包括按时间顺序的数据流301的多个数据元素301a、b的子集。存储器309可以提供为数据处理装置300的一部分,用于存储多个数据容器结构305a、b。

处理器301进一步用于向每个数据容器结构305a、b提供元数据307a、b,其中元数据307a、b界定每个数据容器结构305a、b相对于多个数据容器结构305a、b中的其它数据容器结构305a、b的时间顺序,即,每个数据容器结构305a、b在数据流301中的时间顺序。例如,在图3中所示的实施例中,数据容器结构305b的元数据307b可以界定数据容器结构305b相对于数据容器结构305a的时间顺序。

因此,图3中所示的数据容器结构305a、b用于将按时间顺序布置的数据元素301a、b存储在数据流301中。每个数据容器结构305a、b包括按时间顺序的数据流301中的多个数据元素301a、b的子集以及界定数据流301中的数据容器结构305a、b的时间顺序的元数据307a、b,即,数据容器结构305a、b基于数据流301相对于其它容器结构305a、b的时间顺序。

图4示出根据实施例的用于处理数据流,例如图3中所示的数据流301的数据处理方法400的示意图,其中数据流301包括按时间顺序布置的多个数据元素301a、b。

数据处理方法400包括基于数据流301产生多个数据容器结构305a、b的步骤401,其中每个数据容器结构305a、b包括按时间顺序的数据流301中的多个数据元素301a、b的子集,以及向每个数据容器结构305a、b提供元数据307a、b的步骤403,其中元数据307a、b界定每个数据容器结构305a、b相对于多个数据容器结构305a、b中的其它数据容器结构305a、b的时间顺序。

下文将描述数据处理装置300、数据容器结构305a、b和数据处理方法400的其它实施形式、实施例和方面。如上文已经描述,本发明提供一种允许将数据流301的数据元素或事件组织到窗口中以供存储的数据容器结构,例如,图3中所示的数据容器结构305a、b。此结构封装将数据元素或事件分组到数据容器结构或窗口中以及在存储数据时保存此分区的概念。在实施例中,作为用于定界、管理、访问和导航的内部参考,数据处理装置和数据容器结构采用基于时间的参考。在实施例中,通过分层方式完成事件或数据元素在窗口中的组织和保存。也就是说,在实施例中,保存窗口的数据容器将由对应于数据的较小粒度/分区的子容器组成。在实施例中,这些粒度可以降到事件或数据元素的水平。在实施例中,数据容器结构可以具有作为定界符的时间边界以及导航参考。另外,在实施例中,形成数据容器结构的内部结构还可以具有其自身的对应时间参考。在实施例中,数据处理装置300用于在数据容器结构305a、b上应用多个操作。此目的是在事件到窗户的分割或其上计算出的统计数据需要更新时节省计算循环。通过保存流的窗口分区,当需要应用更新时,窗口可以仅根据特定操作重新调整,而不是从原始数据重新产生。此外,在窗口中的数据的组织实现组合窗口以获得数据的新分区或重新调整窗口时间边界以删除、添加和插入新事件或容器的意义上,窗口中的数据的组织是柔性的。为了实现此稍后的目标,保存数据的数据容器结构可以是可延伸的并且允许内部更改。除此之外,数据容器结构可以记录关于窗口的预定义统计数据,所述统计数据与实现对应容器的导航的元数据链接。在实施例中,这些统计数据可以得到保存且在产生新的更新时进行更新。这样允许快速访问通常关于事件流计算出的共用合成信息。下文进一步更详细地描述以上方面中的若干方面。

在数据处理装置300的实施例中,每个数据容器结构305a、b可以包括至少一个数据窗口和/或至少一个数据子容器,所述至少一个数据窗口包括多个数据元素的子集中的至少一个数据元素,所述至少一个数据子容器包括至少两个数据子窗口,其中每个数据子窗口包括多个数据元素的子集中的至少一个数据元素。下文在图5的上下文中更详细地描述此实施例,图5示出根据实施例的多个数据容器结构305a-c的分层结构。

图5中所示的数据容器结构305a-c可以保存其它容器(本文称为数据子容器)或多个事件或数据元素。层级中的每个上层将因此对应于与特定时间大小粒度对应的窗口。此结构封装实现基于时间通过数据进行导航的时间参考和元信息。

因此,在实施例中,每个数据容器结构305a、b的元数据307a、b可以包括多个数据元素的子集中的数据元素的指针,所述指针是多个数据元素的子集的时间顺序中的第一数据元素。在实施形式中,每个数据容器结构的元数据可以进一步包括数据容器结构标识符和/或数据容器结构的开始时间或结束时间。

因此,图5中所示的数据容器结构305a-c能够保存基于流产生的任何类型的分区,所述流例如,图3中所示的数据流301。在实施例中,关于窗口、时间粒度组织和所需导航信息的此元数据收集在元数据307a中。

除了元数据307a之外,还可以存储关于基于窗口计算的某些统计数据的信息以供快速检索。因此,在实施例中,处理器303进一步用于向每个数据容器结构305a-c提供与相应数据容器结构305a-c的多个数据元素的子集相关联的统计数据311a。为清楚起见,在图5中仅指示数据容器结构305的统计数据311a。

在实施例中,统计数据311a可以包括以下项中的至少一个:多个数据元素的计数、总和、平均值、中值、方差、标准差和/或变异系数。统计数据311a可以包括多个对,其中每个对包括应用于数据容器结构内的数据元素或其窗口的统计函数和统计函数的值。

在实施例中,数据容器结构305a的元数据307a进一步包括与数据容器结构305a的多个数据元素的子集相关联的统计数据311a的指针。

在结构层级中的每一层处,可以进行控制、扩展和重新调整。仅通过在不实际访问数据本身的情况下重新调整元数据信息来支持这些操作中的一些操作。此外,独立目标是能够在任何粒度下控制相应数据容器结构,这样可以在需要更新时再使用数据容器结构,所述更新例如,窗口的再校准、事件、数据元素或窗口的插入/移除等。此外,具有用于松散地链接窗口的机构可以执行基于窗口的操作,例如窗口的合成或分解以获得其它时间粒度。

因此,在实施例中,处理器303进一步用于通过将数据流301的数据元素添加到数据容器结构305a-c的数据元素的子集或通过从数据容器结构305a-c的数据元素的子集清除数据元素而调整每个数据容器结构305a-c。

图6示出根据实施例的数据容器结构305a的元数据307a。如上文已经描述,元数据307a的主要用途是保存关于事件的流的时间分区,即,关于每个窗口本身的界定的信息。另外,元数据307a可以包含对保存窗口中的对应数据的容器以及与其相关联的统计数据的参考。为了保存此信息,元数据307a中的每个元素可以构造为记录(即,n连音),其中记录中的每个字段保存特定类型的此信息:窗口ID、开始时间、结束时间、容器头部的指针、容器端部的指针、统计数据的指针以及封装窗口的参考ID。在实施时记录的组织可以采用多个形式,例如,哈希表或树。

此外,图6示出与数据容器结构305a的数据元素相关联的示例性统计数据311a。如果除了针对每个窗口(或密闭窗口)之外将计算统计数据,函数类型和函数值的对的列表可以保存为统计数据311a的一部分。当新的统计函数应用于数据流的窗口上时,所述统计函数的类型和所得值可以记录在统计数据311a中。此统计函数的实例是:计数、总和、平均值、中值、方差、标准差、变异系数等。每个窗口(跨越所使用的不同粒度层)可以具有其自身的对的此列表。如在呈不同形式的范围在哈希表到树或列表内的元数据307a的情况下,可以组织对的所有这些列表的集合。关键点在于必须允许参考统计数据311a(即,对的列表)中的每一项,使得所述项的指针可以保存在元数据307a中。

当更新(例如,再校准、新项目、删除……)将应用于数据容器结构时,两个选项可用于统计数据311a:延迟更新或主动更新。当产生结构时可以设定将使用的更新并且所述更新可以在其生命周期期间得到更新。延迟求值将暗示当任何操作应用于所述数据容器结构上(或一数据容器结构上)时,脏标志将设定成不更新对应统计数据311a的标记。当记录在统计数据311a中的函数中的一个函数将来进行重新计算时,将记录更新并且脏标志设定成清除。在主动更新选项的情况下,应用于数据容器结构或窗口的每个更新将触发所有统计值的新计算。以此方式,关于数据流中的窗口的正确统计信息将来立即可用。

数据容器结构负责将事件保存在组织于窗口中的流中。数据容器结构将包含某些边界之间的事件。通常定界边界是指时间。在数据容器结构可以保存窗口时,时间边界将指窗口的时间定界。当在多个窗口中分割流时,每个此窗口将记录到不同容器中,由此保存应用的时间定界。这些容器可以基于输入流具有的相同逻辑顺序链接到彼此。用于界定窗口的时间粒度可以是在完成分区时使用的一个时间粒度或在应用数据容器结构上的操作时设定,例如,不同数据容器结构的组合或窗口到新时间粒度的重新调整。

在实施例中,数据处理装置300用于提供数据的基于时间的管理。为此,数据容器结构的开始和结束时间定界不仅是时间参考。在数据容器结构内,可以具有对应于更精细粒度的时间参考。当产生结构时或当应用改变结构中的时间组织的操作时,设定此内部粒度。如上文已进一步解释,在这种情况下,获得分层结构。容器因此可以基于子容器进行内部组织,这将对应于封装容器的时间间隔的时间划分。在最低粒度下,子容器将仅保存数据元素或事件。图7示出根据具有示例性分层深度3的实施例的数据容器结构的层级。然而,基于情形的特定需要以及所应用的连续操作,可以使用相同原理产生较大层级。

因此,在实施例中,容器可以形成为其它互连容器(即,子容器)的集合或形成为事件或数据元素的集合。顶层数据容器结构本身可以彼此互连,从而捕获流的分区。每个数据容器结构可以在元数据307a以及任选地对应统计数据311a中具有对应记录。在实施例中,对于事件或数据元素并非如此,因为这会产生大量元数据记录。在任何粒度下,数据容器结构仅通过移动元数据307a中的时间边界以及通过更新子容器或事件中的所影响子集的链路来支持扩展或压缩。从实施方案的角度来看,可以用元素的时间顺序通过固定大小的事件或数据元素的双重链表来获得数据容器结构的上述功能性。

如上文已经描述,本发明的实施例的主要目标是提供一种用于以增加性能的目的节省结构中的流的分区的机构。通过再使用现有计算实现此目标。为此,应该启用所提出格式的多个操作以在所产生的数据容器结构上执行基于时间的操作。另外,还可以通过实现直接在元数据级别下在数据容器结构上操作,例如,检索预先计算出的统计数据来获得性能改进。最后,带来的另一优势是用于在隔离模式下或跨越其它类似结构管理呈窗口形式的数据容器结构的选项。通过特定操作暴露每个此功能性。图8中示出此类操作的实例。在下文中,在图8的上下文中描述来自每个类别的一些示例性操作。

如上文已经描述,本发明的实施例允许每当更新可用时避免重新计算数据流的分区。此更新涉及流中的新事件或数据元素的插入/添加、删除、更新、附加。可以通过在元数据的级别下产生所需调整以及通过在数据容器结构的级别下执行事件或窗口移动来支持这些操作。例如,在元数据的级别下,修改可以暗示数据容器结构的时间边界的调整以及可能地用于一些子容器的封装容器的参考。在数据容器结构的级别下,操作可以涉及将数据容器结构中的一部分数据移动到相邻数据容器结构。作为优化,可以使用对事件或数据元素的基于细粒度时间的访问,以便减少在保存数据容器结构的存储后端上读取且随后写入的数据量,例如,图3中所示的存储器309。

此外,本发明的实施例允许对存储数据进行时间控制。为此,数据容器结构可以利用分割数据的时间参考,所述时间参考可以用于细粒度导航。然而,分割数据的窗口具有静态时间维度。根据本发明的数据容器结构支持用于改变此时间分区或将时间分组成较大间隔的操作。用于改变时间分区的操作一般用于将数据容器结构或窗口分成子间隔。这将暗示产生子容器,其中在数据元素将移动到所述子容器中时将对事件进行分组。尽管类似机构可用于将数据重构到新的时间分区中,但是应理解,这等效于产生对应于流的新分区的全新数据容器结构。或者,在涉及窗口到较大间隔的分组时,这可以通过产生新的容器来完成,在所述新的容器中,现有窗口将进行分组。这还暗示将产生元数据的对应字段。这是重要操作,因为所述操作允许获得流的高级视图摘要。

如先前所提及,此统计数据允许记录应用于流上的数学函数和运算符并且记录所述数学函数和运算符的值。这样实现快速访问此预先计算的数据。将在统计操作的级别下启用的操作是读取所述值、搜索函数的预先计算的值、记录/更新一对函数类型和结果以及标记所述结果是否有效(具体来说,在延迟求值的情况下)。

启用的一组操作是在另一者上应用一个数据容器结构的函数。此函数包含级联、合并、求微分、比较等。取决于特定函数,源结构的容器将被复制到所得结构(可以是源结构中的一个结构)中并且根据功能逻辑链接。这还将暗示元数据和统计数据的级别的更新。

为了突出本发明的实施例提供的优势中的一些优势,下文将在图8的上下文中描述示例性情形。在此实例中,最后6个月在每一小时间隔内每5分钟计算银行账户的相应平均值。这是预防诈骗分析(用于信用卡付款、预防银行洗钱等)中所需的处理的一个实例。每个窗口计算出的值用作用于验证新交易的接地参考值。此分析跨越多个商业领域通用,所述分析因此可以通过优化基本处理操作的此解决方案来优化。

常规上,以上情形将通过以下方式处理。所有事件存储在表中。当触发新计算时,流处理引擎将启动以开始于最近一个事件来读取每个事件。在读取事件时将重新计算所有1小时窗口。重新计算每一窗口中的平均值。这些操作的开销是,其中N=事件数目:O(N)从磁盘读取操作、O(N)“+”操作和4392(6*30.5*24)“/”操作。

根据本发明的实施例,以上情形可以通过以下方式处理。所有事件以5分钟的内部时间参考相对于根据实施例的数据容器结构存储和格式化,所述数据容器结构具有1小时窗口容器。读取每个窗口容器的元数据并且对于每个容器,在一系列5分钟时间表内完成清除和添加操作。开销是:从磁盘读取的数目减少到8%(仅读取每个1小时窗口中的1/125分钟时间表)并且随后写入(取决于实施方案,如果与读取相比所有数据保存在同一文件中并且写入可以仅通过元数据表中的更新完全清除和替换)。根据边界5分钟窗口中的事件数目减少“+”操作的数目(可以视为所有数据的8%)。

例如,本发明的实施例提供以下优点。提供实现源自数据流的存储数据的时间概念的装置和方法。提供用于数据窗口中的流分区的数据容器结构,所述数据容器结构允许通过记忆执行对流的计算循环优化。提供用于有效处理流上的离散更新的数据容器结构。提供用于基于窗口的控制的数据容器结构。提供用于组织流事件的支持分层格式的数据容器结构。提供用于支持事件函数和统计的数据容器结构。

尽管可能已经仅结合若干实施方案或实施例中的一个揭示本发明的特定特征或方面,但此类特征或方面可以与其它实施方案或实施例中的一个或多个其它特征或方面组合,只要对于任何给定或特定应用是有需要或有利的。此外,在一定程度上,术语“包含”、“有”、“具有”或这些词的其它变形在详细的说明书或权利要求书中使用,这类术语和术语“包括”是类似的,都是表示包含的含义。此外,术语“示例性”、“举例来说”和“例如”仅表示为实例,而不是最好的或最佳的。可以使用术语“耦合”和“连接”及其派生词。应理解,这些术语可用于指示两个元件彼此协作或交互,而不管其是直接物理或电气接触,还是彼此不直接接触。

虽然本文中已说明和描述特定方面,但所属领域的一般技术人员将了解多种替代和/或等效实施方案可替代所示和所描述的特定方面而不脱离本发明的范围。本申请案旨在覆盖本文论述的特定方面的任何修改或变化。

尽管以上权利要求书中的各元素是借助对应的标签按照特定顺序列举的,除非对权利要求的阐述另有暗示用于实现部分或所有这些元素的特定顺序,否则这些元素并不一定限于以所述特定顺序来实施。

通过以上教示,对于本领域技术人员来说,许多替代方案、修改及变体是显而易见的。当然,所属领域的技术人员容易认识到除本文所述的应用之外,还存在本发明的众多其它应用。虽然已参考一个或多个特定实施例描述了本发明,但所属领域的技术人员将认识到在不偏离本发明的范围的前提下,仍可以对本发明作出许多改变。因此,应理解,在所附权利要求书及其等效物的范围内,可以用不同于本文具体描述的方式来实践本发明。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1