掌桥专利:专业的专利平台
掌桥专利
首页

数据处理的动态控制方法及设备

文献发布时间:2023-06-19 19:33:46


数据处理的动态控制方法及设备

技术领域

本申请涉及数据处理技术领域,尤其涉及一种数据处理的动态控制方法及设备。

背景技术

目前,流式数据处理主要是基于Storm、Spark Streamming或Flink进行实现,数据获取源端通常是消息队列的形式如Kafka,数据输出端通常则为各类存储系统。在此过程中数据的获取、处理和输出都是由不同的端来进行,这就导致不同端的处理能力可能会出现不一致的情况。

比如,在数据获取过快时,数据处理和输出的能力可能就跟不上,这就会造成数据处理出现延时,更大的风险则会对数据处理服务端和数据输出端造成过大的压力,进而带来不稳定的风险。同时在此过程中,有些端压力过大,有些端可能相对空闲,这也会产生计算或存储资源的浪费,特别是在面对突发的超大规模的数据量高峰时,这种现象尤为明显。

因此,如何应对不同端处理能力的不同导致整个流式数据处理不稳定的问题,仍然需要提供进一步的解决方案。

发明内容

本申请实施例提供一种数据处理的动态控制方法、装置及设备,以解决现有技术中不同端处理能力的不同导致整个流式数据处理不稳定的问题。

本申请实施例采用下述技术方案:

一种数据处理的动态控制方法,包括:

响应于待处理的目标数据流任务的任务处理请求,获取所述目标数据流任务的任务配置信息和所述数据处理设备的任务策略配置信息,所述目标数据流任务的任务配置信息包含有所述目标数据流任务的数据量,所述任务策略配置信息中包含有所述数据处理设备的做大处理流量、单元任务的资源配置信息,所述单元任务的资源配置信息中包含有用于指示所述单元任务的输入流量、输出流量和资源占用信息的配置信息;

确定所述目标数据流任务的任务策略优先级;

基于所述目标数据流任务的任务配置信息、所述目标数据流任务的任务策略优先级和所述任务策略信息,确定处理所述目标数据流任务的资源配置信息;

基于处理所述目标数据流任务的资源配置信息,为所述目标数据流任务分配资源,以处理所述目标数据流任务。

一种数据处理设备,包括:

信息获取模块,用于响应于待处理的目标数据流任务的任务处理请求,获取所述目标数据流任务的任务配置信息和所述数据处理设备的任务策略配置信息,所述目标数据流任务的任务配置信息包含有所述目标数据流任务的数据量,所述任务策略配置信息中包含有所述数据处理设备的做大处理流量、单元任务的资源配置信息,所述单元任务的资源配置信息中包含有用于指示所述单元任务的输入流量、输出流量和资源占用信息的配置信息;

优先级确定模块,用于确定所述目标数据流任务的任务策略优先级;

信息确定模块,用于基于所述目标数据流任务的任务配置信息、所述目标数据流任务的任务策略优先级和所述任务策略信息,确定处理所述目标数据流任务的资源配置信息;

资源分配模块,用于基于处理所述目标数据流任务的资源配置信息,为所述目标数据流任务分配资源,以处理所述目标数据流任务。

一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述所述的数据处理的动态控制方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的数据处理的动态控制方法的步骤。

本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:

本申请中,由于能够响应于待处理的目标数据流任务的任务处理请求,获取所述数据流任务的任务配置信息和数据处理设备的任务策略配置信息,再确定目标数据流任务的任务策略优先级,以及基于目标数据流任务的任务配置信息、目标数据流任务的任务策略优先级和任务策略信息,确定处理目标数据流任务的资源配置信息,最后,基于处理目标数据流任务的资源配置信息,为目标数据流任务分配资源,以处理目标数据流任务。由于在每个数据流任务处理之前,都能按照数据流任务的数据量、数据处理设备的做大处理流量、预设的单元任务的资源配置信息来对数据流任务进行资源配置,该单元任务的资源配置信息中包含有用于指示所述单元任务的输入流量、输出流量和资源占用信息的配置信息,使得这样无论数据流任务的数据量有多大,也无论不同端的处理能力是否相同,都可根据设备的实际处理能力对数据处理设备中的任务最大处理能力、任务占用的资源、以及任务的输出流量进行动态控制,从而有效保障了数据处理设备中各数据流任务的在整个数据流处理过程中的稳定性。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本申请实施例提供的一种数据处理的动态控制方法的具体实施流程示意图;

图2为本申请实施例提供的数据处理的动态控制方法所应用的系统的结构示意图;

图3为本申请实施例提供的一种数据处理装置的结构示意图;

图4为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

以下结合附图,详细说明本申请各实施例提供的技术方案。

如背景技术所述,不同端处理能力的不同会导致整个流式数据处理不稳定的问题,尤其是在面对突发超大规模的数据量高峰时,这种弹性抖动尤其明显。针对此,现有的数据处理方案一般都采用时间窗口控制或者设定每个的数据量,这种方案虽然对系统的稳定性有一定缓解但并不能解决突发流量下的弹性抖动,比如小数据量下,处理延时就低,提交频率低,计算资源利用率低。突发大数据量下,处理延时则变高,提交频率高,计算超负荷,对存储端的压力也变大。

为解决现有技术中不同端处理能力的不同导致整个流式数据处理不稳定的问题,本申请实施例提出一种数据处理的动态控制方法,能够响应于待处理的目标数据流任务的任务处理请求,获取所述数据流任务的任务配置信息和数据处理设备的任务策略配置信息,再确定目标数据流任务的任务策略优先级,以及基于目标数据流任务的任务配置信息、目标数据流任务的任务策略优先级和任务策略信息,确定处理目标数据流任务的资源配置信息,最后,基于处理目标数据流任务的资源配置信息,为目标数据流任务分配资源,以处理目标数据流任务。

由于在每个数据流任务处理之前,都能按照数据流任务的数据量、数据处理设备的做大处理流量、预设的单元任务的资源配置信息来对数据流任务进行资源配置,该单元任务的资源配置信息中包含有用于指示所述单元任务的输入流量、输出流量和资源占用信息的配置信息,使得这样无论数据流任务的数据量有多大,也无论不同端的处理能力是否相同,都可根据设备的实际处理能力对数据处理设备中的任务最大处理能力、任务占用的资源、以及任务的输出流量进行动态控制,从而有效保障了数据处理设备中各数据流任务的在整个数据流处理过程中的稳定性。

下面结合图1所示的数据处理的动态控制方法的具体实施流程示意图,对该方法的实施过程进行详细介绍,图1所示的方法可包括:

步骤110,响应于待处理的目标数据流任务的任务处理请求,获取目标数据流任务的任务配置信息和数据处理设备的任务策略配置信息。

其中,目标数据流任务的任务配置信息包含有目标数据流任务的数据量,任务策略配置信息中包含有数据处理设备的做大处理流量、单元任务的资源配置信息,单元任务的资源配置信息中包含有用于指示单元任务的输入流量、输出流量和资源占用信息的配置信息。

其中,数据处理设备的任务策略配置信息为预先配置并部署到数据处理设备中。该任务策略配置信息中包含有策略名称、数据处理设备最大处理流量即数据处理设备能够在单位时间内处理的最大流量,策略模式(包括不同策略优先级对应的策略模式)、并行度上限(即数据处理设备能够支持的并行度的最大值)和单元任务的资源配置信息。其中,策略优先级可包括用于指示并行优先的第一优先级、用于指示流量优先的第二优先级和用于指示流量优先并开启弹性伸缩的第三优先级。

在一些示例性的实施例中,单元任务的资源配置信息至少包括单元任务的并行度、单元任务的内存占用量、单元任务的CPU占用量、单元任务的时间窗口的长度、单元任务在一个时间窗口内的数据量和单元任务的提交频率。其中,单元任务为最小处理的任务单元,即可将目标数据流任务拆分为多个单元任务并行处理。单元任务的时间窗口的长度为单元任务的一个时间窗口的时长,单元任务在一个时间窗口内的数据量为在一个时间窗口内能够读取到的单元任务的数据量。单元任务的并行度用于指示同时能够处理的单元任务的数量,即单元任务的并行执行数量。

其中,一个任务的CPU占用量=单元任务的CPU占用量×单元任务的并行度,一个任务的内存占用量=单元任务的内存占用量×单元任务的并行度。

对于数据流任务来说,可通过配置合理的时间窗口,使得在配置的时间窗口内读取的数据量能够配合数据处理在该时间窗口内部处理完成。

单元任务每秒的处理能力=单元任务在一个时间窗口内的数据量×1÷单元任务的时间窗口的长度,那么每个任务每秒的处理能力=单元任务的并行度×单元任务在一个时间窗口内的数据量×1÷单元任务的时间窗口的长度。任务的输出提交频率=单元任务的并行度×(单元任务的时间窗口的长度÷单元任务的提交频率÷60)。

步骤120,确定目标数据流任务的任务策略优先级。

在一些示例性的实施例中,任务策略优先级可根据目标数据流任务的任务处理需求解析得到,即根据任务的实际处理需求来匹配能够满足其任务处理需求的任务策略优先级,或者,为提高任务策略优先级的确定效率,简化优先级确认过程,还可直接将指示任务策略优先级的优先级标识配置在任务配置信息中。具体地,确定目标数据流任务的任务策略优先级,包括:

基于目标数据流任务的任务配置信息中包含的目标数据流任务的数据处理需求,确定目标数据流任务的任务策略优先级;或者,

基于目标数据流任务的任务配置信息中包含的目标数据流任务的优先级标识,确定目标数据流任务的任务策略优先级。

在基于目标数据流任务的任务配置信息中包含的目标数据流任务的数据处理需求,确定目标数据流任务的任务策略优先级时,可在数据处理设备中维护一个任务处理需求的关键词与任务策略优先级之间的映射关系表格,比如时效高可与用于指示流量优先的策略优先级相关联,比如时效低可与用于指示并行优先的策略优先级相关联,比如低时延可与用于指示流量优先并开启弹性伸缩的策略优先级相关联。

在基于目标数据流任务的任务配置信息中包含的目标数据流任务的优先级标识时,可在数据处理设备中维护一个优先级标识与任务策略优先级之间的映射关系表格,比如优先级标识0可与用于指示并行优先的策略优先级相关联,比如优先级标识1可与用于指示流量优先的策略优先级相关联,比如优先级标识2可与用于指示流量优先并开启弹性伸缩的策略优先级相关联。

步骤130,基于目标数据流任务的任务配置信息、目标数据流任务的任务策略优先级和任务策略信息,确定处理目标数据流任务的资源配置信息。

其中,不同的策略优先级可对应于不同的资源配置方式。下面以优先级标识0指示并行优先的策略优先级以下简称第一优先级、优先级标识1指示流量优先的策略优先级以下简称第二优先级、优先级标识2指示流量优先的策略优先级以下简称第三优先级为例。

第一优先级对应的资源分配方式为:根据任务策略信息进行资源配置,按照任务策略信息中CPU、内存、并行度的设置信息进行资源配置;第二优先级对应的资源分配方式为:依据数据处理设备的最大处理流量来重新确定并行度,其中,并行度=最大处理流量÷单元任务每秒的处理能力,再依据重新确定的并行度,配置目标数据流任务的CPU、内存、每秒处理能力、输出流量的提交频率等信息;第三优先级对应的资源分配方式为:确定初始并行度=最大处理流量÷单元任务的数据量,该初始并行度小于或等于并行度上限,在运行过程中会根据数据处理能力进行动态调整并行度,即调整单元任务的并行处理数量,从而保障数据处理设备的数据处理能力,且调整后的并行度最大不超过并行度上限。具体地,任务策略优先级包括第一优先级、第二优先级和第三优先级,基于目标数据流任务的任务配置信息和任务策略信息,确定处理目标数据流任务的资源配置信息,包括:

在目标数据流任务的任务策略优先级为第一优先级时,基于目标数据流任务的任务配置信息中目标数据流任务的数据量、以及任务策略配置信息中单元任务的资源配置信息,确定目标数据流任务的资源配置信息;

在目标数据流任务的任务策略优先级为第二优先级时,基于数据处理设备的最大处理流量、单元任务的资源配置信息,确定目标数据流任务的并行度,以及基于目标数据流任务的并行度和目标数据流任务的数据量,确定目标数据流任务的资源配置信息;

在目标数据流任务的任务策略优先级为第三优先级时,确定数据处理设备的资源占用信息,以及基于数据处理设备的资源占用信息、单元任务的资源配置信息和目标数据流任务的数据量,确定目标数据流任务的资源配置信息。

例如,数据处理设备的任务策略配置信息中配置的数据处理设备的最大处理流量为1800000,并行度上限为80,设置的每个单元任务的CPU占用量为2,每个单元任务的内存占用量为4G,每个单元任务的时间窗口的长度为3s,每个单元任务在一个时间窗口内的数据量为90000,单元任务的并行度为30,每个单元任务的提交频率为3。那么,每个单元任务的每秒处理能力=90000×1÷3=30000/秒。

在目标数据流任务的任务策略优先级为第一优先级时,可按照数据处理设备的任务策略配置信息对目标数据流任务进行资源配置,此时,目标数据流任务的并行度=单元任务的并行度为30,目标数据流任务每秒的处理能力=30×30000=900000/秒,目标数据流任务的CPU占用量=30×2=60核、目标数据流任务的内存占用量=30×4=120G,对输出端的提交压力即目标数据流任务的输出提交频率=30÷3=10次,即为每秒进行10次的批量提交。

在一些示例性的实施例中,在目标数据流任务的任务策略优先级为第二优先级时,基于数据处理设备的最大处理流量、单元任务的资源配置信息,确定目标数据流任务的并行度,以及基于目标数据流任务的并行度和目标数据流任务的数据量,确定目标数据流任务的资源配置信息,包括:

在目标数据流任务的任务策略优先级为第二优先级时,基于单元任务的时间窗口的长度、单元任务在一个时间窗口内的数据量,确定单元任务在单位时间段内的处理流量;

基于数据处理设备的最大处理流量和单元任务在单位时间段内的处理流量之间的比值,确定数据处理设备的并行度;

基于数据处理设备的并行度、单元任务的内存占用量、单元任务的CPU占用量和单元任务的提交频率,确定目标数据流任务的资源配置信息。

继续沿用上述数据处理设备的任务策略配置信息的例子,在目标数据流任务的任务策略优先级为第二优先级时,可按照最大处理流量和任务策略调整并行度,并依据调整后的并行度进行资源配置,以确保最大流量输出。此时,目标数据流任务的并行度=1800000/30000=60,目标数据流任务每秒的处理能力=60×30000=1800000/秒,目标数据流任务的CPU占用量=60×2=120核、目标数据流任务的内存占用量=60×4=240G,对输出端的提交压力即目标数据流任务的输出提交频率=60÷3=20次,即为每秒进行20次的批量提交。

在目标数据流任务的任务策略优先级为第三优先级时,可确定数据处理设备的资源占用信息,以及基于数据处理设备的资源占用信息、单元任务的资源配置信息和目标数据流任务的数据量,确定目标数据流任务的资源配置信息,以根据处理能力弹性扩展并行度。此时,目标数据流任务的初始并行度=1800000/30000=60,由于数据处理设备的并行度上限为80,那么目标数据流任务的并行度的扩展范围为[60,80]。目标数据流任务每秒的最大处理能力=60×30000=1800000/秒,目标数据流任务的CPU占用量=60×2=120核、目标数据流任务的内存占用量=60×4=240G,对输出端的提交压力即目标数据流任务的输出提交频率=60÷3=20次,即为每秒进行20次的批量提交。并且,在确定实际数据流量处理能力超过标数据流任务每秒的最大处理能力的一定比例时,可将并行度扩展到最大为80,此时,目标数据流任务的CPU占用量=80×2=160核、目标数据流任务的内存占用量=80×4=320G。

步骤140,基于处理目标数据流任务的资源配置信息,为目标数据流任务分配资源,以处理目标数据流任务。

其中,基于处理目标数据流任务的资源配置信息,为目标数据流任务分配资源,具体可基于处理目标数据流任务的资源配置信息,将目标数据流任务拆分为多个单元任务,单元任务的个数为基于目标数据流任务的并行度确定,每个单元任务对应于一个单独的数据管道。各数据管道的输出端可直接与数据输出的目标端建立数据库连接池。

在一些示例性的实施例中,为实现对数据处理设备中的多个任务进行统一管理,以及资源调度,使得为各任务配置的资源能够适配数据处理设备当前的处理处理能力,本申请实施例可维护一个任务统计列表,每有一个新任务加入时,便可将该新任务加入至任务统计列表中,以便按照一定的数据获取频率,获取到各任务的任务指标数据,并基于各任务的任务指标数据对一些任务的资源配置进行调整。具体地,本申请实施例提供的方法还包括:

将目标数据流任务加入至任务统计列表中;

每隔预设时间段,获取任务统计列表中的多个数据流任务的任务指标数据;

基于任务统计列表中的多个数据流任务的任务指标数据,确定多个数据流任务的占用比例;

在多个数据流任务的资源占用比例达到预设资源占用比例时,对多个数据流任务中任务策略优先级为指定优先级的数据流任务的并行任务数量进行动态调整。

在一些示例性的实施例中,各任务的任务策略优先级可指示该任务是否支持动态调整资源配置,具体地,在多个数据流任务的资源占用比例达到预设资源占用比例时,对多个数据流任务中任务策略优先级为指定优先级的数据流任务的并行任务数量进行动态调整,包括:

在多个数据流任务的资源占用比例达到预设资源占用比例时,从多个数据流任务中确定任务策略优先级为指定优先级的待调整数据流任务;

基于待调整数据流任务的并行度调整范围,调整待调整数据流任务的并行度;

基于待调整数据流任务调整后的并行度,调整待调整数据流任务的并行任务数量。

图2为本申请实施例提供的数据处理的动态控制方法所应用的系统的结构示意图。在图2中,该任务处理系统可包括流任务策略模块、任务控制模块、任务统计模块、资源调度模块、指标监控模块和Job执行模块。其中,流任务策略模块用于数据流任务的流量控制策略的配置管理及不同策略优先级下数据流任务资源配置信息的计算。流任务策略模块中可配置各数据流任务的流量、并行度和输出提交频率等资源配置信息。

任务控制模块用于数据流任务的提交和交互感知。数据流任务通过任务控制模块可向数据流引擎提交具体的数据流任务,并在提交数据流任务后,将此数据任务加入到任务统计列表中,同时触发任务统计模块进行任务指标数据的收集。任务控制模块支持对数据流任务的资源配置的提交控制和动态调整。比如可根据任务统计模块获取的任务指标结合流任务策略模块进行资源的重新配置。

任务统计模块主要负责对数据流任务的一些任务指标数据进行获取、统计和输出。该任务指标数据包括数据流任务的并行度、资源占用量(包括内存和CPU)、处理速率、最近几个时间窗口内的数据处理量、最近几个时间窗口内的数据处理延时、数据处理分段读取、处理、输出指标等任务指令。任务统计模块可为用户提供任务的整体情况,以及作为任务控制模块是否触发动态调整资源配置的数据支持。

资源调度模块用于资源的分配和调度,该模块可基于开源Yarn框架实现,可管理整个数据处理设备的集群的可用资源,可用资源具体为CPU和内存,实现这些可用资源的统一管理和分配,同时支持集群的线性扩展和伸缩。指标监控模块用于采集引擎的统计信息获取包括Job(即数据流任务)、资源、处理能力的相关信息。Job执行模块本身包含数据读取模块、数据处理模块及数据输出模块。

图2所示的数据处理流程可包括:

①策略加载

该步骤包括配置流任务策略文件、加载策略配置文件,并根据配置计算任务的资源设置,最后将资源设置输出给任务控制模块。

②任务提交

该步骤包括首先,任务控制模块将任务程序和资源设置组合成数据流任务运行命令;然后,向数据流任务引擎提交数据流任务,并返回数据流任务信息;再,根据数据流任务信息定时获取数据流任务的运行状态;最后,将数据流任务信息发送给任务统计模块,由任务统计模块定期采集并统计数据流任务的任务指标数据。

③资源请求和分配

该步骤包括首先,数据流引擎根据资源设置情况,对数据流任务进行解析生产运行拓扑结构,确定数据流任务可拆分为多少个单元任务,以及每个单元任务的配置信息,并向资源调度模块发送资源配置的请求,资源调度模块根据任务拓扑结构和资源配置的请求,为数据流任务分配资源。

④任务运行

具体可包括1)数据读取模块通过数据管道的方式实现与数据流任务的数据源端连接,每一个单元任务会建立一个单独的数据管道;2)数据输出模块可与数据流任务的目标端之间建立数据库连接池;3)在数据处理过程中,按时间窗口的长度滑动并获取各时间窗口内数据,同时对每个单元任务维护各自的位置点位;4)由数据处理模块进行数据的加工,转换统计等处理操作。5)与数据库连接池建立连接并进行数据写入数据库连接池的操作;6)、重复3)到5)的操作,直至数据流任务处理完成。

⑤信息收集

具体可由指标监控模块持续收集任务的指标情况。

⑥指标统计

具体可由任务统计模块从数据流引擎的指标监控模块获取任务指标数据并进行统计。

⑦调用

具体可包括1)确定数据流任务的策略优先级是否为指定优先级,若是则进入后续步骤,否则任务保持运行。2)任务控制模块定期调用任务统计信息,获取任务的处理流量,及延时。3)当处理能力超过预设比例(比如30%)则触发弹性伸缩数据流任务的并行度的操作。

⑧动态调整

具体可包括1)按照任务策略配置信息配置的策略,获取可以增加的任务并行度的数值;2)数据流引擎发送并行度调整请求给任务控制模块,使得任务控制模块对数据流任务的并行度数值进行调整;3)数据流引擎根据调整后的并行度增加单元任务的数量,提升数据处理设备的处理能力。

采用本申请实施例提供的数据处理的动态控制方法,能够响应于待处理的目标数据流任务的任务处理请求,获取所述数据流任务的任务配置信息和数据处理设备的任务策略配置信息,再确定目标数据流任务的任务策略优先级,以及基于目标数据流任务的任务配置信息、目标数据流任务的任务策略优先级和任务策略信息,确定处理目标数据流任务的资源配置信息,最后,基于处理目标数据流任务的资源配置信息,为目标数据流任务分配资源,以处理目标数据流任务。由于在每个数据流任务处理之前,都能按照数据流任务的数据量、数据处理设备的做大处理流量、预设的单元任务的资源配置信息来对数据流任务进行资源配置,该单元任务的资源配置信息中包含有用于指示所述单元任务的输入流量、输出流量和资源占用信息的配置信息,使得这样无论数据流任务的数据量有多大,也无论不同端的处理能力是否相同,都可根据设备的实际处理能力对数据处理设备中的任务最大处理能力、任务占用的资源、以及任务的输出流量进行动态控制,从而有效保障了数据处理设备中各数据流任务的在整个数据流处理过程中的稳定性。

本申请实施例还提供一种数据处理装置300,如图3所示,包括:

信息获取模块301,用于响应于待处理的目标数据流任务的任务处理请求,获取所述目标数据流任务的任务配置信息和所述数据处理设备的任务策略配置信息,所述目标数据流任务的任务配置信息包含有所述目标数据流任务的数据量,所述任务策略配置信息中包含有所述数据处理设备的做大处理流量、单元任务的资源配置信息,所述单元任务的资源配置信息中包含有用于指示所述单元任务的输入流量、输出流量和资源占用信息的配置信息;

优先级确定模块302,用于确定所述目标数据流任务的任务策略优先级;

信息确定模块303,用于基于所述目标数据流任务的任务配置信息、所述目标数据流任务的任务策略优先级和所述任务策略信息,确定处理所述目标数据流任务的资源配置信息;

资源分配模块304,用于基于处理所述目标数据流任务的资源配置信息,为所述目标数据流任务分配资源,以处理所述目标数据流任务。

在一些示例性的实施例中,所述装置还包括:

任务加入模块,用于将所述目标数据流任务加入至任务统计列表中;

数据获取模块,用于每隔预设时间段,获取所述任务统计列表中的多个数据流任务的任务指标数据;

比例确定模块,用于基于所述任务统计列表中的多个数据流任务的任务指标数据,确定所述多个数据流任务的占用比例;

动态调整模块,用于在所述多个数据流任务的资源占用比例达到预设资源占用比例时,对所述多个数据流任务中任务策略优先级为指定优先级的数据流任务的并行任务数量进行动态调整。

在一些示例性的实施例中,所述动态调整模块在所述多个数据流任务的资源占用比例达到预设资源占用比例时,对所述多个数据流任务中任务策略优先级为指定优先级的数据流任务的并行任务数量进行动态调整时,具体用于:

在所述多个数据流任务的资源占用比例达到预设资源占用比例时,从所述多个数据流任务中确定任务策略优先级为所述指定优先级的待调整数据流任务;

基于所述待调整数据流任务的并行度调整范围,调整所述待调整数据流任务的并行度;

基于所述待调整数据流任务调整后的并行度,调整待调整数据流任务的并行任务数量。

在一些示例性的实施例中,所述任务策略优先级包括第一优先级、第二优先级和第三优先级,所述信息确定模块303基于所述目标数据流任务的任务配置信息和所述任务策略信息,确定处理所述目标数据流任务的资源配置信息时,具体用于:

在所述目标数据流任务的任务策略优先级为所述第一优先级时,基于所述目标数据流任务的任务配置信息中目标数据流任务的数据量、以及所述任务策略配置信息中所述单元任务的资源配置信息,确定所述目标数据流任务的资源配置信息;

在所述目标数据流任务的任务策略优先级为所述第二优先级时,基于所述数据处理设备的最大处理流量、所述单元任务的资源配置信息,确定所述目标数据流任务的并行度,以及基于所述目标数据流任务的并行度和所述目标数据流任务的数据量,确定所述目标数据流任务的资源配置信息;

在所述目标数据流任务的任务策略优先级为所述第三优先级时,确定所述数据处理设备的资源占用信息,以及基于所述数据处理设备的资源占用信息、所述单元任务的资源配置信息和所述目标数据流任务的数据量,确定所述目标数据流任务的资源配置信息。

在一些示例性的实施例中,所述单元任务的资源配置信息至少包括所述单元任务的并行度、所述单元任务的内存占用量、所述单元任务的CPU占用量、所述单元任务的时间窗口的长度、所述单元任务在一个时间窗口内的数据量和所述单元任务的提交频率。

在一些示例性的实施例中,所述信息确定模块303在所述目标数据流任务的任务策略优先级为所述第二优先级时,基于所述数据处理设备的最大处理流量、所述单元任务的资源配置信息,确定所述目标数据流任务的并行度,以及基于所述目标数据流任务的并行度和所述目标数据流任务的数据量,确定所述目标数据流任务的资源配置信息时,具体用于:

在所述目标数据流任务的任务策略优先级为所述第二优先级时,基于所述单元任务的时间窗口的长度、所述单元任务在一个时间窗口内的数据量,确定所述单元任务在单位时间段内的处理流量;

基于所述数据处理设备的最大处理流量和所述单元任务在单位时间段内的处理流量之间的比值,确定所述数据处理设备的并行度;

基于所述数据处理设备的并行度、所述单元任务的内存占用量、所述单元任务的CPU占用量和所述单元任务的提交频率,确定所述目标数据流任务的资源配置信息。

在一些示例性的实施例中,所述优先级确定模块302确定所述目标数据流任务的任务策略优先级时,具体用于:

基于所述目标数据流任务的任务配置信息中包含的所述目标数据流任务的数据处理需求,确定所述目标数据流任务的任务策略优先级;或者,

基于所述目标数据流任务的任务配置信息中包含的所述目标数据流任务的优先级标识,确定所述目标数据流任务的任务策略优先级。

本申请实施例提供的数据处理装置300能够实现图1~图2的方法实施例中数据处理的动态控制方法实现的各个过程,为避免重复,这里不再赘述。

图4是本申请的一个实施例电子设备的结构示意图。请参考图4,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。

处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。

处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据处理装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:

响应于待处理的目标数据流任务的任务处理请求,获取所述目标数据流任务的任务配置信息和所述数据处理设备的任务策略配置信息,所述目标数据流任务的任务配置信息包含有所述目标数据流任务的数据量,所述任务策略配置信息中包含有所述数据处理设备的做大处理流量、单元任务的资源配置信息,所述单元任务的资源配置信息中包含有用于指示所述单元任务的输入流量、输出流量和资源占用信息的配置信息;

确定所述目标数据流任务的任务策略优先级;

基于所述目标数据流任务的任务配置信息、所述目标数据流任务的任务策略优先级和所述任务策略信息,确定处理所述目标数据流任务的资源配置信息;

基于处理所述目标数据流任务的资源配置信息,为所述目标数据流任务分配资源,以处理所述目标数据流任务。

上述如本申请图1~图2所示实施例揭示的数据处理装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。

该电子设备还可执行图1~图2的方法,并实现数据处理装置在图1~图2所示实施例的功能,本申请实施例在此不再赘述。

本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1~图2所示实施例的方法,并具体用于执行以下操作:

响应于目标探查请求,对所述目标探查请求进行解析,以获取所述目标探查请求对应的数据处理参数,所述数据处理参数包括用于指示所述目标数据处理请求对应的目标数据源的参数;

基于数据处理参数名称与数据处理参数值之间的对应关系,将所述目标探查请求对应的数据处理参数填充到预设的数据处理任务模板中,以建立所述目标数据处理请求对应的目标数据处理任务;以及依据所述数据处理参数中用于指示所述目标数据源的参数,将所述目标数据处理任务与所述目标数据源进行关联;

执行所述目标数据处理任务,以对所述目标数据源进行数据处理,获取所述目标数据处理任务对应的数据处理结果。

当然,除了软件实现方式之外,本申请的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

总之,以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

技术分类

06120115954666