本发明涉及数据仓库调度,尤其涉及一种快速批量执行数据仓库工作流的方法、系统及存储介质。
背景技术:
1、随着大数据时代的到来,数据仓库系统已成为企业决策支持和业务洞察的重要基础架构。数据仓库系统的建设需要完成大量的数据抽取、数据转换、数据加载等任务,而这些任务之间通常存在复杂的依赖关系,需要通过任务调度来实现自动化执行与协调。随着大数据技术的发展,通常会选择apache dolphinscheduler作为任务调度系统,它是一个分布式易扩展的可视化dag工作流任务调度开源系统,适用于企业级场景,其提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。
2、apache dolphinscheduler每天会调度大量数据仓库任务,每一个任务对应一个工作流,并且工作流之间还存在复杂的依赖关系。当一个工作流a执行的数据有问题时,依赖它的工作流b执行的数据也会出现异常,同理,依赖工作流b的工作流c执行的数据也会出现异常,以此类推,后面所有有直接或间接依赖工作流c的也会出现异常,直到最后一个工作流。
3、而如果想修复工作流a,以及影响的所有下游工作流,由于工作流之间存在依赖关系,必须按照依赖顺序先后顺序执行所有的工作流,目前的方式只能通过人工方法找出依赖关系,并根据依赖的先后顺序逐个手工重新执行工作流,存在执行效率差、花费人工成本高,且容易产生遗漏,进而影响数据仓库数据的准确性的问题。
技术实现思路
1、本发明的目的是提供一种快速批量执行数据仓库工作流的方法、系统及存储介质,该方法通过分析工作流的依赖关系,并利用neo4j图数据库存储,再通过查询图数据库中的节点,找出所有下游工作流,最后调用apache dolphinscheduler api自动化按顺序重新执行工作流,提高了执行效率,也保证了工作流执行的准确性。
2、为实现上述目的,采用以下技术方案:
3、一种快速批量执行数据仓库工作流的方法,包括如下步骤:
4、s1:解析apache dolphinscheduler,得到所有工作流之间的依赖关系;
5、s2:将s1得到的所有工作流之间的依赖关系,存储于neo4j图数据库中;
6、s3:输入需要批量执行的所有工作流的名称,在neo4j图数据库中,查询每一要执行的工作流对应的所有下游工作流的节点;
7、s4:基于下游工作流的节点,确定所有下游工作流的名称与层级;
8、s5:基于下游工作流的层级顺序,调用dolphinscheduler api,批量执行对应层级的工作流,直至所有下游工作流执行完成。
9、进一步的,所述s1中,是通过扫描apache dolphinscheduler的元数据库的t_ds_process_task_relation表,得到所有工作流之间的依赖关系。
10、进一步的,在所述neo4j图数据库中,节点存储工作流名称,关系指向依赖的工作流。
11、进一步的,所述s3具体包括如下步骤:
12、s31:输入需要批量执行的所有工作流ai,其中,i=1,2,3,…,n;
13、s32:在neo4j图数据库中,查询每一工作流对应的节点na,并标层级为1;
14、s33:查询与节点na相连接的所有下游节点naj,并标层级为2,其中,j=1,2,3,…,n;
15、s34:以此类推,继续查询与每一节点naj相连接的所有下游节点,并依次标记层级,直至所有节点没有下游节点为止。
16、进一步的,所述s5中,是基于下游工作流名称以及层级,按照层级从小到大的顺序调用dolphinscheduler api,以批量执行对应层级的工作流。
17、一种快速批量执行数据仓库工作流的系统,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,所述处理器执行计算机程序时实现上述的方法。
18、一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行上述的方法。
19、采用上述方案,本发明的有益效果是:
20、1)本申请通过分析工作流的依赖关系,并利用neo4j图数据库存储,再通过查询图数据库中的节点,找出所有下游工作流,最后调用apache dolphinscheduler api自动化按顺序重新执行工作流,提高了执行效率,也保证了工作流执行的准确性。
21、2)本申请可以快速执行全部工作流,不再需要人工逐个点击执行,而且随着批量执行工作流的增多,人工参与的时间也不会增加,同时,也可以避免人工操作产生遗漏或者执行顺序不正确的情况,提高了工作流执行的准确性。
1.一种快速批量执行数据仓库工作流的方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的快速批量执行数据仓库工作流的方法,其特征在于,所述s1中,是通过扫描apache dolphinscheduler的元数据库的t_ds_process_task_relation表,得到所有工作流之间的依赖关系。
3.根据权利要求1所述的快速批量执行数据仓库工作流的方法,其特征在于,在所述neo4j图数据库中,节点存储工作流名称,关系指向依赖的工作流。
4.根据权利要求1所述的快速批量执行数据仓库工作流的方法,其特征在于,所述s3具体包括如下步骤:
5.根据权利要求1所述的快速批量执行数据仓库工作流的方法,其特征在于,所述s5中,是基于下游工作流名称以及层级,按照层级从小到大的顺序调用dolphinschedulerapi,以批量执行对应层级的工作流。
6.一种快速批量执行数据仓库工作流的系统,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,其特征在于,所述处理器执行计算机程序时实现如权利要求1至5中任一项所述的方法。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1至5任意一项所述的方法。
