00:00
那上一节呢,我们已经讲完了调度模块的第一个脚本啊,那这第一个脚本呢,它最核心的一个函数就是no的函数,对吧?啊,它可以等待我们指定的一个工作流程当中的一个节点执行完成,对吧?然后我们的逻辑呢,诶,就是让他去等待数据仓库的工作流程当中的某个节点执行完成啊,那等到完成之后,诶,我们再去触发相应的数据质量监测任务。啊,那这个逻辑我们目前还没有实现对吧?那接下来我们要编写的呃,数据仓库各层的这个调度脚本,就是为了实现这个逻辑的啊啊,那下边呢,我们需要为数据仓库的每一层都去创建一个脚本啊,那现在我们先看第一个啊,就是ods层调度脚本啊,这个脚本的名字呢,叫做check ODs.PY它也是一个Python脚本对吧?啊,那现在呢,我们把这个脚本创建出来,然后呢,去看一下它的内容诶。来,我们右键新建一个文件啊,File,然后CTRLV,好,那现在把这个脚本的内容拿过来。
01:02
CTRLC。呃,来CTRLV。啊好,其实这个脚本的逻辑呢,并不复杂啊,那现在我们来一起看一下,那首先在这儿我们先声明了一个函数对吧,这个函数叫啥?这叫做check ods,那这个函数呢,内容很简单,只有两行对吧?主要就是一个if判断啊来我们看一下它的判断条件是什么啊,来看if VI node hdfs to ods DB。And VI node啊,后边是啥?是hdfs to ods log啊,大家还记得这个vinode函数吧?此处我们调用的vinode函数就是从我们前面编写的az client这个脚本当中哎,引进来的啊,这个大家要注意一下啊,OK,那大家还记得这个函数逻辑吧?这个函数它是不是会等待我们所传入的这个节点执行完成,并且是执行成功,是不是才会返回处啊?没错吧,那也就是说此处呢,我们就是在等待谁,等待这个节点,还有后边的这个节点执行成功啊,那等他俩都成功之后,是不是再去执行下边的这个语句啊,对吧?那下边这个语句执行的是啥?其实很简单,那在这儿呢,它执行的是一个系统命令对吧?什么系统命令呢?我们来看一下是不是执行的就是by check os.sh了,对吧?也就是在这儿呢,会调用一个shell脚本。
02:23
没错啊,这个山药脚本大家还有点印象吧,那这个脚本是不是就我们前面编写的OD层的数据质量监测脚本啊,对不对,那是不是在这儿来我们可以简单看一下啊,来给它打开,那这个脚本当中是不是包含了OD层的所有的数据质量监测指标啊,对吧?比如说它会有O层O这张表的数据量日环比增啊,还有ods层这张表的数据量每同比增长等等。好,那现在我们再回到刚才这个脚本啊,那实际上这个脚本当中的check ods函数,它的核心逻辑就是核心逻辑实际上就是等待数据仓库的工作流程当中的ods层的计算任务执行完成,对吧,然后呢,再去触发ods层的数据质量监测任。
03:11
没错吧,哎,这就是哎,咱这个函数的核心逻辑,OK,我们再往下啊,那再往下呢,就没有其他的函数了啊,那这个是不是就是我们Python脚本的入口啊,对吧?啊,也就是我们在调用这个Python脚本的时候呢,它会先去执行下边这段逻辑啊,我们来看一下这逻辑啊,那首先我们先获取到了系统参数对吧?这个所谓的系统参数呢,实际上指的就是我们调用这个Python脚本的时候传入的参数啊好,那完之后往下走,下边是不是调用login这个函数进行登录,然后获取session ID啊,对吧?啊,然后再往下,那下边是不是调用get e s e cid这个函数去获取我们所需要的EXID,没错,然后大家一定要注意一下啊,就是这个函数,它是是只能获取我们指定的这个工作流程正在执行的记录的excution ID啊。
04:01
对吧?这个一定要注意啊,然后再往下呢,呃,这儿判断了一下参数的个数对不对啊,大家注意观察他这时候判断参数个数是否是大于等于二的呀,对吧?那前面给大家讲过啊,在我们去调用Python脚本的时候呢,那我们第一个参数指的是谁?第一个参数呢,是这个脚本本身,也就我们自己给这个脚本传的参数呢,是从第二一个开始的,没错吧?那所以说此处呢,诶,他判断了一下,诶我们这个参数呢,个数是否是大于等于二的啊,如果大于等于二,那就说明我们给他传了一个参数,对吧?OK,那我们给它传是啥啊,在这儿呢?诶我们可以给传一个日期啊,那如果我们传日期了,诶,那DT啊,就会获取到我们传的值对不对,如果没有传这个DT呢,就会等于前一天的日期啊好,那接下来我们继续往下进行啊,那最后呢,他又判断了一下e SEC cid,它是否为空啊,那如果它不为空,这表明什么呀。不为框,是不是表明我们指定的这个工作流程现在正在执行啊,对吧?为啥啊,因为我们前面提到过啊,就这个函数呢,它只会返回我们指定的工作流程正在执行的记录的ID,没错吧?啊,那如果现在这个工作流程没有执行在这儿呢?我们是拿不到任何的exed的啊,这个一定要理解一下啊好,那如果这个工作流程现在正在执行,那我就调用我们前面所定义的check ods这个函数,对吧?那这个函数会干啥?这个函数是不是会去等待这两个节点执行完成啊,并且成功之后再去触发这个ods层的数据质量监测的任务啊。
05:39
OK,那这就是我们check ODs.PY这个脚本的核心逻辑,那我们再继续看剩下的两个调度脚本啊,那剩下的两个呢,分别是DWD层的调度脚本和dim层的调度脚本,那实际上这两个脚本的逻辑以及内容呢,和我们刚刚所讲的ODI层的调度脚本呢,是非常非常像的啊,那所以在这呢,我们把这两个脚本创建出来,然后简单的看一下就可以了啊好,我们先看DWD层的这个脚本,它叫做check dwd.py对吧,也是一个Python脚本,来我们CTRLC来给它创建出来右键,然后新建一个文件。
06:13
CTRLV,好,那现在我们把这个脚本的内容复制一下啊。来,CTRLC。我们拿过来。啊好,大家简单看一下啊,首先在这儿,呃,也是先声明了一个函数对吧,叫做check d WD,那这个函数逻辑呢,就是等待数据仓库的工作流程当中的ods dwd DB啊,以及ods to dwd log这两个节点执行完成啊之后呢,再去触发DWD层的数据监测任务。啊OK啊好,那接下来往下走,下边呢,就是这个呃,脚本的入口了,对吧?那脚本的入口呢,跟之前也是一样的结构,那此处呢,我们就不再赘述了啊好,那接下来呢,我们再去看下一个脚本啊,下一个呢是check dm.py对吧?我们也是先给它创建出来啊,诶我们右键。
07:02
完之后呢,诶CTRLL把这个脚本创建出来,然后呢,去复制一下它的内容。发。来,CTRLZ。来CTRLV,好,那我们简单看一下这个脚本的内容啊,那此处呢,它的核心函数还是这个啊,就是check DM,那这个函数逻辑呢,就是去等待数据仓库的工作流程当中的o Dis to dim DB这个节点执行完成,然后呢,去触发dim层的数据质量监测任务啊OK,那下边这个脚本的入口呢,跟之前也是一样的结构啊,就不再赘述了啊好了,那至此,诶,我们这个调度模块的所有脚本就全部创建完成了。
我来说两句