温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
上一节我们已经完成了数仓中每一层的搭建啊,那接下来呢,我们就可以进行全流程调度了啊,那首先呢,我们需要先搞清楚啊,这个数仓的全流程指代的具体是什么啊,然后呢,我们又应该如何去进行调度?啊,那其实啊,数仓的全流程指代的就是每一层的计算任务啊,那说的具体一点呢,其实就是我们之前所编写的每一层的装载脚本啊,那这些脚本呢,它并不是各自独立的,而是相互依赖的。啊,那这个举个例子啊,例如DWD层的脚本呢,它是依赖于ods层的脚本呢?啊,那所以说我们需要先执行ods层的脚本,并且等待OD层的脚本计算完成之后,才能开始执行DWD层的脚本,啊那所以说我们在调度这些脚本的时候呢,需要考虑到脚本与脚本之间的依赖关系。啊,那另外啊,由于业务系统每天都有新数据产生,所以说我们数仓当中的这些脚本呢,每天都要执行一遍啊,那也就是说我们还得去考虑一个定时的问题啊,那现在的需求呢,其实已经很明确了啊,就是我们在调度的时候需要考虑到依赖关系以及定时的问题。
01:12
啊,那接下来呢,我们来分析一下这个实现的方案啊,那其实提到这个定时啊,大家首先可能会想到Linux当中的定时工具啊,也就是tab对吧,那这个工具它能不能满足我们的需求呢?啊,在这我们简单的分析一下啊,由于啊我们需要定时调度的脚本有多个啊,而一般情况下呢,啊,一个type定时任务,那只能调度一个脚本对吧?那所以如果我们使用c type去进行调度啊,那我们就需要去配置多个定时任务。啊,那又因为这些脚本呢,它是有依赖关系的啊,那所以说我们必须得保证前后的执行顺序,那所以说呢,我们在使用C去调度的时候啊,我们只能先估计每个任务所完成的时间,对吧,然后呢,再依次去确定每个任务的开始执行时间。
02:01
啊,那举个例子啊,比如说我们第一个任务啊,定在每天的00:10开始执行啊,那假如我们估计他需要的时间呢,是一个小时啊,那所以说第二个任务就需要定在每天的01:10开始执行。对吧?啊,我们只能这样去做啊,那显然啊,这种做法呢,是不够严谨的啊,为什么呢?啊,因为如果我们所估计的时间不够准确,那就可能会出现第一个任务还没有完成,而第二个任务呢就开始执行的情况。啊,对吧?啊,那综上所述呢,这个口tab其实是不太适合我们去使用的啊,那数仓的全流程到底应该如何调度呢?啊,这个答案呢,就是阿兹卡班啊,那阿兹卡班是什么啊,这是一个专门用来调度数仓当中的批处理工作流程的定时调度工具,那所以啊,我们从下一节开始啊,就得先去专门学习一下阿斯卡湾这个定时调度工具。
我来说两句