基于多数据源的任务调度方法与多任务协作处理方法与流程

文档序号:26851659发布日期:2021-10-09 02:09阅读:124来源:国知局

1.本发明工业大数据处理技术领域。


背景技术:

2.在工业大数据处理过程中,对于单个数据源清洗处理,任务量及调度实现简单。但是多个数据处理任务之间存在任务并行或者数据先后处理顺序,数据分析的数据源以及数据存储的目标数据库也存在多种类型的情况,容易发生以下现象:(1)在新的数据处理任务插入时,需停止正在进行其他数据处理任务,降低数据处理任务启动时间;(2)数据处理任务陷入死循 。


技术实现要素:

3.针对上述现有技术的不足,本发明提供一种基于多数据源的任务调度方法,解决多数据源的数据处理任务之间不具备协作性的技术问题。
4.为了解决上述技术问题,本发明采用了如下的技术方案:一种基于多数据源的任务调度方法,包括以下步骤:创建多条数据处理任务,每条数据处理任务均包括以下属性:数据处理任务名称、数据源名称与数据源地址、数据处理任务类型、目标数据库名称与目标数据库地址;从创建的多条数据处理任务中选择需要调度的数据处理任务,并解析出所选择的数据处理任务之间的任务依赖关系;根据所述任务依赖关系为各条数据处理任务配置任务调度信息,所述任务调度信息包含任务起止时间、任务优先级与任务启动周期。
5.进一步的,任务依赖关系包括循环关系与顺行关系;若一个数据处理任务的数据源是另一个数据处理任务的目标数据库,并且一个数据处理任务的目标数据库是另一个数据处理任务的数据源,则为循环关系;若两个数据处理任务非循环关系,则根据数据任务类型之间的逻辑关系确定顺行关系的优先级。
6.进一步的,若为循环关系,将一个数据处理任务配置为优先于另一个数据处理任务,并根据需要配置优先数据处理任务的任务启动周期,另一个数据处理任务的启动周期配置为优先数据处理任务执行结束。
7.进一步的,若为顺行关系,则根据任务优先级顺次启动,一个数据处理任务启动成功后根据下一个数据处理任务的任务启动周期启动下一个数据处理任务。
8.进一步的,数据源包括db2、ftp、mysql、hdfs、oracle、mongodb、redis、spark、storm与shell脚本类型。
9.本发明还提供一种基于多数据源的多任务协作处理方法,获取本发明的基于多数据源的任务调度方法所生成的任务调度脚本,并对各条数据处理任务进行如下配置:根据数据处理任务类型配置相应的数据处理算法、配置数据处理任务的数据流输出格式、配置数据处理任务的数据流入库模式,以生成任务调度脚本,按照任务调度脚本执行数据处理
任务。
10.进一步的,执行任务调度脚本后输出任务调度工作流。
11.进一步的,数据流输出格式包括parquet、text、csv、orc与json;数据流入库模式包括数据追加append与数据覆盖truncate;数据处理算法包括数据清洗算法、数据分析算法与数据抽取算法。
12.与现有技术相比,本发明具有以下有益效果:1、本发明为数据处理任务设置统一格式,为解析任务依赖关系提供必要信息,再基于任务依赖关系配置任务调度信息,各条数据处理任务均有相应的任务调度信息和任务调度脚本,使得各条数据处理任务按照自己的任务调度脚本执行即可相互协作,避免各条数据处理任务无秩序执行导致的陷入死循环或要中途暂停来插入新的数据处理任务的缺陷,大大提高了数据处理效率。
13.2、通过对数据处理任务进行配置以实现数据处理任务的执行,能够减少程序开发量。
具体实施方式
14.鉴于基于多数据源的多任务协作处理方法包含了任务调度方法,下面以多任务协作处理方法的实施例进行说明。
15.实施例1本实施例创建了3个数据处理任务:数据处理任务a、数据处理任务b、数据处理任务c,其属性分别如下:数据处理任务a:数据源data_source:ftp;data_source_ip:192.251.1.11;数据采集;目标数据库:hdfs;目标数据库地址:192.251.1.12。
16.数据处理任务b:数据源data_source:spark;data_source_ip,192.251.1.11;数据清洗;目标数据库:redis;目标数据库地址:192.251.1.12。
17.数据处理任务c:数据源data_source:redis;data_source_ip:192.251.1.12;数据抽取;目标数据库:hdfs;目标数据库地址:192.251.1.12。
18.为确保任务的合法性以及任务溯源性,数据处理任务还包括以下属性:任务编号、任务责任人及任务责任人联系方式。
19.由上述a、b、c三个任务可见,数据任务a、b的数据源在服务器192.251.1.11,数据任务c在服务器192.251.1.12。基于数据处理任务a、b、c的数据处理任务类型的逻辑关系,可解析出数据处理任务a、b、c的任务依赖关系为顺行关系:a的前置任务无、后置任务b,b前置任务a、后置任务c,c前置任务b,c后置任务无。优先级为a高于b,b高于c。
20.根据所述任务依赖关系为各条数据处理任务配置任务调度信息,任务调度信息分别如下:任务a:任务起止时间:2021.05.01

2021.05.30 ;任务优先级:1;重试次数:5;周期:每分钟;调度时间点:无。
21.任务b:任务起止时间:2021.05.01

2021.05.30;任务优先级:2;重试次数:5;周期:每分钟;调度时间点:无。
22.任务c:任务起止时间:2021.05.01

2021.05.30;任务优先级:3;重试次数:5;周
期:每5分钟;调度时间点:无。
23.根据数据处理任务类型,配置数据处理任务a为数据采集算法、数据处理任务b为数据清洗算法、数据处理任务c为数据抽取算法。
24.配置任务a、b、c三个任务数据流的输出格式,其中任务a的数据流输出格式为parquet、任务b数据流输出格式为text、任务c数据流输出格式为json。a、b、c三个任务数据流的入库模式为:append。
25.每项数据处理任务配置完成,生成并执行任务调度脚本;最终任务运行结果为:任务a启动,启动成功则任务b启动,任务c每5分钟从redis中抽取数据,并存入192.251.1.12的hdfs数据库中,最终输出任务调度工作流。
26.实施例2本实施例创建了2个数据处理任务:数据处理任务a、数据处理任务b、其属性分别如下:数据处理任务a:数据源data_source:mongodb,data_source_ip:192.251.1.11;目标数据库mongodb,服务器地址:192.251.1.12。
27.数据处理任务b:数据源data_source:mongodb,data_source_ip:192.251.1.12;目标数据库mongodb,服务器地址:192.251.1。
28.由上述a、b任务可见,数据处理任务a、b在目标数据库和数据源为循环关系:a的前置任务b、后置任务b,b前置任务a、后置任务a。基于任务a、b置入数据处理算法:a为数据清洗算法1、b为数据清洗算法2,此过程为多次数据清洗的情景下。ab任务数据流输出格式为text;任务a数据入库模式为:truncate,任务b数据入库模式为:append。
29.数据处理任务a:任务起止时间:2021.05.01

2021.05.02;任务优先级:1;重试次数:5;周期:半小时;调度时间点:无。
30.数据处理任务b:任务起止时间:2021.05.01

2021.05.02;任务优先级:2;重试次数:5;周期:a任务调度完成;调度时间点:a任务调度完成。
31.a、b数据处理任务配置完成,生成任务调度脚本;最终任务运行结果为:数据处理任务a执行结束后,数据处理任务b开始执行,基于配置的a、b任务关联关系以及数据任务的优先级,任务b执行结束,任务a二次开始,根据数据入库模式不同,最终a——>b 的数据为初次清洗追加的数据,质量高于原始数据,b——>a的数据为整个 b 任务中的整个数据覆盖,只保留高质量数据。在无第三方数据存储空间时,通过多次数据转换,实现数据二次清洗,提高数据质量。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1