发明内容
(一)解决的技术问题
针对现有技术的不足,本发明提供了一种高适用性离线数据处理任务发布方法及系统,旨在提高离线数据处理任务的执行效率以及对生产系统资源的充分利用,避免生产系统资源的浪费。开发一种适用于各种场景、高效且准确的离线数据处理任务发布方法及系统,具有重要的实用价值。
(二)技术方案
为实现以上目的,本发明通过以下技术方案予以实现:一种高适用性离线数据处理任务发布方法,包括以下步骤:
在数据库中创建离线任务表,并通过图形化界面或文本输入的方式定义数据处理任务;
创建离线数据处理任务池,设定任务池任务容量,并通过日志和系统监控工具对任务池的运行状态进行管理和监控;
从数据库获取任务所需要处理的总数据量Total,对每个任务使用离线数据进行执行测试,获取处理器占用率CPU、内存占用率Memory以及执行消耗时间t,以用于计算出当前任务的第一评估指数γ;
使用离线数据对任务进行执行测试,通过系统监控工具记录任务执行时处理器占用率、内存占用率,并建立相关度模型,通过对相关度模型输入数据量,预测任务所需处理器占用率以及内存占用率,并使用离线数据进行训练,直至输出结果的准确性达到期望值;
通过相关度模型预测任务所需处理器占用率CPUi和内存占用率Memoryi,并与任务的第一评估指数γi以及优先级priorityi进行关联,生成第二评估指数δi,预先设置闲置资源阈值,并与生产系统闲置资源与任务所需资源差值进行比对,根据比对结果,作出相应措施。
进一步的,所述离线数据任务表的字段包括任务的唯一标识符、任务的名称、任务的方法名称、任务文件的路径、任务的优先级、任务是否重复使用、任务的状态、创建者、创建时间、更新者以及更新时间。
进一步的,任务池的相关操作包括:
确定任务类型和数量,确定离线数据处理任务类型,以及每种类型的任务数量;
设定任务池的容量,根据任务类型和数量,为任务池设定一个初始的容量;
实现任务调度和发布,通过轮询、优先级调度用于将任务分配给空闲的处理单元;
创建处理单元,每个处理单元包括单独的线程、进程或者分布式计算节点;
管理任务池,在任务池运行过程中,对其进行管理,包括任务的提交、处理、完成以及异常处理,并使用日志、监控系统工具来监控和管理任务池的运行状态。
进一步的,所述离线数据处理任务的第一评估指数γ计算过程如下:
从数据库获取任务所需要处理的数据总量,对每个任务使用离线数据进行执行测试,并通过系统监控工具记录当前任务在执行数据时所占用的生产系统资源,包括处理器占用率、内存占用率,以及执行消耗时间;
通过数据总量、处理器占用率、内存占用率以及执行消耗时间,计算当前任务的第一评估指数γ,计算公式如下:
其中,m为离线数据的数据量,CPU为处理器占用率,Memory为内存占用率,Total为数据总量,t为执行消耗时间,k1、k2、k3为权重因子,且,/>,/>,。
进一步的,相关度模型的建立以及训练包括:
使用离线数据对任务进行执行测试,并通过系统监控工具记录任务执行时处理器占用率、内存占用率以及使用的数据量;
将任务执行使用的数据量Number、处理器占用率CPU建立关联函数,将任务执行使用的数据量Number、内存占用率Memory建立关联函数,并建立相关度模型;
通过对相关度模型输入数据量,预测任务所需处理器占用率以及内存占用率,并使用大量离线数据对相关度模型进行训练和测试,直至输出结果的准确性达到期望值。
进一步的,任务的调度和发布包括:
通过相关度模型预测任务所需处理器占用率CPUi和内存占用率Memoryi,并与任务的第一评估指数γi以及优先级priorityi进行关联,生成第二评估指数δi,计算公式如下:
其中,i为任务ID,n为任务总数,为所有任务所需处理器占用率的加权平均数,为所有任务所需内存占用率的加权平均数;
通过系统监控工具获取生产系统闲置资源,通过比对来对任务进行调度并发布,预先设置闲置资源阈值,闲置资源阈值不低于当前生产系统资源的15%,当生产系统闲置资源与任务所需资源差值小于闲置资源阈值时,执行当前任务,反之则不进行操作;
当有多个任务同时满足上述条件时,比较其第二评估指数δi,优先执行第二评估指数δi最大的任务;当任务执行时,通过系统监控工具获取生产系统闲置资源,预先设置风险阈值,当生产系统闲置资源小于风险阈值时,暂停任务的执行,当生产系统闲置资源大于风险阈值时,重新启动任务。
一种高适用性离线数据处理任务发布系统,包括以下模块:
任务创建模块,用于创建离线数据处理任务,并对任务的相关内容进行定义,包括任务名称、任务方法名称、文件路径、优先级以及是否重复使用;
任务池,用于对离线数据处理任务进行管理、调度和发布;
任务分析模块,用于计算离线数据处理任务的第一评估指数以及建立任务数据量和所需生产系统资源之间的相关度模型以及生成第二评估指数;
任务调度模块,用于对离线数据处理任务从任务池的存取,以及对任务执行、暂停和终止的控制。
本发明另一方面提供一种计算机设备,包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述的数据处理方法中执行的各个步骤。
本发明另一方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如上述的数据处理方法中执行的各个步骤。
(三)有益效果
本发明提供了一种高适用性离线数据处理任务发布方法及系统,具备以下有益效果:
(1)通过创建离线数据任务表,并通过图形化界面或文本输入的方式定义数据处理任务,来完成对离线任务的配置,且通过配置优先级即可完成对离线任务发布调控,极大地简化了操作,提升了便捷性。
(2)通过创建离线数据处理任务池,并对任务池进行监控和管理,可以有效地对离线数据处理任务进行管控,避免由于执行的任务过多造成生产系统拥挤甚至崩溃,提高任务处理的效率以及生产系统的稳定性。
(3)通过对离线数据处理任务的相关数据进行计算,获得任务的第一评估指数,可以以此作为依据,综合其他因素来对任务进行管控,完成任务的派发,提升资源的利用率,以及任务处理的效率。
(4)通过对任务的第一评估指数、优先级以及所需生产系统资源进行分析,对离线数据处理任务进行调度和发布,可以避免生产系统闲置资源的浪费,提升离线数据任务的处理效率,节省生产系统资源。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明提供一种高适用性离线数据处理任务发布方法,包括以下步骤:
步骤一:在数据库中创建离线数据任务表,并通过图形化界面或文本输入的方式定义数据处理任务;
所述步骤一包括以下内容:
步骤101:打开数据库管理系统(如MySQL、PostgreSQL等),并连接到相应的数据库;
步骤102:创建一个新的数据库表以存储离线任务,使用SQL语句来创建表,sql语句如下:
CREATE TABLE offline_tasks (
id INT PRIMARY KEY AUTO_INCREMENT,
task_name VARCHAR(255),
method_name VARCHAR(255),
file_path VARCHAR(255),
priority INT(2),
re_use BOOLEAN,
creator VARCHAR(255),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updater VARCHAR(255),
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
status ENUM('Pending', 'Running', 'Completed', 'Failed') DEFAULT 'Pending'
);
步骤103:通过图形化界面或文本输入的方式定义数据处理任务,使用适当的数据库查询语言(如SQL)或ORM(对象关系映射)库来访问和操作该表,执行插入、查询、更新和删除等操作来管理离线任务。
需要说明的是,在上述步骤中创建了一个名为offline_tasks的表,包含以下字段:
id: 任务的唯一标识符,使用自增的整数作为主键。
task_name: 任务的名称,使用最大长度为255个字符的字符串来存储。
method_name: 任务的方法名称,使用最大长度为255个字符的字符串来存储。
file_path: 任务文件的路径,使用最大长度为255个字符的字符串来存储。
priority:任务的优先级,使用最大长度为2的整数类型来存储。
re_use:任务是否重复使用,使用布尔类型(BOOLEAN)来限制可能的值,'1'为是、'0'为否。
creator: 创建任务的用户的标识符,使用最大长度为255个字符的字符串来存储。
created_at: 任务创建的时间戳。
updater: 更新任务的用户的标识符,使用最大长度为255个字符的字符串来存储。
updated_at: 任务最后更新的时间戳,该字段设置为默认值并在更新时自动更新为当前时间戳。
status: 任务的状态,使用枚举类型(ENUM)来限制可能的值,包括'Pending'(待处理)、'Running'(正在运行)、'Completed'(已完成)和'Failed'(失败),默认值为'Pending'。
结合步骤101至步骤103的内容:
通过创建离线数据任务表,并通过图形化界面或文本输入的方式定义数据处理任务,来完成对离线任务的配置,且通过配置优先级即可完成对离线任务发布调控,极大地简化了操作,提升了便捷性。
步骤二:创建离线数据处理任务池,设定任务池任务容量,并通过日志和系统监控工具对任务池的运行状态进行管理和监控;
所述步骤二包括以下内容:
步骤201:确定任务类型和数量,确定离线数据处理任务有哪些类型,以及每种类型的任务数量;
步骤202:设定任务池的容量,根据任务类型和数量,为任务池设定一个初始的容量,容量的设定应该考虑到生产系统的处理能力、任务的第一评估指数以及任务的优先级等因素,容量过大可能会导致资源浪费,而容量过小则可能无法满足任务处理的需求;
步骤203:实现任务调度和发布,通过轮询、优先级调度用于将任务分配给空闲的处理单元;
步骤204:创建处理单元,每个处理单元可以是一个单独的线程、进程或者分布式计算节点,具体取决于生产系统架构和设计;
步骤205:管理任务池,在任务池运行过程中,对其进行管理,包括任务的提交、处理、完成以及异常处理等,可以使用各种工具来监控和管理任务池的运行状态,例如日志、监控系统等。
需要说明的是,离线数据处理任务池的设计和实现可能会受到多种因素的影响,例如生产系统的性能、资源的限制以及任务的特性等,因此,在实际操作中,需要根据具体情况进行调整和优化。
结合步骤201至步骤205中的内容:
通过创建离线数据处理任务池,并对任务池进行监控和管理,可以有效地对离线数据处理任务进行管控,避免由于执行的任务过多造成生产系统拥挤甚至崩溃,提高任务处理的效率以及生产系统的稳定性。
步骤三:从数据库获取任务所需要处理的总数据量Total,对每个任务使用离线数据进行执行测试,获取处理器占用率CPU、内存占用率Memory以及执行消耗时间t,以用于计算出当前任务的第一评估指数γ;
所述步骤三包括以下内容:
步骤301:从数据库获取任务所需要处理的数据总量,对每个任务使用数据进行执行测试,并通过系统监控工具记录当前任务在执行数据时所占用的生产系统资源,包括处理器占用率、内存占用率,以及执行消耗时间;
步骤302:通过数据总量、处理器占用率、内存占用率以及执行消耗时间,计算当前任务的第一评估指数γ,计算公式如下:
其中,m为离线数据的数据量,CPU为处理器占用率,Memory为内存占用率,Total为数据总量,t为执行消耗时间,k1、k2、k3为权重因子,且,/>,/>,。
需要说明的是,离线数据处理任务的第一评估指数是由多种因素决定的,如数据结构、算法、硬件配置、操作系统、多线程等等,此处只是对任务的第一评估指数进行粗浅地估算,因此只考虑到数据总量、数据总量、处理器占用率、内存占用率以及执行消耗时间这些影响因素,借由计算获得的第一评估指数对离线数据处理任务进行评估,根据生产系统资源的占用率,来对任务进行调度和发布。
结合步骤301至步骤302的内容:
通过对离线数据处理任务的相关数据进行计算,获得任务的第一评估指数,可以以此作为依据,综合其他因素来对任务进行管控,完成任务的派发,提升资源的利用率,以及任务处理的效率。
步骤四:使用离线数据对任务进行执行测试,通过系统监控工具记录任务执行时处理器占用率、内存占用率,并建立相关度模型,通过对相关度模型输入数据量,预测任务所需处理器占用率以及内存占用率,并使用离线数据进行训练,直至输出结果的准确性达到期望值;
所述步骤四包括以下内容:
步骤401:使用离线数据对任务进行执行测试,并通过系统监控工具记录任务执行时处理器占用率、内存占用率以及使用的数据量;
步骤402:将任务执行使用的数据量Number、处理器占用率CPU建立关联函数,将任务执行使用的数据量Number、内存占用率Memory建立关联函数,并建立相关度模型;
步骤403:通过对相关度模型输入数据量,预测任务所需处理器占用率以及内存占用率,并使用大量离线数据对相关度模型进行训练和测试,直至输出结果的准确性达到期望值。
需要说明的是,测试过的数学模型具有较高的准确度,可以用于对真实结果进行预测,所述步骤四用于对重复使用的离线数据处理任务进行训练,对于只执行几次甚至单次的任务不进行考虑,通过离线数据处理任务表中的re_use字段来确定。
结合步骤401至步骤403的内容:
通过使用大量数据对离线数据处理任务进行执行测试,得到数据量与所占资源的相关度模型,可以在以后的任务执行前,预测出当前任务需要占用的资源,以此来进行任务调度和发布,充分利用生产系统的资源,提高资源利用率。
步骤五:通过相关度模型预测任务所需处理器占用率CPUi和内存占用率Memoryi,并与任务的第一评估指数γi以及优先级priorityi进行关联,生成第二评估指数δi,预先设置闲置资源阈值,并与生产系统闲置资源与任务所需资源差值进行比对,根据比对结果,作出相应措施。
所述步骤五包括以下内容:
步骤501:通过相关度模型预测任务所需处理器占用率CPUi和内存占用率Memoryi,并与任务的第一评估指数γi以及优先级priorityi进行关联,生成第二评估指数δi,计算公式如下:
其中,i为任务ID,n为任务总数,为所有任务所需处理器占用率的加权平均数,为所有任务所需内存占用率的加权平均数;
步骤502:通过系统监控工具获取生产系统闲置资源,通过比对来对任务进行调度并发布,预先设置闲置资源阈值,闲置资源阈值不低于当前生产系统资源的15%,当生产系统闲置资源与任务所需资源差值小于闲置资源阈值时,执行当前任务,反之则不进行操作;
步骤503:当有多个任务同时满足上述条件时,比较其第二评估指数δi,优先执行第二评估指数δi最大的任务;
步骤503:当任务执行时,通过系统监控工具获取生产系统闲置资源,预先设置风险阈值,当生产系统闲置资源小于风险阈值时,暂停任务的执行,当生产系统闲置资源大于风险阈值时,重新启动任务。
需要说明的是,对于只执行单次或几次的任务,根据任务需要设置优先级,无需预测其所需资源,在生产系统闲置资源充足时进行处理即可,对于可重复执行的任务,在测试环境对其进行测试,建立相关度模型后移植到生产环境。
结合步骤501至步骤503的内容:
通过对任务的第一评估指数、优先级以及所需生产系统资源进行分析,对离线数据处理任务进行调度和发布,可以避免生产系统闲置资源的浪费,提升离线数据任务的处理效率,节省生产系统资源。
请参阅图2,本发明还提供了一种高适用性离线数据处理任务发布系统,包括以下模块:
任务创建模块,用于创建离线数据处理任务,并对任务的相关内容进行定义,包括任务名称、任务方法名称、文件路径、优先级以及是否重复使用;
任务池,用于对离线数据处理任务进行管理、调度和发布;
任务分析模块,用于计算离线数据处理任务的第一评估指数以及建立任务数据量和所需生产系统资源之间的相关度模型以及生成第二评估指数;
任务调度模块,用于对离线数据处理任务从任务池的存取,以及对任务执行、暂停和终止的控制。
本申请还提供一种计算机设备,包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述的数据处理方法中执行的各个步骤。
本申请还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现本申请各方法实施例的步骤。
上述公式均是去量纲取其数值计算,公式是由采集大量数据进行软件模拟得到最近真实情况的一个公式,公式中的预设参数由本领域的技术人员根据实际情况进行设置。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。