CN109690486A - 用于处理数据流信息的设备和方法 - Google Patents
用于处理数据流信息的设备和方法 Download PDFInfo
- Publication number
- CN109690486A CN109690486A CN201680083556.9A CN201680083556A CN109690486A CN 109690486 A CN109690486 A CN 109690486A CN 201680083556 A CN201680083556 A CN 201680083556A CN 109690486 A CN109690486 A CN 109690486A
- Authority
- CN
- China
- Prior art keywords
- data
- data portion
- processing
- processing entities
- equipment
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种设备和方法,所述设备和方法均用于处理从数据流传输设备接收到的数据流的信息。所述设备的流数据分发实体确定所述数据流的数据部分组,并将每个数据部分组的所有数据部分中的每个数据部分分配给所述设备的处理实体集中的一个处理实体以待进一步处理。所述处理实体集中的每个处理实体在一个处理操作内处理一个数据部分组中的分配给所述处理实体的所有数据部分,并为所述数据部分组生成相应的部分结果。所述设备的最终处理实体在一个处理操作内处理由所述处理实体为所述数据部分组生成的所有部分结果,并为所述数据部分组生成最终结果。
Description
技术领域
本发明涉及一种设备和方法,该设备和方法均用于处理从数据流传输设备接收到的数据流的信息。此外,本发明涉及一种相应布置的计算机程序产品和一种相应布置的计算机可读介质。
背景技术
随着通过通信网络交换数据的设备不断增多,从一个设备传输到另一设备的数据流的处理变得愈加重要。由于数据流传输产生的数据量不断增加,因此需要快速处理数据流的信息或数据。
术语“流”或“数据流”是指数据部分的序列,这些数据部分也称为事件。数据部分或事件包括由传感器、机器或人类等不同流源生成的各类数据。在流或数据流中,按时间顺序提供数据部分或事件。流处理包括对流中的数据部分或事件执行数据处理过程或函数。
执行流处理或数据流信息处理的一种常见方法是在给定时间收集一定边界内的数据部分或事件,并将这些作为一个集合,相应的过程或函数将会应用到该集合。这样的临时集合称为窗口。
流处理引擎提供即时,即当数据部分(也称为事件)进入系统时,处理这些数据部分或事件的工具。在数据采集技术方面,流处理引擎能够支持来自流源的实时到达的数据,也能够加载先前存储在存储介质中的数据。数据通常称为事件,表示可能有不同逻辑含义的不同数据的聚合。这一数据在系统中按一定顺序生成和接收,最常见的是按时间顺序。因此,每个事件或数据部分都关联一个时间符号或至少序列顺序。通常,处理可按固定的时间间隔(例如,基于与事件关联的时间符号,或基于机器时间,或在事件到达时)触发。
通过对数据流的数据使用流引擎来应用的大部分数据或信息处理函数,在任意给定时刻都需要数据部分或事件的一个子集。即,将数据或信息处理函数应用于一个窗口上,窗口为时间方面或事件的逻辑顺序方面的包含给定边界的事件的定界。因此,窗口包括在特定时间段内发送或接收的数据流的数据部分或事件的子序列或数据流的数据部分或事件的集合。这些窗口的内容随事件流的逻辑时间的演化而变化(即,增加新的数据部分或事件,旧的数据部分或事件落到窗口的边界之外且被移除)。这些更新需要即时反映在窗口中以保证正确性,因为每个数据部分或事件的窗口上都可能触发计算。
主要问题在于,现有的流技术不提供在大型窗口上以很低的时延运行的默认方案。这将意味着能够在跨越一组分布式计算单元(实际上也可以是窗口)的单个窗口上实现相同的计算可能性。这代表一项挑战,因为这需要在所有的分布式单元上实现相同的时间演化(即,一次更新将会被应用到所有的分布式分区上且将具有相同的时间参考)。另外,需要聚合在分布式分区上计算出的部分结果,即便这些结果以高速率产生,且因为运行的目标时间粒度低以及机器间的时间不同步而无序到达。
因此,需要其它能够快速高效地处理数据流的方法论或方法。另外,应提供上述数据流处理,使得处理的效率和准确性不依赖于窗口的大小。此外,需要高效准确地处理甚至来自不同流源的至少两个数据流的数据部分或事件。
发明内容
因此,本发明的目的在于提供一种能够改进数据流处理的方法和设备。
本发明的目的通过所附独立权利要求中提供的方案实现。本发明的有利实施方式在本说明书的相应从属权利要求和/或附图中进一步限定。
本发明提出了一种能够对一组处理实体或窗口上的窗口处理进行分区的机制,所述处理实体或窗口一起提供了与单个窗口处理相同的逻辑功能。本发明的所述机制确保了针对分布式处理实体的协调机制。所述协调机制在任何时间点都提供一致、正确的处理结果。另外,根据本发明,流处理的计算即使在精细的时间粒度下也可执行。例如,可以以亚秒级频率触发计算。此外,本发明实现了对传输数据流以便进一步处理的多个设备中的海量数据集的低时延计算。本发明的方案允许在任意规模下运行以及使用异构基础设施资源。从这个意义上说,本发明为需要确定性分布式计算的复杂大数据场景提供了解决方案,从而克服了根本性挑战。因此,本发明聚焦于创建一种机制,在所述机制中,可以透明、自动地在多个子窗口或处理实体中对窗口数据进行分区,同时协调针对这些子窗口的计算,从而获得一致、最新且正确的结果。
根据本发明的第一方面,提供了一种用于对从数据流传输设备接收到的数据流的信息进行处理的设备,所述设备包括:流数据分发实体,用于确定所述数据流的数据部分组,并将每个数据部分组的所有数据部分中的每个数据部分分配给处理实体集中的一个处理实体以待进一步处理;所述处理实体集,其中,所述处理实体集的中每个处理实体用于在一个处理操作内处理一个数据部分组中的分配给所述处理实体的所有数据部分,并为所述数据部分组生成相应的部分结果;以及最终处理实体,用于在一个处理操作内处理由所述处理实体为所述数据部分组生成的所有部分结果,并为所述数据部分组生成最终结果。
根据所述第一方面,在所述设备的第一可能实施形式中,所述处理实体集包括至少两个处理实体。
根据如上所述第一方面或根据所述第一方面的所述第一实施形式,在所述设备的第二可能实施形式中,每个部分结果都是根据预定流程为所述数据部分组生成的。
根据如上所述第一方面或根据所述第一方面的任意前述实施形式,在所述设备的第三可能实施形式中,所述设备包括数据部分处理触发器,用于触发所述处理实体集中的所述处理实体来处理数据部分组的所有数据部分。
根据所述第一方面的所述第三实施形式,在所述设备的第四可能实施形式中,所述数据部分处理触发器包括子触发器集,所述子触发器集中的每个子触发器都与所述处理实体集中的一个或多个处理实体关联,每个处理实体都与所述子触发器集中的一个子触发器关联,所述子触发器集中的每个子触发器都用于触发与所述子触发器关联的处理实体在一个处理操作内处理数据部分组中的分配给处理实体的所有数据部分。
根据所述第一方面的所述第三或第四实施形式,在所述设备的第五可能实施形式中,所述流数据分发实体用于为所述数据流的所述数据部分组中的每个数据部分组传输开始消息到所述数据部分处理触发器,其中,所述开始消息表示确定了相应的数据部分组,且包括标识所述相应的数据部分组的组标识符;或者,所述流数据分发实体用于为所述数据流的所述数据部分组中的每个数据部分组传输所述开始消息到所述子触发器集中的每个子触发器。
根据所述第一方面的所述第五实施形式,在所述设备的第六可能实施形式中,所述数据部分处理触发器或所述子触发器集中的每个子触发器通过所述组标识符来识别所述数据部分组。
根据如上所述第一方面或根据所述第一方面的任意前述实施形式,在所述设备的第七可能实施形式中,所述设备包括存储实体,用于存储所述处理实体集中的所述处理实体提供的部分结果。
根据如上所述第一方面或根据所述第一方面的任意前述实施形式,在所述设备的第八可能实施形式中,所述设备包括部分结果处理触发器,用于触发所述最终处理实体来为所述数据部分组处理所述处理实体生成的所有部分结果。
根据所述第一方面的所述第八实施形式,在所述设备的第九可能实施形式中,所述部分结果处理触发器用于:在确定所述处理实体为所述数据部分组生成了所有部分结果后,触发所述处理。
根据所述第一方面的所述第七至第九实施形式之一,在所述设备的第十可能实施形式中,所述部分结果处理触发器用于通过确定为所述数据部分组生成的所有部分结果都已存储在所述存储实体中来确定所述处理实体已为所述数据部分组生成了所有部分结果。
此外,根据本发明的第二方面,提供了一种用于对从数据流传输设备接收到的数据流的信息进行处理的方法,所述方法包括以下步骤:确定所述数据流的数据部分组,并将每个数据部分组的所有数据部分中的每个数据部分分配给处理实体集中的一个处理实体以待进一步处理;所述处理实体集中的每个处理实体在一个相应的处理操作内处理一个数据部分组中的分配给所述处理实体的所有数据部分,并且所述处理实体集中的每个处理实体为所述数据部分组生成相应的部分结果;以及在一个处理操作内处理由所述处理实体为所述数据部分组生成的所有部分结果,并为所述数据部分组生成最终结果。一般而言,所述方法的步骤对应于所述设备执行的步骤或活动,所述步骤或活动在上文进行了介绍且将在下文详细阐述。通过所述方法,实现了本文描述的效果。
此外,根据第三方面,本发明涉及一种包括计算机可读程序代码的计算机程序产品,所述计算机可读程序代码用于使计算设备执行在上文介绍且将在下文详细阐述的方法步骤。
并且,根据第四方面,本发明涉及一种计算机可读记录介质,用于在其中存储所述计算机程序产品。
通过上文介绍且在下文详细阐述的本发明,能够高效地处理接收到的数据流。此外,本发明提供了确保准确地生成部分结果和最终结果的机制。这些机制涉及,例如,在一个处理操作内处理数据部分组的数据以及触发数据部分处理和部分结果处理。并且,流分发实体被配置为:对数据部分组中的数据部分进行均衡分发。这就能够高效快速地对数据流进行进一步处理,减少了处理实体在两个处理操作之间的等待时间。根据本发明的准确快速的数据流处理也使得使用最终处理实体确定的最终结果的其它设备能够快速、正常地运行。这在时间敏感系统中至关重要。这种系统包括例如这样的配置:在所述配置中,传感器执行测量并将数据流中的测量值传输到数据流处理设备,并且对所述测量值的分析或处理决定了所述配置或系统的进一步操作。然而,需要注意的是,本发明并不仅限于这种系统。本发明可在多个系统、配置或设备中使用,数据流在所述多个系统、配置或设备中进行处理,并且进一步操作或步骤的执行取决于所述数据流的所述处理生成的最终结果。
附图说明
结合所附附图,下面具体实施例的描述将阐述上述本发明的各方面及其实施形式,其中:
图1所示为根据一实施例的实施本发明的示例性配置。
图2所示为根据本发明一实施例的流传输设备的示例性配置和流处理设备的示例性配置。
图3所示为根据本发明一实施例的数据流处理设备的一个示例性配置。
图4所示为根据本发明一实施例的数据流处理方法的流程图。
图5所示为根据本发明一实施例的数据流处理设备的另一示例性配置。
图6所示为根据本发明一实施例的数据部分处理触发器的配置。
具体实施方式
通常需要注意的是本申请中描述的所有设置、设备、模块、组件、模型、元件、单元、实体以及方法等都可以由软件或硬件元件或其任意组合实现。由本申请中描述的各种实体执行的所有步骤以及描述的由各种实体执行的功能旨在表示相应实体用于或被配置为执行相应的步骤和功能。虽然在以下具体实施例的描述中,由通用实体执行的特定功能或步骤没有在执行特定步骤或功能的实体的具体元件的描述中反映,但是技术人员应该清楚的是这些方法和功能可以在各自的硬件或软件元件或其任意组合中实现。此外,本发明的方法及其各个步骤在各个描述的装置元件的功能中体现。
此外,除非有明确排除的组合,本文所描述的任意实施例以及任意实施例的特征都可以互相组合。
图1所示为根据一实施例的实施本发明的示例性配置。图1的配置包括多个设备101、102_1、102_2、……、102_m。其中一个设备是数据流处理设备101。图1的其它设备200_1、200_2、……、200_m为数据流传输设备102_1、102_2、……、102_m,这些设备将数据流传输到数据流处理设备101。图1示例性地示出了m个数据流传输设备102_1、102_2、……、102_m,其中m为大于等于1的整数。因此,数据流传输设备102_1、102_2、……、102_m的集合可包括一个数据流传输设备102_1、102_2、……、102_m或不止一个数据流传输设备102_1、102_2、……、102_m。
数据流传输设备102_1、102_2、……、102_m和数据流处理设备101一般用于互相通信,如图1的每个数据流传输设备102_1、102_2、……、102_m与流处理设备101之间的连线所示。这些连线大体上表示通信连接(即信道)。
图2所示为根据本发明一实施例的数据流传输设备102_i的示例性配置和数据流处理设备101的示例性配置。数据流传输设备102_i是图1的流传输设备102_1、102_2、……、102_m的示例性代表,其中,i为大于等于1且小于等于m(1≤i≤m)的整数。图2的实施例可与本文描述的一个或者多个实施例合并。
图2示出了数据流传输设备102_i和数据流处理设备101的实体,用于设备101和102_i之间的通信。数据流传输设备102_i包括:发送实体201,用于向数据流处理设备101发送数据,例如数据流;以及接收实体202,用于从数据流处理设备101接收数据。类似地,数据流处理设备101包括:发送实体203,用于向数据流传输设备102_i发送数据(例如数据流);以及接收实体204,用于从数据流传输设备102_i接收数据(例如数据流)。
当在本申请中提及数据流传输设备102_i对其它设备的发送或传输动作时,数据流传输设备102_i的发送实体201根据图2的配置执行相应的发送或传输动作。当在本申请中提及数据流传输设备102_i从其它设备的接收动作时,数据流传输设备102_i的接收实体202根据图2的配置执行相应的接收动作。
类似地,当在本申请中提及数据流处理设备101对其它设备的发送或传输动作时,数据流处理设备101的发送实体203根据图2的配置执行相应的发送或传输动作。当在本申请中提及数据流处理设备101从其它设备的接收动作时,数据流传输设备101的接收实体204根据图2的配置执行相应的接收动作。
图3所示为根据本发明一实施例的用于处理从数据流传输设备102_1、102_2、……、102_m、102_i接收到的数据流的信息的数据流处理设备101的一个示例性配置。
根据本实施例,数据流处理设备101包括:流数据分发实体301;处理实体集302,其包括处理实体302_1、302_2、……、302_n;以及最终处理实体303,其中n为大于等于2的整数。
数据流是数据流传输设备102_1、102_2、……、102_m、102_i传输的数据部分或事件的序列。这些数据部分/事件分别被划分为数据部分组或事件组。流数据分发实体301用于确定从数据流传输设备102_1、102_2、……、102_m、102_i接收的数据流的数据部分组,并将每个数据部分组的所有数据部分中的每个数据部分分配给处理实体集302中的一个处理实体302_1、302_2、……、302_n,如图1中从流数据分发实体301指向处理实体302_1、302_2、……、302_n的箭头所示。
根据一实施例,如果数据流的一个数据部分为某一数据流窗口覆盖的数据部分,则流数据分发实体301认为该数据部分属于某一数据部分组。针对数据流使用的,尤其是针对数据流处理使用的术语“窗口”通常是已知的。
根据一实施例,当流数据分发实体301确定数据部分组后,流数据分发实体301生成相应的组标识符。根据一实施例,组标识符为一个时期的标识符,在该时期内,创建了数据部分组的数据部分,数据部分组由数据流传输设备102_1、102_2、……、102_m、102_i发送或由数据流处理实体101接收。根据一实施例,每个时期开始于特定的时间(例如,数据流处理设备101测量或计算的时间),作为时期开始时间,且具有特定(例如,预定的)时长,从而具有特定的时期结束时间。根据另一实施例,时期标识符是序列号或递增的数字,因此组标识符也是序列号或递增的数字。因此,针对数据流处理实体101确定的每个新组,生成一个相应的时期标识符,时期标识符为前一时期的编号或标识符后面的数字。然后,将相应的组标识符设置为等于相应的时期标识符。
根据一实施例,每个数据部分包括一个指示,表示相应的数据部分属于哪个数据部分组,例如组标识符。
流数据分发实体301以一种均衡的方式分配或者分发数据部分组的数据部分。因此,流数据分发实体301对数据部分执行平均分发,其中处理实体集302中的每个处理实体302_1、302_2、……、302_n都接收到数据部分组中的等同或几乎等同数量的数据部分。这允许了计算资源的均衡,实现了高效的数据流处理。根据一实施例,流数据分发实体301通过执行循环算法来分发或分配数据部分组中的数据部分。根据这一算法,数据部分组中的数据部分按循环顺序分配至处理实体302_1、302_2、……、302_n,其中,所有的处理实体302_1、302_2、……、302_n的处理无优先级之分。然而,本发明不限于使用循环算法。根据本发明,可使用和执行其它支持在处理实体集302的处理实体302_1、302_2、……、302_n之间平均或近似平均地分发数据部分的算法。根据另一实施例,流数据分发实体301基于哈希分区来分发或分配数据部分组中的数据部分。例如,哈希直接在数据部分上进行计算。这使得无论什么应用或用例,以及无论本发明处理的数据的本质是什么,本发明都能得以实现。因此,该实现变得与使用数据流处理设备101的应用或用例无关。
在处理实体集302中,每个处理实体302_1、302_2、……、302_n都用于在一个处理操作内处理数据部分组中的分配给相应处理实体302_1、302_2、……、302_n的所有数据部分。通过在一个处理操作内处理数据部分组的所有数据部分,相应的处理实体302_1、302_2、……、302_n生成相应的部分结果。“在一个处理操作内”处理意味着处理实体302_1、302_2、……、302_n同时或一起处理数据部分组中的由流数据分发实体301分发或分配给处理实体302_1、302_2、……、302_n的所有数据部分。在一个处理操作内处理数据部分由各处理实体302_1、302_2、……、302_n根据预定或者预设的处理函数执行。该预定或者预设的处理函数取决于使用数据流处理设备101的应用或用例,指定了需如何处理数据部分组中的数据部分。例如,如果数据部分表示传感器数据,则处理函数指定将分别针对数据部分或传感器数据执行哪个分析和/或计算。具体而言,处理函数指定如何进行上述分析和/或上述计算。然而,本发明并不仅限于传感器数据。因此,可根据本发明实施或使用不同的处理函数。处理实体302_1、302_2、……、302_n执行的处理的结果被称为部分结果,因为处理实体302_1、302_2、……、302_n仅考虑和处理了数据部分组中的一部分数据部分。
如果数据部分组中的数据部分是数据流窗口的数据部分,则处理实体302_1、302_2、……、302_n表示整个窗口的一种子窗口,在这种子窗口中会计算和生成相应的部分结果。
最终处理实体303用于为数据部分组生成最终结果。为此,最终处理实体303在一个处理操作内处理由处理实体集302中的处理实体302_1、302_2、……、302_n为数据部分组生成的所有部分结果。在此,“在一个处理操作内”处理同样意味着最终处理实体303同时或一起处理由处理实体302_1、302_2、……、302_n计算出的数据部分组的所有部分结果。因此,最终处理实体303聚合了处理实体集302中的处理实体302_1、302_2、……、302_n确定和生成的所有部分结果,并生成相应的最终结果。
同样,在一个处理操作内处理部分结果由最终处理实体303根据相应的预定或预设的处理函数执行。此处,该预定或预设的处理函数取决于使用数据流处理设备101的应用或用例,指定了需如何处理数据部分组中的部分结果。最终处理实体303执行的处理的结果称为最终结果,因为它是针对数据部分组的所有部分结果确定的,因此也是针对数据部分组的所有数据部分确定的。
如果数据部分组的数据部分是数据流窗口的数据部分,则最终处理实体303计算和生成的最终结果是整个窗口处理的最终结果。
图4所示为根据本发明一实施例的用于处理从数据流传输设备102_1、102_2、……、102_m、102_i接收到的数据流的信息的数据流处理方法的流程图。根据本实施例,该数据流处理方法由数据流处理设备101执行。
在步骤401中,确定数据部分组,并将每个数据部分组的所有数据部分中的每个数据部分分配给处理实体集302中的一个处理实体302_1、302_2、……、302_n。步骤401如上文结合流数据分发实体301的动作所述的那样来执行。根据一实施例,步骤401由流数据分发实体301执行。
在步骤402中,数据部分组中的分配给处理实体集302中的处理实体302_1、302_2、……、302_n的所有数据部分都在一个相应的处理操作内处理,在该处理操作中,生成数据部分组的相应部分结果。步骤402如上文结合处理实体集302的处理实体302_1、302_2、……、302_n的动作所述的那样来执行。
在步骤403中,处理实体302_1、302_2、……、302_n为数据部分组生成的所有部分结果都在一个处理操作内处理,在该处理操作中,生成数据部分组的最终结果。步骤403如上文结合最终处理实体303的动作所述的那样来执行。根据一实施例,步骤403由最终处理实体303执行。
图5所示为根据本发明一实施例的数据流处理设备101的另一示例性配置。根据本实施例,数据流处理设备101包括数据部分处理触发器501,用于触发处理实体集302中的处理实体302_1、302_2、……、302_n来处理数据部分组中的所有数据部分。触发对数据部分组中的所有数据部分的处理通过从数据部分处理触发器501到处理实体302_1、302_2、……、302_n的箭头来指示。
根据本实施例,流数据分发实体301针对每个数据部分组传输开始消息到数据部分处理触发器501,其中,开始消息表示相应的数据部分组,具体地,表示相应数据部分组中的数据部分。因此,数据部分处理触发器501通过开始消息识别数据部分组,从而识别数据部分组中的数据部分。
根据一实施例,开始消息包括组标识符。组标识符为,例如,上述标识数据部分组的数据部分属于哪个时期的时期标识符。因此,数据部分处理触发器501通过时期标识符识别数据部分组,从而识别数据部分组中的数据部分。
数据部分处理触发器501按组触发数据部分处理。因此,数据部分处理触发器501触发一个数据部分组的中数据部分的处理,过一段时间后,触发另一个数据部分组中的数据部分的处理。如果数据部分组由时期标识符作为组标识符来标识,则另一个数据部分组就是其时期在先前触发的那个数据部分组的时期之后的数据部分组。
如上所述,根据一实施例,时期通过递增的数字表示。因此,数据部分处理触发器501会关联每一轮触发,从而通过时期编号或标识符,触发处理实体集302中的处理实体302_1、302_2、……、302_n来处理数据部分组中的数据部分。触发另一数据部分组的处理又包括触发具有后续时期编号或标识符的数据部分组的处理。通过这种方式,能够简单地处理数据部分组,从而支持高效地执行数据流处理。时期编号或标识符是递增的,因此是唯一的。这些时期编号的检查点,作为状态,能够确保发生故障时的备份和状态恢复。
触发数据部分组的数据部分的处理由数据部分处理触发器501基于时间完成。根据一实施例,触发的频率由用户设置。根据本实施例,数据流处理设备101接收表示时间段的用户输入。之后,数据流处理设备101配置数据部分处理触发器501根据时间段,例如用户输入中表示的时间段,周期性地触发处理实体302_1、302_2、……、302_n来周期性地处理数据部分组中的所有数据部分。每个触发步骤触发一个数据部分组中的所有数据部分的处理。触发频率可由用户按甚至非常精细的粒度(例如,用户设置的时间段可以设置为以毫秒为单位(例如,X毫秒))设置。通过这种方式,触发以及随后的数据部分处理都不按照机器时间完成,即,不按照给定时刻的流处理设备101的时间完成(例如,通过设置从当前时刻开始的时间段)。然而,因为机器时间不用于并行或并发执行组的数据部分处理,而时期编号可以,所以确保了在最终处理过程中正确地聚合相应的部分结果。使用机器时间会扰乱期望的并行或并发处理,因为每个处理实体302_1、302_2、……、302_n都可能以不同的时延使用机器时间。
图6所示为根据本发明一实施例的数据部分处理触发器601的配置。图6的实施例可与本文提出的任一实施例合并。根据图6的实施例,数据部分处理触发器601被配置为子触发器集,包括至少两个子触发器601_1、601_2、…、601_n。数据部分处理触发器601的每个子触发器601_1、601_2、…、601_n都与处理实体集302中的一个或多个处理实体302_1、302_2、……、302_n关联,并且每个处理实体302_1、302_2、……、302_n都与数据部分处理触发器601的一个子触发器601_1、601_2、…、601_n关联,其中,数据部分处理触发器601的每个子触发器601_1、601_2、…、601_n都用于触发与子触发器601_1、601_2、…、601_n关联的处理实体302_1、302_2、……、302_n在一个处理操作内处理一个数据部分组中的分配给处理实体302_1、302_2、……、302_n的所有数据部分。在图6中,提供了示例性的n个子触发器601_1、601_2、…、601_n,其中,可用的子触发器601_1、601_2、…、601_n的数量小于n,即,小于处理实体302_1、302_2、……、302_n的数量。
在图6的实施例中,每个子触发器601_1、601_2、…、601_n都以与图5的数据部分处理触发器501相同的方式配置。因此,上文结合图5的数据部分处理触发器501描述的每个特征也可结合子触发器601_1、601_2、…、601_n来实施。图5的数据部分处理触发器501和图6的子触发器601_1、601_2、…、601_n之间唯一的区别在于它们连接或关联的处理实体302_1、302_2、……、302_n的数量不同。图5的数据部分处理触发器501与处理实体集302中的所有处理实体302_1、302_2、……、302_n连接或关联,并触发处理实体集302中的所有处理实体302_1、302_2、……、302_n,而图6的每个子触发器601_1、601_2、…、601_n都与处理实体集302中的一个或多个处理实体302_1、302_2、……、302_n关联或连接,并只触发处理实体集302中的相应的一个或多个处理实体302_1、302_2、……、302_n。
回到图5的实施例,数据流处理设备101还包括部分结果处理触发器502,用于触发最终处理实体303来处理由处理实体集302中的处理实体302_1、302_2、……、302_n生成的所有部分结果。
部分结果处理触发器502监测处理实体集302中的处理实体302_1、302_2、……、302_n执行的数据部分处理。如果部分结果处理触发器502确定数据部分组中的所有数据部分都已处理完毕,即,处理实体集302中的每个处理实体302_1、302_2、……、302_n都为该数据部分组提供了部分结果,则部分结果处理触发器502将触发最终处理实体303来处理数据部分组的这些部分结果。
根据本实施例,部分结果处理触发器502通过存储实体503,例如缓冲区,来确定是否为一个数据部分组生成了所有的部分结果。处理实体302_1、302_2、……、302_n用于将生成的部分结果提供给存储实体503(例如缓冲区),存储实体503将接收到的部分结果存储在相应的组记录中,组记录中存储了为相应的组创建的所有部分结果。
部分结果处理触发器502监测存储实体503的记录。如果部分结果处理触发器502确定所有部分结果都已存储,则部分结果处理触发器502触发最终处理实体303在一个处理操作内处理所有部分结果。
部分结果是例如,临时存储在存储实体503中的。例如,当部分结果处理触发器502完成对组的部分结果的处理后,存储实体503中的该组的相应记录被删除。
如上所述,根据一实施例,如果数据部分组由数据部分组标识符来标识,其中该数据部分组标识符为时期标识符,则部分结果处理触发器502根据数据部分组标识符或时期标识符执行触发。更具体地,只有当存储实体503中提供了下一时期的所有部分结果时,部分结果处理触发器502才触发数据部分组的部分结果的处理。下一时期根据最终处理实体303当前处理的数据部分组的组标识符确定。组标识符等同于时期标识符,并且由于时期标识符是递增的数字,因此待处理的下一时期和下一数据部分组的标识符在当前处理的数据部分组或时期的标识符之后。
通过这种方式,无论部分结果的产生顺序如何,都能够保证结果的逻辑时间顺序。这通过触发序列中的下一个时期或者数据部分组来实现(即,当下一时期的所有部分结果都到达后,触发处理,且下一序列计数器被移动到下一时期或下一数据部分组)。标记下一时期的进度可以是作为故障下的状态的检查点。
如果存储实体503(例如缓冲区)用于触发数据部分组的部分结果的处理,则能够确保最终处理实体303在处理期间将所有部分结果聚合为最终结果的正确性。例如,部分结果的存储基于数据部分组的标识符或者基于时期标识符或序号。这些部分结果一直存储到例如触发或完成了相应数据部分组或时期的部分结果的处理。在触发点,提供了属于一个数据部分组或属于一个时期的所有相应的部分结果,并在最终处理实体303中处理和聚合。根据一实施例,当部分结果处理触发器502的组或时期的序号更新后,基于该组或时期的存储实体503清除所有已处理的数据。从实施的角度而言,这一机制可以很容易地通过采集数据结构来建立,例如通过含有列表或其它等同构造的列表来建立。
因此,本发明涉及一种设备和方法,该设备和方法均用于处理从数据流传输设备接收到的数据流的信息。设备的流数据分发实体确定数据流的数据部分组,并将每个数据部分组的所有数据部分中的每个数据部分分配给设备的处理实体集中的一个处理实体以待进一步处理。处理实体集中的每个处理实体在一个处理操作内处理数据部分组中的分配给该处理实体的所有数据部分,并为数据部分组生成相应的部分结果。设备的最终处理实体在一个处理操作内处理由处理实体为数据部分组生成的所有部分结果,并为数据部分组生成最终结果。
本发明适用于需要做出关于大数据集的判断的大量应用。本发明实现了对大数据集的低时延处理,不受单个机器的计算限制。所提出的机制可按自定义的并行程度扩展。这能够大大减少计算结果的计算时间和时延,增加处理的数据量。因此,由于自身的数据大小要求和速率而被禁止使用流处理范例的应用如今有了可行的方案。事实上,本发明为单个全局窗口(即,整个数据的算法的确定性装置)所提供的计算语义提供了处理实体集302中的处理实体302_1、302_2、……、302_n所实施的分布式分区窗口的性能,因此,这能够驱动并同步对同一逻辑时间上的分布式窗口的计算。
在此结合各种实施例描述了本发明。但本领域技术人员通过实践本发明,研究附图、本发明以及所附的权利要求,能够理解并获得公开实施例的其它变体。在权利要求书中,词语“包括”不排除其它元素或步骤,数量词“一”不排除多个。在仅凭某些措施被记载在相互不同的从属权利要求书中这个单纯的事实并不意味着这些措施的结合不能被有效地使用。
Claims (14)
1.一种用于对从数据流传输设备接收到的数据流的信息进行处理的设备,其特征在于,所述设备包括:
流数据分发实体,用于确定所述数据流的数据部分组,并将每个数据部分组的所有数据部分中的每个数据部分分配给处理实体集中的一个处理实体以待进一步处理;
所述处理实体集,其中,所述处理实体集中的每个处理实体用于在一个处理操作内处理一个数据部分组中的分配给所述处理实体的所有数据部分,并为所述数据部分组生成相应的部分结果;以及
最终处理实体,用于在一个处理操作内处理由所述处理实体为所述数据部分组生成的所有部分结果,并为所述数据部分组生成最终结果。
2.根据权利要求1所述的设备,其特征在于,所述处理实体集包括至少两个处理实体。
3.根据权利要求1或2所述的设备,其特征在于,每个部分结果都是根据预定流程为所述数据部分组生成的。
4.根据任一前述权利要求所述的设备,其特征在于,所述设备包括数据部分处理触发器,用于触发所述处理实体集中的所述处理实体来处理数据部分组的所有数据部分。
5.根据权利要求4所述的设备,其特征在于,所述数据部分处理触发器包括子触发器集,所述子触发器集中的每个子触发器都与所述处理实体集中的一个或多个处理实体关联,每个处理实体都与所述子触发器集中的一个子触发器关联,所述子触发器集中的每个子触发器都用于触发与所述子触发器关联的处理实体在一个处理操作内处理数据部分组中的分配给处理实体的所有数据部分。
6.根据权利要求4或5所述的设备,其特征在于:
所述流数据分发实体用于为所述数据流的所述数据部分组中的每个数据部分组传输开始消息到所述数据部分处理触发器,其中,所述开始消息表示确定了相应的数据部分组,且包括标识所述相应的数据部分组的组标识符;或者
所述流数据分发实体用于为所述数据流的所述数据部分组中的每个数据部分组传输所述开始消息到所述子触发器集中的每个子触发器。
7.根据权利要求6所述的设备,其特征在于,所述数据部分处理触发器或所述子触发器集中的每个子触发器通过所述组标识符来识别所述数据部分组。
8.根据任一前述权利要求所述的设备,其特征在于,所述设备包括存储实体,用于存储所述处理实体集中的所述处理实体提供的部分结果。
9.根据任一前述权利要求所述的设备,其特征在于,所述设备包括部分结果处理触发器,用于触发所述最终处理实体来为所述数据部分组处理所述处理实体生成的所有部分结果。
10.根据权利要求9所述的设备,其特征在于,所述部分结果处理触发器用于:在确定所述处理实体为所述数据部分组生成了所有部分结果后,触发所述处理。
11.根据权利要求8至10中任一项所述的设备,其特征在于,所述部分结果处理触发器用于通过确定为所述数据部分组生成的所有部分结果都已存储在所述存储实体中来确定所述处理实体已为所述数据部分组生成了所有部分结果。
12.一种用于对从数据流传输设备接收到的数据流的信息进行处理的方法,其特征在于,所述方法包括以下步骤:
确定所述数据流的数据部分组,并将每个数据部分组的所有数据部分中的每个数据部分分配给处理实体集中的一个处理实体以待进一步处理;
所述处理实体集中的每个处理实体在一个相应的处理操作内处理一个数据部分组中的分配给所述处理实体的所有数据部分,并且所述处理实体集中的每个处理实体为所述数据部分组生成相应的部分结果;以及
在一个处理操作内处理由所述处理实体为所述数据部分组生成的所有部分结果,并为所述数据部分组生成最终结果。
13.一种包括计算机可读程序代码的计算机程序产品,其特征在于,所述计算机可读程序代码用于使计算设备执行权利要求12的方法步骤。
14.一种用于在其中存储计算机程序产品的计算机可读记录介质,其特征在于,所述计算机程序产品包括用于使计算设备执行权利要求12的方法步骤的计算机可读程序代码。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2016/071277 WO2018046089A1 (en) | 2016-09-09 | 2016-09-09 | Device and method arranged to process information of a data stream |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109690486A true CN109690486A (zh) | 2019-04-26 |
Family
ID=56896548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680083556.9A Withdrawn CN109690486A (zh) | 2016-09-09 | 2016-09-09 | 用于处理数据流信息的设备和方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109690486A (zh) |
WO (1) | WO2018046089A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117728930A (zh) * | 2022-09-09 | 2024-03-19 | 华为技术有限公司 | 数据传输的方法和通信装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110093491A1 (en) * | 2009-10-21 | 2011-04-21 | Microsoft Corporation | Partitioned query execution in event processing systems |
US20110302164A1 (en) * | 2010-05-05 | 2011-12-08 | Saileshwar Krishnamurthy | Order-Independent Stream Query Processing |
CN104216766A (zh) * | 2014-08-26 | 2014-12-17 | 华为技术有限公司 | 对流数据进行处理的方法及装置 |
CN104320382A (zh) * | 2014-09-30 | 2015-01-28 | 华为技术有限公司 | 分布式的实时流处理装置、方法和单元 |
CN104915247A (zh) * | 2015-04-29 | 2015-09-16 | 上海瀚银信息技术有限公司 | 一种实时数据计算方法及系统 |
CN104978232A (zh) * | 2014-04-09 | 2015-10-14 | 阿里巴巴集团控股有限公司 | 用于实时流式计算的计算资源扩容、释放方法及其装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8707320B2 (en) * | 2010-02-25 | 2014-04-22 | Microsoft Corporation | Dynamic partitioning of data by occasionally doubling data chunk size for data-parallel applications |
-
2016
- 2016-09-09 CN CN201680083556.9A patent/CN109690486A/zh not_active Withdrawn
- 2016-09-09 WO PCT/EP2016/071277 patent/WO2018046089A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110093491A1 (en) * | 2009-10-21 | 2011-04-21 | Microsoft Corporation | Partitioned query execution in event processing systems |
US20110302164A1 (en) * | 2010-05-05 | 2011-12-08 | Saileshwar Krishnamurthy | Order-Independent Stream Query Processing |
CN104978232A (zh) * | 2014-04-09 | 2015-10-14 | 阿里巴巴集团控股有限公司 | 用于实时流式计算的计算资源扩容、释放方法及其装置 |
CN104216766A (zh) * | 2014-08-26 | 2014-12-17 | 华为技术有限公司 | 对流数据进行处理的方法及装置 |
CN104320382A (zh) * | 2014-09-30 | 2015-01-28 | 华为技术有限公司 | 分布式的实时流处理装置、方法和单元 |
CN104915247A (zh) * | 2015-04-29 | 2015-09-16 | 上海瀚银信息技术有限公司 | 一种实时数据计算方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2018046089A1 (en) | 2018-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104541247B (zh) | 用于调整云计算系统的系统和方法 | |
WO2018049872A1 (zh) | 微服务配置装置及方法 | |
CN108694109A (zh) | 同步硬件事件收集 | |
JP5313990B2 (ja) | 応答時間に基づいてサービスリソース消費を推定すること | |
US8887056B2 (en) | System and method for configuring cloud computing systems | |
CN109416639A (zh) | 用于在虚拟机上拟真网络流量模式的方法、系统以及计算机可读介质 | |
US20110172963A1 (en) | Methods and Apparatus for Predicting the Performance of a Multi-Tier Computer Software System | |
CN109696889A (zh) | 数据收集装置及数据收集方法 | |
WO2016095410A1 (zh) | 链路流量分担的方法和装置 | |
CN104598299A (zh) | 用于对每条接收数据执行聚合处理的系统和方法 | |
CN110308984A (zh) | 一种用于处理地理分布式数据的跨集群计算系统 | |
CN110019386A (zh) | 一种流数据处理方法及设备 | |
CN105553732B (zh) | 一种分布式网络模拟方法及系统 | |
Aceto et al. | On benchmarking for concurrent runtime verification | |
US9948570B2 (en) | Stream data processing method and stream data processing device | |
CN115714692A (zh) | 一种监测网卡的模型训练方法及其应用、系统和电子设备 | |
CN107924345A (zh) | 用于度量的聚合测量结果的数据存储区 | |
CN106062738B (zh) | 管理作业状态 | |
Mencagli et al. | Parallel continuous preference queries over out-of-order and bursty data streams | |
CN109690486A (zh) | 用于处理数据流信息的设备和方法 | |
US20060059258A1 (en) | Multi-layered measurement model for data collection and method for data collection using same | |
CN109117295A (zh) | 一种交易超时监控方法及装置 | |
CN107193839A (zh) | 数据聚合方法及装置 | |
KR101968575B1 (ko) | 실시간 병목 자동 분석 방법 및 이러한 방법을 수행하는 장치 | |
CN104301134B (zh) | 软件设计中基于海量定时器的管理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190426 |