CN104331270A - 一种流数据处理的方法、装置及系统 - Google Patents
一种流数据处理的方法、装置及系统 Download PDFInfo
- Publication number
- CN104331270A CN104331270A CN201410579293.3A CN201410579293A CN104331270A CN 104331270 A CN104331270 A CN 104331270A CN 201410579293 A CN201410579293 A CN 201410579293A CN 104331270 A CN104331270 A CN 104331270A
- Authority
- CN
- China
- Prior art keywords
- operator
- data
- timesharing
- lower limit
- batch
- 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.)
- Granted
Links
Abstract
本发明实施例提供一种流数据处理方法,该方法应用于流计算系统中的工作节点,所述方法包括:获取源算子的初始分时下限值;接收所述业务数据,将所述业务数据流封装成三元组流数据,所述三元组流数据携带有时间戳和唯一标识该业务数据的数据标识;根据所述三元组流数据及所述源算子的初始分时下限值构建小批量数据集mini-batch,所述时间戳用于指示所述构建过程中数据的有序性,所述唯一标识用于指示所述构建过程中数据的唯一性;对所述小批量数据集mini-batch进行处理,输出处理后的数据。本发明实施例基于三元组流数据的有序性和唯一性实现流计算系统的可靠性,基于初始分时下限值可以提高流计算系统的计算吞吐量,从而保证了流计算系统可靠性的同时又提升了流计算吞吐能力。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种流数据处理的方法、装置及系统。
背景技术
近年来,数据密集型业务已经得到越来越广泛的应用,这些业务的实例包括金融服务、网络监控、电信数据管理、传感检测等等。数据密集型业务产生的数据具有数据量大、快速、时变的特点,流计算系统在接收流数据时就开始对其进行处理,以保证实时性。
如图1所示,流计算系统通常包括一个主控节点(Master)和多个工作节点(worker),主控节点主要负责调度和管理各个工作节点,而工作节点是承载实际的数据处理操作的逻辑实体,工作节点具体通过调用若干个执行单元(PE,Process Element)来对数据进行处理,PE是业务逻辑的物理执行单元。
在流计算系统中,业务处理逻辑通常需要转化为流计算应用模型,流计算应用模型通常为无回路有向图(Directed Acyclic Graph,DAG),也称为应用流图,如图2所示,流计算应用模型主要由算子(operator)和流(stream)构成,其中算子(operator)是承载业务逻辑的数据处理单元,可被流计算平台分布式调度根据的最小单元,而流(stream)则是算子间交互的数据,如图1和图2所举示例,一个算子(operator)可能由多个物理执行单元PE来执行。
可以看出,流计算系统实质上是一个分布式集群系统,因此系统出现异常的概率较高,流计算系统发生故障可能会导致业务中断或状态数据丢失,为了保证流计算系统的可靠性,现有技术如Spark Streaming提出了一种拥有批量作业能力的流计算平台。Spark Streaming是将流式计算分解成一系列短小的批处理作业,本质思想是用批处理来模拟流,保证了流计算系统的可靠性,但是,Spark Streaming的流计算吞吐能力差,无法满足高速发展的数据密集型业务对流计算吞吐能力的要求。
发明内容
为了解决现有技术中流计算吞吐能力差的问题,本发明实施例提供的一种流数据处理的方法,将接收到的业务数据封装成三元组流数据,并根据初始分时下限值与三元组流数据构建小批量数据集,从而在保证流计算系统可靠性的同时提高流计算系统的计算吞吐量。本发明实施例还提供了相应的装置及系统。
本发明第一方面提供一种流数据处理方法,所述方法应用于流计算系统中的工作节点,所述工作节点上部署有至少一个源算子,以处理业务数据,所述方法包括:
获取所述源算子的初始分时下限值;
接收所述业务数据,将所述业务数据流封装成三元组流数据,所述三元组流数据携带有时间戳和唯一标识该业务数据的数据标识;
根据所述三元组流数据及所述源算子的初始分时下限值构建小批量数据集mini-batch,所述时间戳用于指示所述构建过程中数据的有序性,所述唯一标识用于指示所述构建过程中数据的唯一性;
对所述小批量数据集mini-batch进行处理,输出处理后的数据。
结合第一方面,在第一方面的第一种可能的实施方式中,在所述对所述小批量数据集mini-batch进行处理之后,所述方法还包括:
根据所述构建小批量数据集mini-batch的构建时间,和所述对所述小批量数据集mini-batch进行处理的处理时间,输出分时下限值调节因子,所述分时下限值调节因子用于调节所述源算子的下游算子的初始分时下限值;所述下游算子在所述源算子所在的工作节点上,或者,所述下游算子在所述源算子所在工作节点的下游工作节点上。
结合第一方面或者第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,所述将所述业务数据封装成三元组流数据包括:
为所述业务数据中的各个元组分别添加数据标识形成所述三元组流数据,所述数据标识至少包括时间戳和唯一标识。
结合第一方面、第一方面的第一种可能的实施方式和第一方面的第二种可能的实施方式中的任一一种实施方式,在第一方面的第三种可能的实施方式中,所述初始分时下限值是由所述流计算系统的主控节点预设的,所述初始分时下限值为用于构建小批量数据集mini-batch的时间阈值。
结合第一方面的第三种可能的实施方式,在第一方面的第四种可能的实施方式中,所述根据所述三元组流数据及所述源算子的初始分时下限值构建小批量数据集mini-batch,包括:
将所述三元组流数据按所述时间阈值进行分批构建所述小批量数据集mini-batch。
本发明第二方面提供一种流数据处理方法,所述方法应用于流计算系统中的工作节点,所述工作节点上部署有至少一个第一算子,以处理业务数据,所述方法包括:
获取所述第一算子初始分时下限值;
接收所述第一算子的上游算子输出的数据及第一分时下限值调节因子;
根据所述第一分时下限值调节因子对所述第一算子初始分时下限值进行调节,得到调节后的分时下限值;
根据所述上游算子输出的数据及所述调节后的分时下限值构建小批量数据集mini-batch;
对所述小批量数据集mini-batch进行处理,输出处理后的数据。
结合第二方面,在第二方面的第一种可能的实施方式中,在所述对所述小批量数据集mini-batch进行处理之后,所述方法还包括:
根据所述构建小批量数据集mini-batch的构建时间,和所述对所述小批量数据集mini-batch进行处理的处理时间,输出第二分时下限值调节因子,所述第二分时下限值调节因子用于调节所述第一算子的下游算子的初始分时下限值;所述下游算子在所述第一算子所在的工作节点上,或者,所述下游算子在所述第一算子所在的工作节点的下游工作节点上。
结合第二方面或第二方面的第一种可能的实施方式,在第二方面的第二种可能的实施方式中,所述上游算子输出的数据为经过封装的流数据,所述经过封装的流数据中包括多个元组,所述多个元组中各元组分别包含该元组的时间戳和唯一标识,所述时间戳用于指示所述小批量数据集mini-batch构建过程中数据的有序性,所述唯一标识用于指示所述小批量数据集mini-batch构建过程中数据的唯一性。
结合第二方面、第二方面的第一种可能的实施方式和第二方面的第二种可能的实施方式中任一一种可能的实施方式,在第二方面的第三种可能的实施方式中,所述初始分时下限值是由所述流计算系统的主控节点预设的,所述初始分时下限值为用于构建小批量数据集mini-batch的时间阈值。
结合第二方面的第三种可能的实施方式,在第二方面的第四种可能的实施方式,所述根据所述上游算子输出的数据及所述调节后的分时下限值构建小批量数据集mini-batch,包括:
将所述上游算子输出的数据按所述时间阈值进行分批构建所述小批量数据集mini-batch。
本发明第三方面提供、一种流数据处理装置,所述装置应用于流计算系统,所述装置上部署有至少一个源算子,以处理业务数据,所述装置包括:
获取单元,用于获取所述源算子的初始分时下限值;
接收单元,用于接收所述业务数据;
封装单元,用于将所述业务数据流封装成三元组流数据,所述三元组流数据携带有时间戳和唯一标识该业务数据的数据标识;
构建单元,用于根据所述三元组流数据及所述源算子的初始分时下限值构建小批量数据集mini-batch,所述时间戳用于指示所述构建过程中数据的有序性,所述唯一标识用于指示所述构建过程中数据的唯一性;
处理单元,用于对所述小批量数据集mini-batch进行处理得到处理后的数据;
输出单元,用于输出所述处理后的数据。
结合第三方面,在第三方面的第一种可能的实施方式中,所述装置还包括:
调节因子生成单元,用于根据所述构建小批量数据集mini-batch的构建时间,和所述对所述小批量数据集mini-batch进行处理的处理时间,生成分时下限值调节因子,所述分时下限值调节因子用于调节所述源算子的下游算子的初始分时下限值;所述下游算子在所述源算子所在的工作节点上,或者,所述下游算子在所述源算子所在工作节点的下游工作节点上。
结合第三方面或者第三方面的第一种可能的实施方式,在第三方面的第二种可能的实施方式中,所述封装单元具体用于:
为所述业务数据中的各个元组分别添加数据标识形成所述三元组流数据,所述数据标识至少包括时间戳和唯一标识。
结合第三方面、第三方面的第一种可能的实施方式和第三方面的第二种可能的实施方式中的任一一种可能的实施方式,在第三方面的第三种可能的实施方式中,所述初始分时下限值是由所述主控节点预设的,所述初始分时下限值为用于构建小批量数据集mini-batch的时间阈值。
结合第三方面的第三种可能的实施方式,在第三方面的第四种可能的实施方式中,所述构建单元具体用于:
将所述三元组流数据按所述时间阈值进行分批构建所述小批量数据集mini-batch。
本发明第四方面提供一种流数据处理装置,所述装置应用于流计算系统,所述装置上部署有至少一个第一算子,以处理业务数据,所述装置包括:
获取单元,用于获取所述第一算子初始分时下限值;
接收单元,用于接收所述第一算子的上游算子输出的数据及第一分时下限值调节因子;
调节单元,用于根据所述第一分时下限值调节因子对所述第一算子初始分时下限值进行调节,得到调节后的分时下限值;
构建单元,用于根据所述上游算子输出的数据及所述调节后的分时下限值构建小批量数据集mini-batch;
处理单元,用于对所述小批量数据集mini-batch进行处理得到处理后的数据;
输出单元,用于输出所述处理后的数据。结合第四方面,在第四方面的第一种可能的实施方式中,所述装置还包括:
调节因子生成单元,用于根据所述构建小批量数据集mini-batch的构建时间,和所述对所述小批量数据集mini-batch进行处理的处理时间,生成第二分时下限值调节因子,所述第二分时下限值调节因子用于调节所述第一算子的下游算子的初始分时下限值;所述下游算子在所述第一算子所在的工作节点上,或者,所述下游算子在所述第一算子所在的工作节点的下游工作节点上。
结合第四方面或第四方面的第一种可能的实施方式,在第四方面的第二种可能的实施方式中,所述上游算子输出的数据为经过封装的流数据,所述经过封装的流数据中包括多个元组,所述多个元组中各元组分别包含该元组的时间戳和唯一标识,所述时间戳用于指示所述小批量数据集mini-batch构建过程中数据的有序性,所述唯一标识用于指示所述小批量数据集mini-batch构建过程中数据的唯一性。
结合第四方面、第四方面的第一种可能的实施方式和第四方面的第二种可能的实施方式中的任一一种可能的实施方式,在第四方面的第三种可能的实施方式中,所述初始分时下限值是由所述主控节点预设的,所述初始分时下限值为用于构建小批量数据集mini-batch的时间阈值。
结合第四方面的第三种可能的实施方式,在第四方面的第四种可能的实施方式中,所述构建单元具体用于:
将所述上游算子输出的数据按所述时间阈值进行分批构建所述小批量数据集mini-batch。
本发明第五方面提供一种流计算系统,所述系统包括主控节点和多个工作节点:
所述多个工作节点中的一个工作节点为如权利要求10至15任一项所述的流数据处理装置,所述多个工作节点中的其他工作节点为如权利要求15至20任一项所述的流数据处理装置;
所述主控节点用于:根据流计算应用模型部署一个或多个算子到所述多个工作节点以处理业务数据,所述流计算应用模型为针对所述业务预先建立的包含算子和算子间数据流走向的逻辑关系图,其中每个所述算子用于承载所述业务对应的处理逻辑中的部分处理逻辑;
所述多个工作节点通过所述算子和算子间数据流走向的逻辑关系图进行数据连接。
本发明实施例将接收到的业务数据进行封装形成三元组流数据,其中三元组流数据携带有时间戳和唯一标识该业务数据的数据标识,并根据三元组流数据和初始分时下限值构建小批量数据集,所述时间戳用于指示所述构建过程中数据的有序性,所述唯一标识用于指示所述构建过程中数据的唯一性,基于有序性和唯一性可以保证流计算系统的可靠性,基于初始分时下限值可以提高流计算系统的计算吞吐量,进一步的,本发明实施例中根据所述构建小批量数据集mini-batch的构建时间,和所述对所述小批量数据集mini-batch进行处理的处理时间,输出分时下限值调节因子,所述分时下限值调节因子用于调节所述源算子的下游算子的初始分时下限值,基于该分时下限值调节因子对下游算子的初始分时下限值进行实时动态调节,从而用实时的相对时间打破下游算子对绝对时间的依赖,从而进一步提升计算吞吐量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中流计算系统示意图;
图2是本发明实施例中流计算应用模型示意图;
图3是本发明实施例中包含流计算应用模型的流计算系统示意图;
图4是本发明实施例中流计算应用模型的另一示意图;
图5是本发明实施例中流数据处理方法的实施例流程示意图;
图6是本发明实施例中流数据处理方法的另一实施例流程示意图;
图7是本发明实施例中流数据处理方法的另一实施例流程示意图;
图8是本发明实施例中流数据处理方法的另一实施例流程示意图;
图9是本发明实施例中流数据处理方法的另一实施例流程示意图;
图10是本发明实施例中流数据处理方法的另一实施例流程示意图;
图11是本发明实施例中流数据处理装置的一实施例示意图;
图12是本发明实施例中流数据处理装置的另一实施例示意图;
图13是本发明实施例中流数据处理装置的另一实施例示意图;
图14是本发明实施例中流数据处理装置的另一实施例示意图;
图15是本发明实施例中流数据处理装置的另一实施例示意图。
具体实施方式
本发明实施例提供一种流数据处理的方法,将接收到的业务数据进行封装形成三元组流数据,并根据三元组流数据和初始分时下限值构建小批量数据集,从而可以在保证流计算系统的可靠性的同时,提高流计算系统的计算吞吐量。本发明实施例还提供了相应的装置及系统。以下分别进行详细说明。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明实施例中的流计算系统包括:主控节点和工作节点,在集群部署时,所述主控节点通常有一个,但会有备用主控节点,工作节点可以有一个或多个,主控节点可以是与工作节点分离的物理节点,在单机部署时,主控节点和工作节点可以是部署在同一个物理节点上的主控逻辑单元。流计算系统用于调度并处理业务,具体过程是,主控节点负责将业务调度到工作节点上进行处理。一台物理节点可以包括一个工作节点,也可以包括多个工作节点,一台物理节点包括的工作节点的数量取决于该物理节点的硬件物理资源。可以将一个工作节点理解为是一份硬件物理资源。属于同一台物理节点中的工作节点间采用进程通信的方式进行通信,属于不同物理节点中的工作节点间采用网络通信的方式进行通信。流计算系统可以将业务调度到工作节点上进行处理。针对运行在流计算系统上的业务可以预先建立流计算应用模型,所述流计算应用模型为针对所述业务预先建立的包含算子和算子间数据流走向的逻辑关系图,所述流计算应用模型中的算子承载有用于处理所述业务中的与所述算子对应的子业务的计算逻辑。本发明实施例中的物理节点指的是物理设备。本发明实施例中所述的业务数据为与所述流计算应用模型相关的业务数据,下文不再赘述。
如图3所示,流计算系统包括主控节点、工作节点1、工作节点2和工作节点3。工作节点1、工作节点2属于物理节点1,工作节点3属于物理节点2。
主控节点将图3所示的流计算应用模型调度到工作节点1、工作节点2和工作节点3这三个工作节点上进行业务处理,所述业务处理也可以称为流数据处理。图3所示的流计算应用模型为包含P1至P10的十个算子以及这十个算子之间的数据流走向的逻辑关系图。
被调度到工作节点1上的算子P1、P2和P3与被调度到工作节点2上的算子P4、P5和P6之间通过进程方式通信,P1、P2和P3,以及P4、P5和P6与被调度到工作节点3上的算子P7、P8、P9和P10之间通过网络通信。
在流计算系统中,主控节点与工作节点的工作过程可以理解为:
主控节点获取所述业务的流计算应用模型,所述流计算应用模型为针对所述业务预先建立的包含算子和算子间数据流走向的逻辑关系图,每个算子用于承载所述业务对应的处理逻辑中的部分处理逻辑,将所述流计算应用模型中每个算子调度到所述工作节点上,所述工作节点通过根据所述每个算子所承载的部分处理逻辑对所述业务的数据进行处理。
所述流计算应用模型为用户或开发人员根据所述业务预先建立的,流计算应用模型用于表示流式应用的逻辑模型,流计算应用模型可以参阅图4进行理解,如图4所示的流计算应用模型包括10个算子P1-P10,其中箭头的方向为数据流的走向,P1为数据流走向上的第一个算子,可以称P1为源算子,
请参阅图5,本发明实施例提供一种流数据处理方法,所述方法应用于流计算系统中的工作节点,所述工作节点上部署有至少一个源算子,以处理业务数据,所述方法包括:
101、获取所述源算子的初始分时下限值。
102、接收所述业务数据,将所述业务数据流封装成三元组流数据,所述三元组流数据携带有时间戳和唯一标识该业务数据的数据标识。
103、根据所述三元组流数据及所述源算子的初始分时下限值构建小批量数据集mini-batch,所述时间戳用于指示所述构建过程中数据的有序性,所述唯一标识用于指示所述构建过程中数据的唯一性。
104、对所述小批量数据集mini-batch进行处理,输出处理后的数据。
值得说明的是,可选的,在具体的实施过程中,所述初始分时下限值可以为用于构建小批量数据集mini-batch的时间阈值,该时间阈值可以由主控节点预设,但并不限定由主控节点预设。
本发明实施例将接收到的业务数据进行封装形成三元组流数据,其中三元组流数据携带有时间戳和唯一标识该业务数据的的数据标识,并根据三元组流数据和初始分时下限值构建小批量数据集,所述时间戳用于指示所述构建过程中数据的有序性,所述唯一标识用于指示所述构建过程中数据的唯一性,基于有序性和唯一性可以保证流计算系统的可靠性,基于初始分时下限值可以提高流计算系统的计算吞吐量,从而保证了流计算系统可靠性的同时又提升了流计算吞吐能力。
请参考图6,本发明实施例提供一种流数据处理方法,所述方法在图5对应的实施例的基础上增加步骤105、根据所述构建小批量数据集mini-batch的构建时间,和所述对所述小批量数据集mini-batch进行处理的处理时间,输出分时下限值调节因子,所述分时下限值调节因子用于调节所述源算子的下游算子的初始分时下限值;所述下游算子在所述源算子所在的工作节点上,或者,所述下游算子在所述源算子所在工作节点的下游工作节点上。需要说明的是,该步骤105发生在对小批量数据集mini-batch处理后,至于输出分时下限值调节因子的和输出处理后数据的时间顺序本发明实施例并不做限定。
本发明实施例中根据所述构建小批量数据集mini-batch的构建时间,和所述对所述小批量数据集mini-batch进行处理的处理时间,输出分时下限值调节因子,所述分时下限值调节因子用于调节所述源算子的下游算子的初始分时下限值,基于该分时下限值调节因子对下游算子的初始分时下限值进行实时动态调节,从而用实时的相对时间打破下游算子对绝对时间的依赖,最大化CPU的利用,从而大幅提升计算吞吐量。
请参考图7,在本发明的另一个实施例中提供一种流数据处理方法,所述方法应用于流计算系统中的工作节点,所述工作节点上部署有至少一个源算子,以处理业务数据,所述方法包括:
201、获取所述源算子的初始分时下限值。
具体的,所述初始分时下限值是由所述流计算系统的主控节点预设的,所述初始分时下限值为用于构建小批量数据集mini-batch的时间阈值。此处的预设可以是由主控节点根据具体业务需求的经验值来设定。
202、接收所述业务数据,将所述业务数据流封装成三元组流数据,所述三元组流数据携带有时间戳和唯一标识该业务数据的数据标识。
具体的,所述封装可以包括:为所述业务数据中的各个元组分别添加数据标识形成所述三元组流数据,所述数据标识至少包括时间戳和唯一标识。值得说明的是,通常这样的封装为每个数据添加的标识还可以有更多,比如数据索引,流ID等,此处不做限定。
203、根据所述三元组流数据及所述源算子的初始分时下限值构建小批量数据集mini-batch,所述时间戳用于指示所述构建过程中数据的有序性,所述唯一标识用于指示所述构建过程中数据的唯一性。具体的,该步骤可以为将所述三元组流数据按所述时间阈值进行分批构建所述小批量数据集mini-batch。例如,以一段时间的流数据为基础,假设该一段时间为60分钟,将该60分钟内流入的流数据以每一段时间阈值(假设为2分钟)为构建因素进行分批,如此则分批后每两分钟内的数据为一个小批量数据集mini-batch。值得说明的是,本发明实施例中所述三元组流数据不包含数量关系,即所述三元组流数据可以为一个或多个,下文涉及“根据所述三元组流数据及所述源算子的初始分时下限值构建小批量数据集mini-batch”的内容处时,所述的三元组数据流也是为一个或多个的三元组流数据,为了便于表述,我们在203及其它实施例中对应203步骤的相应位置将其直接表述为不带有数量含义的三元组流数据,并不代表只有一个三元组流数据,而是可以为一个或多个三元组流数据,下文不再赘述。
204、对所述小批量数据集mini-batch进行处理,输出处理后的数据。
此处的处理方法根据业务需求的不同可以有不同,所述业务需求可以是数据过滤,异常检测等等,本发明实施例不对具体业务需求做限定,此处只为举例说明。
205、根据所述构建小批量数据集mini-batch的构建时间,和所述对所述小批量数据集mini-batch进行处理的处理时间,输出分时下限值调节因子,所述分时下限值调节因子用于调节所述源算子的下游算子的初始分时下限值;所述下游算子在所述源算子所在的工作节点上,或者,所述下游算子在所述源算子所在工作节点的下游工作节点上。
在具体的实现过程中,通常认为构建时间和处理时间相匹配的时候是计算性能最佳的,即是CPU利用最大化的时候,当构建时间大于处理时间,比如构建需要十秒,处理时间只需要五秒,则CPU空闲5秒浪费资源,再比如构建时间需要十秒,处理时间需要十二秒,则CPU处理不过来造成计算性能降低,因此工作节点可以根据当前处理算子的构建时间和处理时间生成分时下限值调节因子,以对该当前处理算子的下游算子的初始分时下限值起到调节作用,在具体的实现过程中,最终的调节结果可以有很多因素促使,本发明实施例中的分时下限值调节因子作为一个充分条件提供重要的调节因素。
本发明实施例将接收到的业务数据进行封装形成三元组流数据,其中三元组流数据携带有时间戳和唯一标识该业务数据的数据标识,并根据三元组流数据和初始分时下限值构建小批量数据集,所述时间戳用于指示所述构建过程中数据的有序性,所述唯一标识用于指示所述构建过程中数据的唯一性,基于有序性和唯一性可以保证流计算系统的可靠性,基于初始分时下限值可以提高流计算系统的计算吞吐量,进一步的,本发明实施例中根据所述构建小批量数据集mini-batch的构建时间,和所述对所述小批量数据集mini-batch进行处理的处理时间,输出分时下限值调节因子,所述分时下限值调节因子用于调节所述源算子的下游算子的初始分时下限值,基于该分时下限值调节因子对下游算子的初始分时下限值进行实时动态调节,从而用实时的相对时间打破下游算子对绝对时间的依赖,从而进一步提升计算吞吐量。
请参考图8,本发明实施例提供一种流数据处理方法,所述方法应用于流计算系统中的工作节点,所述工作节点上部署有至少一个第一算子,以处理业务数据,所述方法包括:
301、获取所述第一算子初始分时下限值;
302、接收所述第一算子的上游算子输出的数据及第一分时下限值调节因子;
303、根据所述第一分时下限值调节因子对所述第一算子初始分时下限值进行调节,得到调节后的分时下限值;
304、根据所述上游算子输出的数据及所述调节后的分时下限值构建小批量数据集mini-batch;
305、对所述小批量数据集mini-batch进行处理,输出处理后的数据。
本发明实施例根据上游算子输出的第一分时下限值调节因子对第一算子初始分时下限值进行调节,得到调节后的分时下限值,并根据该调节后的分时下限值对接收到的上游算子输出的数据进行小批量数据集mini-batch的构建,通过上游算子发送的第一分时下限值调节因子对下游算子进行实时动态调节,从而用实时的相对时间打破下游算子对绝对时间的依赖,从而提升计算吞吐量。
请参考图9,本发明实施例提供一种流数据处理方法,所述方法在图8对应的实施例的基础上增加步骤306、根据所述构建小批量数据集mini-batch的构建时间,和所述对所述小批量数据集mini-batch进行处理的处理时间,输出第二分时下限值调节因子,所述第二分时下限值调节因子用于调节所述第一算子的下游算子的初始分时下限值;所述下游算子在所述第一算子所在的工作节点上,或者,所述下游算子在所述第一算子所在的工作节点的下游工作节点上。
本发明实施例根据第一算子构建小批量数据集mini-batch的构建时间和对所述小批量数据集mini-batch进行处理的处理时间,输出第二分时下限值调节因子,以用于调节所述第一算子的下游算子的初始分时下限值,由此实现上游算子对下游算子的实时动态调节,从而用实时的相对时间打破下游算子对绝对时间的依赖,从而提升计算吞吐量。
请参考图10,在本发明的另一个实施例中提供一种流数据处理方法,所述方法应用于流计算系统中的工作节点,所述工作节点上部署有至少一个第一算子,以处理业务数据,所述方法包括:
401、获取所述第一算子初始分时下限值。
具体的,所述初始分时下限值可以是由所述主控节点预设的,所述初始分时下限值为用于构建小批量数据集mini-batch的时间阈值。此处的预设可以是由主控节点根据具体业务需求的经验值来设定。
402、接收所述第一算子的上游算子输出的数据及第一分时下限值调节因子。
具体的,所述上游算子输出的数据可以为经过封装的流数据,所述经过封装的流数据中包括多个元组,所述多个元组中各元组分别包含该元组的时间戳和唯一标识,所述时间戳用于指示所述小批量数据集mini-batch构建过程中数据的有序性,所述唯一标识用于指示所述小批量数据集mini-batch构建过程中数据的唯一性。值得说明的是,通常这样的封装为每个数据添加的标识还可以有更多,比如数据索引,流ID等,此处不做限定。
403、根据所述第一分时下限值调节因子对所述第一算子初始分时下限值进行调节,得到调节后的分时下限值。
根据上游算子输出的第一分时下限值调节因子对第一算子初始分时下限值进行调节,使得第一算子构建mini-batch的构建时间和处理时间不再依赖主控节点的预设的绝对时间,而是根据上游算子的情况对下游算子做出一个预估的调节方向,使得下游算子能够基于此做出有效反应从而改绝对时间为相对时间,尽可能最大化CPU的利用率提升计算吞吐量。
404、根据所述上游算子输出的数据及所述调节后的分时下限值构建小批量数据集mini-batch。
具体的,所述构建可以包括:将所述上游算子输出的数据按所述时间阈值进行分批构建所述小批量数据集mini-batch。
405、对所述小批量数据集mini-batch进行处理,输出处理后的数据。
此处的处理方法根据业务需求的不同可以有不同,所述业务需求可以是数据过滤,异常检测等等,本发明实施例不对具体业务需求做限定,此处只为举例说明。
406、根据所述构建小批量数据集mini-batch的构建时间,和所述对所述小批量数据集mini-batch进行处理的处理时间,输出第二分时下限值调节因子,所述第二分时下限值调节因子用于调节所述第一算子的下游算子的初始分时下限值;所述下游算子在所述第一算子所在的工作节点上,或者,所述下游算子在所述第一算子所在的工作节点的下游工作节点上。
在具体的实现过程中,通常认为构建时间和处理时间相匹配的时候是计算性能最佳的,即是CPU利用最大化的时候,当构建时间大于处理时间,比如构建需要十秒,处理时间只需要五秒,则CPU空闲5秒浪费资源,再比如构建时间需要十秒,处理时间需要十二秒,则CPU处理不过来造成计算性能降低,因此工作节点可以根据当前处理算子的构建时间和处理时间生成分时下限值调节因子,以对该当前处理算子的下游算子的初始分时下限值起到调节作用,在具体的实现过程中,最终的调节结果可以有很多因素促使,本发明实施例中的分时下限值调节因子作为一个充分条件提供重要的调节因素。值得说明的是,在本发明实施例中所述当前处理算子为所述第一算子。
本发明实施例根据上游算子输出的第一分时下限值调节因子对第一算子初始分时下限值进行调节,得到调节后的分时下限值,并根据该调节后的分时下限值对接收到的上游算子输出的数据进行小批量数据集mini-batch的构建,通过上游算子发送的第一分时下限值调节因子对下游算子进行实时动态调节,从而用实时的相对时间打破下游算子对绝对时间的依赖,最大化CPU的利用率从而提升计算吞吐量。进一步的,本发明实施例中第一算子还可以根据所述构建小批量数据集mini-batch的构建时间,和所述对所述小批量数据集mini-batch进行处理的处理时间,输出第二分时下限值调节因子,以用于调节所述第一算子的下游算子的初始分时下限值,由此将实时动态调节可持续的传递下去,实现整体的实时动态调节,以最大化CPU的利用率从而大幅提升流计算系统的计算吞吐量。
请参考图11,本发明实施例提供一种流数据处理装置500,所述装置500应用于流计算系统,所述装置500上部署有至少一个源算子,以处理业务数据,所述装置500包括:
获取单元501,用于获取所述源算子的初始分时下限值。
接收单元502,用于接收所述业务数据。
封装单元503,用于将所述业务数据流封装成三元组流数据,所述三元组流数据携带有时间戳和唯一标识该业务数据的数据标识。
构建单元504,用于根据所述三元组流数据及所述源算子的初始分时下限值构建小批量数据集mini-batch,所述时间戳用于指示所述构建过程中数据的有序性,所述唯一标识用于指示所述构建过程中数据的唯一性。
处理单元505,用于对所述小批量数据集mini-batch进行处理得到处理后的数据。
输出单元506、用于输出处理后的数据。
本发明实施例提供的数据流处理装置500,所述装置500应用于流计算系统,所述装置上部署有至少一个源算子,以处理业务数据。所述装置500包括获取单元501、接收单元502、封装单元503、构建单元504、处理单元505、输出单元506,其中:获取单元501用于获取所述源算子的初始分时下限值。接收单元502用于接收所述业务数据。封装单元503用于将所述业务数据流封装成三元组流数据,所述三元组流数据携带有时间戳和唯一标识该业务数据的数据标识。构建单元504用于根据所述三元组流数据及所述源算子的初始分时下限值构建小批量数据集mini-batch,所述时间戳用于指示所述构建过程中数据的有序性,所述唯一标识用于指示所述构建过程中数据的唯一性。处理单元505用于对所述小批量数据集mini-batch进行处理。输出单元506输出处理后的数据。本发明实施例中通过封装单元503将接收到的业务数据进行封装形成三元组流数据,其中三元组流数据携带有时间戳和唯一标识该业务数据的的数据标识,并通过构建单元504根据三元组流数据和初始分时下限值构建小批量数据集,所述时间戳用于指示所述构建过程中数据的有序性,所述唯一标识用于指示所述构建过程中数据的唯一性,基于有序性和唯一性可以保证流计算系统的可靠性,基于初始分时下限值可以提高流计算系统的计算吞吐量,从而保证了流计算系统可靠性的同时又提升了流计算吞吐能力。
值得说明的是,所述装置上部署有至少一个源算子,以处理业务数据,在具体的实施过程中可以由主控节点根据流计算应用模型部署一个或多个算子到所述装置500,所述一个或多个算子中包括至少一个源算子。
请参考图12,所述装置500还包括调节因子生成单元507、所述调节因子生成单元507用于根据所述构建小批量数据集mini-batch的构建时间,和所述对所述小批量数据集mini-batch进行处理的处理时间,生成分时下限值调节因子,所述分时下限值调节因子用于通过输出单元506输出给所述源算子的下游算子,以调节所述下游算子的初始分时下限值;所述下游算子在所述源算子所在的工作节点上,或者,所述下游算子在所述源算子所在工作节点的下游工作节点上。
本发明实施例通过所述调节因子生成单元507根据所述构建小批量数据集mini-batch的构建时间,和所述对所述小批量数据集mini-batch进行处理的处理时间,生成分时下限值调节因子,以用于输出给所述源算子的下游算子,以调节所述下游算子的初始分时下限值,基于该分时下限值调节因子对下游算子的初始分时下限值进行实时动态调节,从而用实时的相对时间打破下游算子对绝对时间的依赖,最大化CPU的利用,从而大幅提升计算吞吐量。
请参考图13,本发明实施例提供一种流数据处理装置600,所述装置600应用于流计算系统,所述装置600上部署有至少一个第一算子,以处理业务数据,所述装置600包括:
获取单元601,用于获取所述第一算子初始分时下限值;
接收单元602,用于接收所述第一算子的上游算子输出的数据及第一分时下限值调节因子;
调节单元603,用于根据所述第一分时下限值调节因子对所述第一算子初始分时下限值进行调节,得到调节后的分时下限值;
构建单元604,用于根据所述上游算子输出的数据及所述调节后的分时下限值构建小批量数据集mini-batch;
处理单元605,用于对所述小批量数据集mini-batch进行处理得到处理后的数据;
输出单元606,用于输出所述处理后的数据。
本发明实施例提供的数据流处理装置600,所述装置600应用于流计算系统,所述装置600上部署有至少一个第一算子,以处理业务数据,所述装置600包括获取单元601、接收单元602、调节单元603、构建单元604、处理单元605、输出单元606,其中:获取单元601用于获取所述第一算子初始分时下限值;接收单元602用于接收所述第一算子的上游算子输出的数据及第一分时下限值调节因子;调节单元603用于根据所述第一分时下限值调节因子对所述第一算子初始分时下限值进行调节,得到调节后的分时下限值;构建单元604用于根据所述上游算子输出的数据及所述调节后的分时下限值构建小批量数据集mini-batch;处理单元605用于对所述小批量数据集mini-batch进行处理得到处理后的数据;输出单元606用于输出所述处理后的数据。本发明实施例中的调节单元603根据上游算子输出的第一分时下限值调节因子对第一算子初始分时下限值进行调节,得到调节后的分时下限值,并通过构建单元604根据该调节后的分时下限值对接收到的上游算子输出的数据进行小批量数据集mini-batch的构建,可见,本发明实施例通过上游算子发送的第一分时下限值调节因子对下游算子进行实时动态调节,从而用实时的相对时间打破下游算子对绝对时间的依赖,从而提升计算吞吐量。
值得说明的是,所述装置上部署有至少一个第一算子,以处理业务数据,在具体的实施过程中可以由主控节点根据流计算应用模型部署一个或多个算子到所述装置600,所述一个或多个算子中包括至少一个第一算子。
请参考图14,所述装置600还包括调节因子生成单元607、所述调节因子生成单元用于根据所述构建小批量数据集mini-batch的构建时间,和所述对所述小批量数据集mini-batch进行处理的处理时间,生成第二分时下限值调节因子,所述第二分时下限值调节因子用于通过所述输出单元606输出给所述第一算子的下游算子,以调节所述下游算子的初始分时下限值;所述下游算子在所述第一算子所在的工作节点上,或者,所述下游算子在所述第一算子所在的工作节点的下游工作节点上。
本发明实施例中的调节因子生成单元607根据第一算子构建小批量数据集mini-batch的构建时间和对所述小批量数据集mini-batch进行处理的处理时间,生成第二分时下限值调节因子,以用于通过输出单元606输出给所述第一算子的下游算子,以调节所述下游算子的初始分时下限值,由此实现上游算子对下游算子的实时动态调节,从而用实时的相对时间打破下游算子对绝对时间的依赖,从而提升计算吞吐量。
请参考图3,本发明实施例提供一种流数据处理系统,所述系统包括主控节点和多个工作节点:
所述多个工作节点中的一个工作节点为如权利要求10至15任一项所述的流数据处理装置,所述多个工作节点中的其他工作节点为如权利要求15至20任一项所述的流数据处理装置;
所述主控节点用于:根据流计算应用模型部署一个或多个算子到所述多个工作节点以处理业务数据,所述流计算应用模型为针对所述业务预先建立的包含算子和算子间数据流走向的逻辑关系图,其中每个所述算子用于承载所述业务对应的处理逻辑中的部分处理逻辑;
所述多个工作节点通过所述算子和算子间数据流走向的逻辑关系图进行数据连接。
本发明实施例提供的流计算处理系统包括主控节点和工作节点,所述主控节点根据流计算应用模型部署一个或多个算子到所述工作节点,以处理业务数据。
如图3所示,主控节点将图3所示的流计算应用模型调度到工作节点1、工作节点2和工作节点3这三个工作节点上进行业务处理,所述业务处理也可以称为流数据处理。图3所示的流计算应用模型为包含P1至P10的十个算子以及这十个算子之间的数据流走向的逻辑关系图。
主控节点通过分时下限控制器为工作节点上的算子预设初始分时下限值,该预设的初始分时下限值具体大小可以根据具体的业务需求或者经验值得到,通过这样的预设,各个工作节点中的各个算子都有了自己的初始分时下限值,这里的所说的算子包括源算子在内。值得说明的是,所述分时下限控制器可以是所述主控节点内的模块,也可以是主控节点外的模块,此处不做限制。
站在工作节点的角度,在需要用到算子的初始分时下限值的时候,预先获取该算子的初始分时下限值即可。
P1为数据入口算子,本发明实施例中称为源算子,流计算处理系统接收原始数据流,如图3所述,原始数据流由P1入口,工作节点1对流入源算子P1的数据进行封装,生成三元组流数据。该三元组流数据携带有时间戳和唯一标识该业务数据的的数据标识结构,即工作节点1为流入源算子P1的数据添加标识,这个标识至少包括时间戳、数据唯一标识。值得说明的是,通常这样的封装为每个数据添加的标识还可以有更多,比如数据索引,流ID等,此处不做限定。时间戳用于使得该分布式流计算处理系统进行数据处理的有序性,数据唯一标识用于做数据去重,将重复数据剔除,从而保证数据处理过程中处理数据的唯一性。
工作节点1根据三元组流数据及源算子的初始分时下限值构建小批量数据集mini-batch。如上所述,原始数据流被封装成三元组流数据之后,数据描述中添加了时间戳和唯一标识,保证了数据计算过程中数据的有序性和唯一性从而保证了计算结果的可靠性,初始分时下限值为构建小批量数据集mini-batch的时间阈值,如该时间阈值为s秒,则将一段时间内的数据流按照s秒进行分批构建,此处可以为将每s秒的流数据构建为一批小批量数据集mini-batch。
工作节点1对上述构建的小批量数据集mini-batch进行处理,并输出处理后的数据。此处的处理方法根据业务需求的不同可以有不同,此处的处理方法根据业务需求的不同可以有不同,所述业务需求可以是数据过滤,异常检测等等,本发明实施例不对具体业务需求做限定,此处只为举例说明,不做限定。
本发明实施例提供的一种流数据处理系统,将接收到的原始流数据进行封装形成三元组流数据,并根据初始分时下限值与三元组流数据构建小批量数据集,从而在保证流计算系统可靠性的同时大幅提高流计算系统的计算吞吐量。
在上述流数据处理系统的基础上,本发明另一个实施例在对所述小批量数据集mini-batch进行处理之后还包括均衡调控机制:
具体的,该均衡调控机制包括:根据所述构建小批量数据集mini-batch的构建时间,和所述对所述小批量数据集mini-batch进行处理的处理时间,输出分时下限值调节因子。其中构建小批量数据集mini-batch的构建时间表示算子(如图3所示P1)构建小批量数据集mini-batch所需要的时间,对所述小批量数据集mini-batch进行处理的处理时间表示算子(如图3所示P1)平均处理小批量数据集mini-batch中全部数据元组所需要的时间。本发明实施例的均衡调控机制认为当“小批量数据集mini-batch的构建时间”与“对小批量数据集mini-batch进行处理的处理时间”匹配时,分时下限值的设置是最优的。即,通常认为构建时间和处理时间相匹配的时候是计算性能最佳的,即是CPU利用最大化的时候,当构建时间大于处理时间,比如构建需要十秒,处理时间只需要五秒,则CPU空闲5秒浪费资源,再比如构建时间需要十秒,处理时间需要十二秒,则CPU处理不过来造成计算性能降低,因此工作节点可以根据当前处理算子的构建时间和处理时间生成分时下限值调节因子,以对该当前处理算子的下游算子的初始分时下限值起到调节作用,在具体的实现过程中,最终的调节结果可以有很多因素促使,本发明实施例中的分时下限值调节因子作为一个充分条件提供重要的调节因素。
因此根据所述构建小批量数据集mini-batch的构建时间,和所述对所述小批量数据集mini-batch进行处理的处理时间,输出分时下限值调节因子对下游算子的初始分时下限值进行调节,实现分时控制。在该均衡调控机制中输出的分时下限值调节因子对下游算子的初始分时下限值进行实时调整,使得下游算子构建小批量数据集mini-batch的时间由固定预设的绝对时间依赖转换为对上游算子的相对时间依赖,从而可以平衡小批量数据集mini-batch的规模与计算时间,从而更好的利用CPU,最大化工作节点的计算处理能力。
关于上述的相对时间依赖,具体可以解释为:构建小批量数据集mini-batch的关键是知道什么时候特定时间范围的数据在处理算子上已经完全获取完毕,以保证各种依赖于时间顺序或数据完整性的任务得以继续计算,现有技术以主控节点给定的绝对时间来控制小批量数据集mini-batch的构建时间,无论在该给定的绝对时间内,数据在处理算子上是否已经获取完毕,下一批数据需要等到该绝对时间到达才会进行处理,这样如果在这段绝对时间内处理算子上已经提前完全获取完毕,则这段提前的时间CPU处于空闲状态,从而降低工作节点的计算处理能力。本发明的相对时间依赖打破了绝对时间控制的限制,每层算子依赖上游算子的相对时间即可,从而实现了该分布式流计算系统的全局并发计算。具体的,全局并发计算可以是:上游算子比如P1根据分时下限值调节因子给下游算子P2阶段性的发送隔离壁Bulkhead,告知下游算子每一批小批量数据集mini-batch的构建时间,基于隔离壁Bulkhead判断数据是否接收完备,从而不再产生更老的流元组。
在如图3所示的本发明实施例中,该分时下限值调节因子用于输出给源算子的下游算子P2,以调节P2的初始分时下限值。
P2接到由P1处理后的数据以及从P1下发的分时下限值调节因子,P2根据该分时下限值调节因子对P2的初始分时下限值进行调整,并根据调整后的P2的分时下限值以及接收到的由P1处理后的数据,进行小批量数据集mini-batch的构建。构建之后再对该构建的小批量数据集mini-batch进行处理,得到处理后的数据。在该方案的基础上,还可根据小批量数据集mini-batch的处理时间和构建时间输出分时下限值调节因子,输出给下一个算子,由此循环,直至工作节点3的出口算子P10输出由P10处理后的数据,并终止循环。需要说明的是,该出口算子P10不再输出分时下限值调节因子。
假设工作节点1上只有源节点P1时,则将该处理后的数据输出给工作节点2的第一个算子P4。具体处理流程与输出给P2相同,此处不赘述。
本发明实施例中工作节点对源算子接收到的业务数据进行封装形成三元组流数据,其中三元组流数据携带有时间戳和唯一标识该业务数据的的数据标识,并根据三元组流数据和初始分时下限值构建小批量数据集,所述时间戳用于指示所述构建过程中数据的有序性,所述唯一标识用于指示所述构建过程中数据的唯一性,基于有序性和唯一性可以保证流计算系统的可靠性,基于初始分时下限值可以提高流计算系统的计算吞吐量,进一步的,本发明实施例中的均衡调控机制,根据所述构建小批量数据集mini-batch的构建时间,和所述对所述小批量数据集mini-batch进行处理的处理时间,输出分时下限值调节因子,所述分时下限值调节因子用于输出给所述下游算子,以调节所述下游算子的初始分时下限值,基于该分时下限值调节因子对下游算子的初始分时下限值进行实时动态调节,从而用实时的相对时间打破下游算子对绝对时间的依赖,从而进一步提升计算吞吐量。
请参考图15,图15是本发明实施例提供的流数据处理装置800的结构示意图。业务处理的装置800可包括输入设备810、输出设备820、处理器830和存储器840。
本发明实施例提供的流数据处理的装置800应用于流计算系统,所述流计算系统还包括主控节点,所述主控节点根据流计算应用模型调度一个或多个算子到所述工作节点,以处理业务数据。
存储器840可以包括只读存储器和随机存取存储器,并向处理器830提供指令和数据。存储器840的一部分还可以包括非易失性随机存取存储器(NVRAM)。
存储器840存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
在本发明实施例中,处理器830通过调用存储器840存储的操作指令(该操作指令可存储在操作系统中),执行如下操作:
获取所述主控节点调度的流计算应用模型中的算子,所述流计算应用模型为针对所述业务预先建立的包含算子和算子间数据流走向的逻辑关系图,每个算子用于承载所述业务对应的处理逻辑中的部分处理逻辑,将业务数据流封装成三元组流数据,所述三元组流数据携带有时间戳和唯一标识该业务数据的数据标识;根据所述三元组流数据及所述源算子的初始分时下限值构建小批量数据集mini-batch,所述时间戳用于指示所述构建过程中数据的有序性,所述唯一标识用于指示所述构建过程中数据的唯一性;对所述小批量数据集mini-batch进行处理。以及根据所述构建小批量数据集mini-batch的构建时间,和所述对所述小批量数据集mini-batch进行处理的处理时间,输出分时下限值调节因子,所述分时下限值调节因子用于调节所述源算子的下游算子的初始分时下限值。
通过输入设备810接收所述业务数据及源算子初始分时下限值。
本发明实施例提供的流数据处理装置800,本发明实施例将接收到的业务数据进行封装形成三元组流数据,其中三元组流数据携带有时间戳和唯一标识该业务数据的的数据标识,并根据三元组流数据和初始分时下限值构建小批量数据集,所述时间戳用于指示所述构建过程中数据的有序性,所述唯一标识用于指示所述构建过程中数据的唯一性,基于有序性和唯一性可以保证流计算系统的可靠性,基于初始分时下限值可以提高流计算系统的计算吞吐量,从而保证了流计算系统可靠性的同时又提升了流计算吞吐能力。
本发明实施例提供的流数据处理装置800的输入设备810还用于接收上游算子输出的数据及第一分时下限值调节因子。
处理器830还用于根据第一分时下限值调节因子对所述第一算子初始分时下限值进行调节,得到调节后的分时下限值;根据所述上游算子输出的数据及所述调节后的分时下限值构建小批量数据集mini-batch;对所述小批量数据集mini-batch进行处理。在所述对所述小批量数据集mini-batch进行处理之后,根据所述构建小批量数据集mini-batch的构建时间,和所述对所述小批量数据集mini-batch进行处理的处理时间,输出第二分时下限值调节因子,所述第二分时下限值调节因子用于调节所述第一算子的下游算子的初始分时下限值。
根据上游算子输出的第一分时下限值调节因子对第一算子初始分时下限值进行调节本发明实施例根据上游算子输出的第一分时下限值调节因子对第一算子初始分时下限值进行调节,得到调节后的分时下限值,并根据该调节后的分时下限值对接收到的上游算子输出的数据进行小批量数据集mini-batch的构建,通过上游算子发送的第一分时下限值调节因子对下游算子进行实时动态调节,从而用实时的相对时间打破下游算子对绝对时间的依赖,从而提升计算吞吐量。
处理器830控制业务处理的装置800的操作,处理器830还可以称为CPU(Central Processing Unit,中央处理单元)。存储器840可以包括只读存储器和随机存取存储器,并向处理器830提供指令和数据。存储器840的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中,流数据处理装置800的各个组件通过总线系统850耦合在一起,其中总线系统850除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统850。
上述本发明实施例揭示的方法可以应用于处理器830中,或者由处理器830实现。处理器830可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器830中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器830可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器840,处理器830读取存储器840中的信息,结合其硬件完成上述方法的步骤。
可选地,所述处理器830还用于根据所述构建小批量数据集mini-batch的构建时间,和所述对所述小批量数据集mini-batch进行处理的处理时间,输出分时下限值调节因子,所述分时下限值调节因子用于调节所述源算子的下游算子的初始分时下限值。
根据所述构建小批量数据集mini-batch的构建时间,和所述对所述小批量数据集mini-batch进行处理的处理时间,输出分时下限值调节因子,所述分时下限值调节因子用于调节所述源算子的下游算子的初始分时下限值,基于该分时下限值调节因子对下游算子的初始分时下限值进行实时动态调节,从而用实时的相对时间打破下游算子对绝对时间的依赖,最大化CPU的利用,从而大幅提升计算吞吐量。
可选地,所述处理器830还用于根据所述构建小批量数据集mini-batch的构建时间,和所述对所述小批量数据集mini-batch进行处理的处理时间,输出第二分时下限值调节因子,所述第二分时下限值调节因子用于调节所述第一算子的下游算子的初始分时下限值。
根据第一算子构建小批量数据集mini-batch的构建时间和对所述小批量数据集mini-batch进行处理的处理时间,输出第二分时下限值调节因子,以用于调节所述第一算子的下游算子的初始分时下限值,由此实现上游算子对下游算子的实时动态调节,从而用实时的相对时间打破下游算子对绝对时间的依赖,从而提升计算吞吐量。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件(例如处理器)来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的流数据处理方法、装置以及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (21)
1.一种流数据处理方法,所述方法应用于流计算系统中的工作节点,所述工作节点上部署有至少一个源算子,以处理业务数据,其特征在于,所述方法包括:
获取所述源算子的初始分时下限值;
接收所述业务数据,将所述业务数据流封装成三元组流数据,所述三元组流数据携带有时间戳和唯一标识该业务数据的数据标识;
根据所述三元组流数据及所述源算子的初始分时下限值构建小批量数据集mini-batch,所述时间戳用于指示所述构建过程中数据的有序性,所述唯一标识用于指示所述构建过程中数据的唯一性;
对所述小批量数据集mini-batch进行处理,输出处理后的数据。
2.根据权利要求1所述的方法,其特征在于,在所述对所述小批量数据集mini-batch进行处理之后,所述方法还包括:
根据所述构建小批量数据集mini-batch的构建时间,和所述对所述小批量数据集mini-batch进行处理的处理时间,输出分时下限值调节因子,所述分时下限值调节因子用于调节所述源算子的下游算子的初始分时下限值;所述下游算子在所述源算子所在的工作节点上,或者,所述下游算子在所述源算子所在工作节点的下游工作节点上。
3.根据权利要求1或2所述的方法,其特征在于,所述将所述业务数据封装成三元组流数据包括:
为所述业务数据中的各个元组分别添加数据标识形成所述三元组流数据,所述数据标识至少包括时间戳和唯一标识。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述初始分时下限值是由所述流计算系统的主控节点预设的,所述初始分时下限值为用于构建小批量数据集mini-batch的时间阈值。
5.根据权利要求4所述的方法,其特征在于,所述根据所述三元组流数据及所述源算子的初始分时下限值构建小批量数据集mini-batch,包括:
将所述三元组流数据按所述时间阈值进行分批构建所述小批量数据集mini-batch。
6.一种流数据处理方法,所述方法应用于流计算系统中的工作节点,所述工作节点上部署有至少一个第一算子,以处理业务数据,其特征在于,所述方法包括:
获取所述第一算子初始分时下限值;
接收所述第一算子的上游算子输出的数据及第一分时下限值调节因子;
根据所述第一分时下限值调节因子对所述第一算子初始分时下限值进行调节,得到调节后的分时下限值;
根据所述上游算子输出的数据及所述调节后的分时下限值构建小批量数据集mini-batch;
对所述小批量数据集mini-batch进行处理,输出处理后的数据。
7.根据权利要求6所述的方法,其特征在于,在所述对所述小批量数据集mini-batch进行处理之后,所述方法还包括:
根据所述构建小批量数据集mini-batch的构建时间,和所述对所述小批量数据集mini-batch进行处理的处理时间,输出第二分时下限值调节因子,所述第二分时下限值调节因子用于调节所述第一算子的下游算子的初始分时下限值;所述下游算子在所述第一算子所在的工作节点上,或者,所述下游算子在所述第一算子所在的工作节点的下游工作节点上。
8.根据权利要求6或7所述的方法,其特征在于,所述上游算子输出的数据为经过封装的流数据,所述经过封装的流数据中包括多个元组,所述多个元组中各元组分别包含该元组的时间戳和唯一标识,所述时间戳用于指示所述小批量数据集mini-batch构建过程中数据的有序性,所述唯一标识用于指示所述小批量数据集mini-batch构建过程中数据的唯一性。
9.根据权利要求6至8任一项所述的方法,其特征在于,所述初始分时下限值是由所述流计算系统的主控节点预设的,所述初始分时下限值为用于构建小批量数据集mini-batch的时间阈值。
10.根据权利要求9所述的方法,其特征在于,所述根据所述上游算子输出的数据及所述调节后的分时下限值构建小批量数据集mini-batch,包括:
将所述上游算子输出的数据按所述时间阈值进行分批构建所述小批量数据集mini-batch。
11.一种流数据处理装置,所述装置应用于流计算系统,所述装置上部署有至少一个源算子,以处理业务数据,其特征在于,所述装置包括:
获取单元,用于获取所述源算子的初始分时下限值;
接收单元,用于接收所述业务数据;
封装单元,用于将所述业务数据流封装成三元组流数据,所述三元组流数据携带有时间戳和唯一标识该业务数据的数据标识;
构建单元,用于根据所述三元组流数据及所述源算子的初始分时下限值构建小批量数据集mini-batch,所述时间戳用于指示所述构建过程中数据的有序性,所述唯一标识用于指示所述构建过程中数据的唯一性;
处理单元,用于对所述小批量数据集mini-batch进行处理得到处理后的数据;
输出单元,用于输出所述处理后的数据。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
调节因子生成单元,用于根据所述构建小批量数据集mini-batch的构建时间,和所述对所述小批量数据集mini-batch进行处理的处理时间,生成分时下限值调节因子,所述分时下限值调节因子用于调节所述源算子的下游算子的初始分时下限值;所述下游算子在所述源算子所在的工作节点上,或者,所述下游算子在所述源算子所在工作节点的下游工作节点上。
13.根据权利要求11或12所述的装置,其特征在于,所述封装单元具体用于:
为所述业务数据中的各个元组分别添加数据标识形成所述三元组流数据,所述数据标识至少包括时间戳和唯一标识。
14.根据权利要求11至13任一项所述的装置,其特征在于,所述初始分时下限值是由所述主控节点预设的,所述初始分时下限值为用于构建小批量数据集mini-batch的时间阈值。
15.根据权利要求14所述的装置,其特征在于,所述构建单元具体用于:
将所述三元组流数据按所述时间阈值进行分批构建所述小批量数据集mini-batch。
16.一种流数据处理装置,所述装置应用于流计算系统,所述装置上部署有至少一个第一算子,以处理业务数据,其特征在于,所述装置包括:
获取单元,用于获取所述第一算子初始分时下限值;
接收单元,用于接收所述第一算子的上游算子输出的数据及第一分时下限值调节因子;
调节单元,用于根据所述第一分时下限值调节因子对所述第一算子初始分时下限值进行调节,得到调节后的分时下限值;
构建单元,用于根据所述上游算子输出的数据及所述调节后的分时下限值构建小批量数据集mini-batch;
处理单元,用于对所述小批量数据集mini-batch进行处理得到处理后的数据;
输出单元,用于输出所述处理后的数据。
17.根据权利要求16所述的装置,其特征在于,所述装置还包括:
调节因子生成单元,用于根据所述构建小批量数据集mini-batch的构建时间,和所述对所述小批量数据集mini-batch进行处理的处理时间,生成第二分时下限值调节因子,所述第二分时下限值调节因子用于调节所述第一算子的下游算子的初始分时下限值;所述下游算子在所述第一算子所在的工作节点上,或者,所述下游算子在所述第一算子所在的工作节点的下游工作节点上。
18.根据权利要求16或17所述的装置,其特征在于,所述上游算子输出的数据为经过封装的流数据,所述经过封装的流数据中包括多个元组,所述多个元组中各元组分别包含该元组的时间戳和唯一标识,所述时间戳用于指示所述小批量数据集mini-batch构建过程中数据的有序性,所述唯一标识用于指示所述小批量数据集mini-batch构建过程中数据的唯一性。
19.根据权利要求16至18任一项所述的装置,其特征在于,所述初始分时下限值是由所述主控节点预设的,所述初始分时下限值为用于构建小批量数据集mini-batch的时间阈值。
20.根据权利要求19所述的装置,其特征在于,所述构建单元具体用于:
将所述上游算子输出的数据按所述时间阈值进行分批构建所述小批量数据集mini-batch。
21.一种流计算系统,其特征在于,所述系统包括主控节点和多个工作节点:
所述多个工作节点中的一个工作节点为如权利要求10至15任一项所述的流数据处理装置,所述多个工作节点中的其他工作节点为如权利要求15至20任一项所述的流数据处理装置;
所述主控节点用于:根据流计算应用模型部署一个或多个算子到所述多个工作节点以处理业务数据,所述流计算应用模型为针对所述业务预先建立的包含算子和算子间数据流走向的逻辑关系图,其中每个所述算子用于承载所述业务对应的处理逻辑中的部分处理逻辑;
所述多个工作节点通过所述算子和算子间数据流走向的逻辑关系图进行数据连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410579293.3A CN104331270B (zh) | 2014-10-24 | 2014-10-24 | 一种流数据处理的方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410579293.3A CN104331270B (zh) | 2014-10-24 | 2014-10-24 | 一种流数据处理的方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104331270A true CN104331270A (zh) | 2015-02-04 |
CN104331270B CN104331270B (zh) | 2017-07-21 |
Family
ID=52406004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410579293.3A Active CN104331270B (zh) | 2014-10-24 | 2014-10-24 | 一种流数据处理的方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104331270B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105354242A (zh) * | 2015-10-15 | 2016-02-24 | 北京航空航天大学 | 分布式数据处理方法及装置 |
CN108132838A (zh) * | 2016-11-30 | 2018-06-08 | 华为技术有限公司 | 一种图数据处理的方法、装置及系统 |
CN108268357A (zh) * | 2016-12-30 | 2018-07-10 | 阿里巴巴集团控股有限公司 | 实时数据处理方法和装置 |
CN110532447A (zh) * | 2019-08-29 | 2019-12-03 | 上海云从汇临人工智能科技有限公司 | 一种业务数据处理方法、装置、介质和设备 |
CN112015561A (zh) * | 2020-09-16 | 2020-12-01 | 支付宝(杭州)信息技术有限公司 | 用于流式计算服务的方法、装置和系统 |
CN112084140A (zh) * | 2020-09-03 | 2020-12-15 | 中国人民大学 | 一种异构系统中细粒度流数据处理方法和系统 |
CN113344604A (zh) * | 2021-04-16 | 2021-09-03 | 广州迅捷微风信息科技有限公司 | 一种基于用户行为数据及流计算的用户细分方法 |
CN113434282A (zh) * | 2021-07-20 | 2021-09-24 | 支付宝(杭州)信息技术有限公司 | 流计算任务的发布、输出控制方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5533021A (en) * | 1995-02-03 | 1996-07-02 | International Business Machines Corporation | Apparatus and method for segmentation and time synchronization of the transmission of multimedia data |
CN104052811B (zh) * | 2014-06-17 | 2018-01-02 | 华为技术有限公司 | 一种业务调度的方法、装置及系统 |
-
2014
- 2014-10-24 CN CN201410579293.3A patent/CN104331270B/zh active Active
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105354242A (zh) * | 2015-10-15 | 2016-02-24 | 北京航空航天大学 | 分布式数据处理方法及装置 |
CN108132838A (zh) * | 2016-11-30 | 2018-06-08 | 华为技术有限公司 | 一种图数据处理的方法、装置及系统 |
US11256749B2 (en) | 2016-11-30 | 2022-02-22 | Huawei Technologies Co., Ltd. | Graph data processing method and apparatus, and system |
CN108268357A (zh) * | 2016-12-30 | 2018-07-10 | 阿里巴巴集团控股有限公司 | 实时数据处理方法和装置 |
US11635985B2 (en) | 2016-12-30 | 2023-04-25 | Alibaba Group Holding Limited | Using degree of completeness of real-time data to maximize product revenue |
CN110532447A (zh) * | 2019-08-29 | 2019-12-03 | 上海云从汇临人工智能科技有限公司 | 一种业务数据处理方法、装置、介质和设备 |
CN112084140A (zh) * | 2020-09-03 | 2020-12-15 | 中国人民大学 | 一种异构系统中细粒度流数据处理方法和系统 |
CN112084140B (zh) * | 2020-09-03 | 2023-06-20 | 中国人民大学 | 一种异构系统中细粒度流数据处理方法和系统 |
CN112015561A (zh) * | 2020-09-16 | 2020-12-01 | 支付宝(杭州)信息技术有限公司 | 用于流式计算服务的方法、装置和系统 |
CN113344604A (zh) * | 2021-04-16 | 2021-09-03 | 广州迅捷微风信息科技有限公司 | 一种基于用户行为数据及流计算的用户细分方法 |
CN113434282A (zh) * | 2021-07-20 | 2021-09-24 | 支付宝(杭州)信息技术有限公司 | 流计算任务的发布、输出控制方法及装置 |
CN113434282B (zh) * | 2021-07-20 | 2024-03-26 | 支付宝(杭州)信息技术有限公司 | 流计算任务的发布、输出控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104331270B (zh) | 2017-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104331270A (zh) | 一种流数据处理的方法、装置及系统 | |
CN108632365B (zh) | 服务资源调整方法、相关装置和设备 | |
CN102063336B (zh) | 一种分布式计算多应用功能异步并发调度方法 | |
US20190394132A1 (en) | System and Method for Network Slicing for Service-Oriented Networks | |
US10108458B2 (en) | System and method for scheduling jobs in distributed datacenters | |
TWI547817B (zh) | 叢集運算架構的資源規劃方法、系統及裝置 | |
Anagnostopoulos et al. | Distributed run-time resource management for malleable applications on many-core platforms | |
CN108270805B (zh) | 用于数据处理的资源分配方法及装置 | |
CN109117252B (zh) | 基于容器的任务处理的方法、系统及容器集群管理系统 | |
CN104052811A (zh) | 一种业务调度的方法、装置及系统 | |
CN104580396A (zh) | 一种任务调度方法、节点及系统 | |
CN111861412B (zh) | 面向完成时间优化的科学工作流调度方法及系统 | |
CN103812949A (zh) | 一种面向实时云平台的任务调度与资源分配方法及系统 | |
CN109189572B (zh) | 一种资源预估方法及系统、电子设备和存储介质 | |
Farhat et al. | Stochastic modeling and optimization of stragglers | |
CN110300959B (zh) | 用于动态运行时任务管理的方法、系统、设备、装置和介质 | |
CN103729257A (zh) | 一种分布式并行计算方法以及系统 | |
CN110290166B (zh) | 跨集群数据交互方法、系统、装置及可读存储介质 | |
CN104243531A (zh) | 一种数据处理的方法、装置及系统 | |
CN113515382A (zh) | 云资源的分配方法、装置、电子设备及程序产品 | |
US11544113B2 (en) | Task scheduling for machine-learning workloads | |
CN113296905A (zh) | 调度方法、装置、电子设备、存储介质及软件产品 | |
CN110290206A (zh) | 一种用于网吧环境的分布式计算系统及方法 | |
CN110362387B (zh) | 分布式任务的处理方法、装置、系统和存储介质 | |
CN114138453B (zh) | 一种适合边缘计算环境的资源优化分配方法与系统 |
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 |