00:00
好,那上一节呢,我们已经完成了数据质量监测任务所需的所有脚本啊,那现在我们就可以准备进行全流程的调度测试了啊,那首先呢,我们需要先在阿卡湾当中新建一个project,那现在我打开阿斯卡湾的工作界面啊,来,我们点击create project,那在这儿呢,我们就起名为date,然后呢,Supervisor super vior,好,那下边的描述信息呢,也跟它同名就可以了,然后呢,点击create。好,那之后呢,我们需要上传咱们所需的工作流程配置文件对吧?啊,OK,那现在呢,我们需要去编写配置文件,那阿斯卡班的工作流配置文件呢,一共有两个啊,那分别是project文件和flow文件对吧?那当然呢,核心的配置文件就是这个flow文件啊啊,那现在呢,我们就不在逐行去编写了啊,我们来看一下就可以了啊,首先先看这个project文件。呃,Product文件呢,是固定的写法,这个就不再解释了啊,然后我们看下边的flow文件啊啊flow文件的内容呢,其实也不多啊,也比较简单啊,全部内容啊就是这些啊,那这个文件我们如果自己写,通常怎么写?那通常呢,我们应该先去画一个流程图啊,然后呢,对照着流程图再去编写相应的flow文件啊,这样一来的话呢,它不容易出错啊,OK,那现在呢,我们就对照这个原来的流程图去看一下就行了啊诶,咱们把这个流程图拿过来,诶,给它截个图啊,然后呢,对照着去看一下。
01:22
好,我们来看啊,那首先我们来看一下flow文件当中啊,这是不是有一个no啊,对吧?No前面咱们讲过,实际上这是一个数组对不对,那数组里边是不是会有多个元素,那每个元素就分对工作程个点对吧?或者个job啊是这样的啊,我们简单看一下,首先我们看第一个,第一个是不是check ods对吧?它对应的是不是就是ods层的数据质量任务啊,对吧?啊,那这个呢,就是check d WD,那当然它对的呢,就是DWD层的数据质量监测任务,OK,那剩下的呢,都是一一对应的啊,我们就不再一个看了,然后呢,我们再来观察一下啊,这个节点之间的依赖关系啊,那根据我们这个流程图呢,我们能够看出来,对吧?Check notification是依赖于check OS check d和check DM的,对吧,那这个依赖关系是怎么体在flow文件上的呀,就很简单,是不是就体现在这个参数上面。
02:16
没错吧,这个就是check notification,那它呢,是depends on check ods check dwd和check DM的,OK啊,那这就是咱们这个工作流程的依赖关系啊,那之后呢,我们再来看一下啊,咱们这个工作流程当中的每个节点的任务类型啊,任务类型是不是就那个type呀,对吧?咱们看一下这个type都是啥,这个type是不是都是command的呀,对吧?啊也就是说,哎,我们实际上每一个节点执行的任务呢,是不是都是一条命令啊。啊,那我们现在来看一下它执行的是什么命令啊来我们以第一个为例啊,它执行的是啥,是不是Python,然后check ods py,然后后边呢,传了一个Dollar dt啊,对吧?啊,那也就是说我们这个可的调用的都是啥,都是我们前面所编写的Python脚本。
03:03
啊,然后大家再注意一下啊,我们调用Python脚本的时候是怎么调用的。在这儿是不是直接使用Python这个命令完后边儿呢,给他传了一个Python脚本的,相当于是一个相对路径嘛,对不对,这不是一个绝对路径,那既然是相对路径啊,那我们为了保证啊这个Python能够找到对应的Python脚本,那所以说我们一会儿需要将啊它调用的这些Python脚本与这个flow文件一同打包,然后呢进行上传。啊,只有这样呢,我们这个Python命令才能找到他所需要的脚本,这个大家一定要注意啊,好,那当然呢,我们需要打包的也不止这几个Python脚本,为啥?因为Python脚本当中是不是也以相对路径的方式引用了其他的shell脚本呀,对吧?那所以说我们前面所编写的所有脚本都需要包含在我们一会儿打的这个包当中啊,这个大家一定要注意,OK,那最后我们再来看一下这个flow文件所需要的参数啊,它一共需要两个参数,一个呢就是DT,那还有一个呢,就是下边的alert。
04:03
啊,那这个DT呢,指的是我们统计数据的日期,那这个alert呢,指代的是不是告警方式啊,对吧?啊,你可以看到啊,这个alert参数传给谁了?是不是传给了check notification这个脚本了?没错吧,它指的是方式啊,那这两个参数我们应该如何处理呢?先说DT啊,这个T呢,我们可以给他传一个日期对吧?当然传日期的格式呢,应该是年杠月杠日对吧?那当然你不传行不行,不传也行,呃,如果不传,那他是不是会自己去计算前一天的日期啊?没错吧,OK,这是DT这个参数,那这个alert应该如何处理呢?那当然这个lert参数呢,也是可传可不传的啊,那它的选项呢,又有两个,一个是one,一个呢是mail啊这个万指的是什么?诶,指的是以瑞向云当中的这个告警媒介,哎,发送告警通知啊,那如果传的是mail呢?诶,是不是就是用邮件去发送告警通知啊对吧?这个大家一定要注意一下啊,那它的默认值是啥?诶,默认值我们配置是瑞向云对吧?啊,也就是说如果不传,那它的默认值就是万,这个呢大家一定要注意一下,然后关于alert这个参数呢,还有一个注意事项啊,需要给大家说一下啊,大家都知道alert呢,在这指的是告警方式,对吧?我们可以选择瑞向云,也可以选择邮件对不对?但是不管用哪种方式,我们是不是都得指定一个收件人呀?
05:21
没错吧,啊,那这两种方式的收件人应该如何指定呢?啊,我们先瑞象云啊,如果在这儿你选的是瑞象云对吧?那收件人是在哪配的呀?是在瑞向云的智能告警平台上面去配的,对吧?是不是可以在配置通知策略的时候指定收件人呀,对吧?这个在我们之前讲阿斯卡班的时候演示过,对吧?啊那如果说我们使用的是邮件通知呢?哎,那我们的收件人应该如何制定啊,这个其实咱们前面也提到过啊,实际上很简单,应该怎么操作呀?那我们要做的呢,实际上是去修改这个check notification.py脚本啊,那改什么地方呢?来,那我们去打开这个文件看一下啊,来找到check notification.py这个脚本对吧?完之后呢,我们找到mail alert这个函数啊,然后呢,我们找到以下两个变量,对吧?大家看一下啊,那这里边是不是有一个是ther,有一个是receive啊对吧?Ther在这指的就是发件人啊,那re receive呢,就是我们刚刚提到的收件人,这个re receivers,大家注意观察,是一个数组对吧?也是此处呢,我们是可以配置多个收件人的啊,当然呢,我们这个脚本当中啊,用的这个发件人和收件人是同一个,对吧,它是不是都是指向了mail user啊对吧?没我们往上点是不是就是诶这个邮箱啊,那当然呢,大家在这儿一定得根据自己的实际情况做出相应的修改,那比如说现在我就不用这个邮箱了,对吧?我想改成自己的邮箱,应该怎么改啊,啊很简单,那现在我需要先找到我自己的邮箱,对吧。
06:44
那在这比如说我用的是QQ邮箱,那先拿到QQ邮箱的SMP服务器的地址啊,完之后呢,我给它修改一下啊,此处需要替换一下CTRLV对吧?然后呢,找到自己的邮箱来,我再打开一下这个文件啊,来这是我的邮箱,CTRLC拿过来啊,然后呢,给它替换一下。
07:01
啊,再往后呢,这个密码其实不是密码而是啥,而是这个邮箱的第三方授权码对吧?来CTRLC啊,拿过来之后呢,我们再给它替换一下,来CTRLV啊好了,那现在呢,我相当于就把我的发件人和收件人是不是都改成诶我自己这个邮箱了呀,最后再提醒大家一下啊,一定要根据自己的实际情况做出相应的修改啊,要不然呢,你用的都是我的邮箱对吧?啊好,那我们这两个阿兹卡湾的配置文件所涉及到的全部内容就都讲完了,那现在呢,我们把这两个文件创建出来啊,那现在我们先创建第一个阿斯卡班,点project ctrl c,那我们就还在idea里面创建就可以了啊来啊,右键,然后呢新建文件啊,然后CTRLV。啊之后呢,把这个文件的内容复制一下啊,来CTRLC。CTRLV,好,第一个文件搞定,接下来呢,我们再创建第二一个啊,第二一个呢,我们管它叫做flow文件对吧?来CTRLC,然后右键,然后新建文件CTRLV,来,那现在呢,我们去拿一下这个文件的内容啊来。
08:02
CTRLC全部复制过来,然后呢,CTRLV。啊,那这样呢,我们忽略这个插件就可以啊行,那现在第二一个文件我们也创建出来了啊啊,那现在我们所需的文件就已经准备好了啊,那在接下来呢,我们要做的工作呢,诶就是将这些所有的文件给它打到同一个资IP包里边,然后呢进行上传啊那现在我们操作一下啊,首先我们现在文件浏览器里边打开这些文件啊来我们右键,右键完之后呢,选一个授印explorer。啊,那现在呢,我们从文件浏览器里边诶,就可以找到这些文件了,对吧?那之后呢,我们需要将其打到同一个zip包里,那这里边所有的文件咱们都需要,那稍微注意一下啊,这里边有一个iml文件对吧?这是呃,Idea的一个工程文件,咱不需要啊,所以给它去掉就行了,然后呢,我们右键,右键之后呢,给它呃,用这部工具打造一个zip包里啊,咱们就点它就行。好来注意观察,那这是不是已经出现了一个zip包对吧?那现在我们CTRLC啊,给它放到桌面上啊,来CTRLV,那之后呢,我们就可以进行上传了,对不对?好,那现在点击upload,然后选择文件,那这时候呢,就选择我们刚刚打好的这个zip包就行啊之后呢,点击upload。
09:09
好,那现在已经上传成功了啊,那如果大家在上传的时候呢,此处出现了这个错误,那就说明你所编写的工作流程配置文件是有语法错误的,好,我这儿没有出现,那就说明没有错误啊,现在我们可以点一下这个flow啊,点完之后此处是不是会出现这个工作流程图啊,对吧?这个图和我们之前自己画的那个工作流程图是一致的,对吧?那再次印证了我们的工作流程配置文件是没有问题的,对吧?啊好,那再接下来呢,我们就可以准备去调度这个工作流程了,那由于诶,咱这个数据质量监测的工作流程啊,它是依赖于咱之前的数据仓库的工作流程的,没错吧,这个之前我们也提到过了啊,那所以此处呢,我们需要先去启动啊,之前数据仓库的工作流程,然后呢,才能启动数据质量监测的这个工作流程。啊,那说的具体一点呢啊,就是我们一会儿需要先启动JA ma这个工作流程,然后呢,再去启动date supervisor这个工作流程啊。
10:06
那我们要想去跑J贸这个数据仓库的工作流程,是不是又得准备一天新的数据啊,对吧?我们之前呢,已经跑到2020年的6月17号了,对吧?那现在我们还得再去准备诶一天18号的数据啊好,那现在呢,我们就去准备一下这个新数据啊好,那现在我们打开这个叉啊,完之后呢,我们先去生成6月18号的用户行为日志啊,先生成日志啊,那要想生成日志是不是得先启动日志的采集通道啊,对吧?那现在呢,我们启动一下我们需要启动的服务呢?有呃组kper,有卡夫卡,还有flu,对吧?那现在我先起组kper啊,哎,我们使用home艾硅谷,然后B目录里边的Z k.SH去启动主K版,然后start。啊,那现在呢,应该已经启动成功了啊,今天我们最好查看一下状态status。啊,那状态是不是都是follower leader follower啊对吧,那就说明已经启动成功了啊,那之后呢,我们再启动卡夫卡,同样是使用home Google b下边的卡夫卡的启动脚本,来我们传一个start。
11:09
OK,那这个卡夫卡呢,应该也已经启动起来了啊,那之后呢,我们启动啊,那是不是也是在然后下对吧,那里有一个f1.sh,我们执行。啊,那二和三的flu已经起起来了,那之后我们在使用呃,F2的SH去启动104的flu OK,那现在呢,应该都已经启动起来了啊,启动起来之后呢,我们就可以去模拟生成日志了,对吧?那这时候日志是不是就会经这个采集通道写到H上面啊,那现在呢,我们就去准备生成日志啊,当然生成日志之前我们需要改一下配置文件对吧?我们需要改一下日期啊cdl op Mo应该是有一个log对吧?那进来之后呢,我们改一下application email文件,然后呢,我们将日期改成18啊来完事,Shift CZ,注意103是不是也要做同样的修改CD到OPT module log啊。
12:01
APP。好,那完之后呢,我们去修改一下ipk点压面文件,那之后也是将日期改成18。好,改完之后呢,Shift z z保存关闭好,那现在我们就可以去执行生成日志的脚本去生成日志了,对吧?来我们来到102啊,然后呢,我们去执行home艾特硅谷啊,然后B下边有一个Lg.SH对吧,直接回车,现在呢,它就会在102和103这两台去模拟生成18号的数据,对吧?那如果我们采集通道是没有问题的话,那现在数据是不是应该已经在往HD上面写了呀,对吧?那现在我们去查看一下啊,由于现在我们的杜呢启用了科普S安全认证对吧?那所以为了方便呢,我们在这儿使用火狐浏览器访问啊。来打开火锅浏览器,那之后呢,我们要访问的地址是不是跟之前也不一样了,对吧,我们要访问的是HTTPS,然后嗨,1029871对吧,我们点一下这个吧,啊点完之后此处他是不是让我进行认证啊,对吧,那现在我就认证为艾特硅谷用户吧,来艾特诶硅谷。
13:01
之后呢,密码也是艾特归国,然后点击OK。好,那现在已经认证成功了,对吧?呃,现在我们去访问一下数据有没有写上来啊,我们找到origin data,然后JA ma,找到log,然后找到topic log,大家来看一下此处是不是已经出现了6月18号的数据了,对吧?诶,那就说明我们日志采集通道诶是没有问题的,那18号的用户型日志我们就生成完毕了,那接下来呢,我们再去生成6月18号的业务数据啊,那业务数据我们需要CD点点,然后CD到这个D里边对吧?此呢我们要修改一下配置文啊,同样的是日期修改一下就行了啊,把这个时期改成18啊之后shift之内,那现在呢,我们只需要执行一个Java杠这啊,然后呢,指向这个Java是不是就可以了,直接回车。好,那现在呢,他就会往哎,MYSQL数据库里边去写入6月18号的业务数据啊,这个时间稍长一点,咱们稍微等一下啊,好,已经完事了啊,那现在我们myql j Mo数据库里边就应该已经出现了6月18号的业务数据了啊,在这儿呢,我就不再去查看了,应该是没有问题的,好,那至此呢,我们需要的6月18号这一天的新数据就准备好了啊,那接下来呢,我们就可以开始全流程调度了,然后我再提醒大家一下啊,在这儿我们需要先启动数据仓库的工作流程,再启动数据质量监测任务的工作流程啊好,那现在我们打开阿斯卡门的工作界面,找到j ma啊点点完之后呢,点击cute flow,那在这儿呢,我们需要传入几个参数,对吧?来点一下flow parameters,那首先我先加入第一个参数DT,那DT的值应该是2020杠零六杠幺八对吧?OK啊,那之后呢,我这还得再加一个参数,加一个什么参数,就是use e SE e,那为什么要加这个参数啊,因为我这这个数据参。
14:46
仓库它的工作流程所需的所有的脚本都只位于HIDOOP102这一台节点上,所以在这儿呢,我需要指明HIDOOP102去执行所有的任务,所以说呢,才需要加上这个参数啊,那这个参数的值应该是啥呀?值是不是应该是hi doop102这台节点上面的if cut的ID啊,对吧?这个ID去哪看,是不是还是得去数据库里边看啊,对吧?那现在我们找到阿兹卡班的数据库,找到ex表,那之后呢,来看一下102这台节点的EXID了,是不是一呀,对吧?那现在我们给它拿过来啊,给他在那填上就可以了吧?OK,那现在我们就可以提交数据仓库的工作流程了,点击excute,然后点击continue。
15:24
啊,好,那现在数仓的工作流程是不是已经开始运行了对吧?那现在我们就可以去提交数据质量监测任务的工作流程了啊好,那现在我们找到下边的date supervisor点,点完之后呢,我们也是点击flow啊,那在这儿呢,我们也需要入几个参数,首先第一个哎,就是DT对吧?那DT呢,在这我们也传2020杠零六杠幺八就可以了啊,然后我们再往下还得再传一个参数,什么参数啊,就是alert alt对吧?这个是啥?是不是我们那个告警的方式啊,对吧?那在这儿呢,我使用没有这种方式,也就是电子邮件的方式去发送告警信息啊,然后大家稍微注意下,在这儿我还需不需要去指定ex啊,也就是说我还需不需要去传use ex这个参数啊,那这块也需要传啊,那为什么要传来我们分析一下啊,那大家回忆一下,在我们这个数据质量监测任务的工作流程当中啊,是不是咱写了很多的脚本啊,对吧?那这脚本里边是不是引用了的客户端也引用了MY的。
16:25
客端呀,对吧,因为我们会去执行have杠一这样命令,或者是my serve杠一这样的命令,没错吧?啊,那我现在是不是只有102这台节点,诶有have的客户端和MY的客户端对吧?那所以说这个任务必须得让他去102执行啊,他才能找到它所依赖的客户端,那如果你不想指定use ex这个参数,那你就得保证每个ex所在的节点是不是上面都得有have的客户和MY的客户呀。对吧,这个大家呢,是自己的具体情况而定啊,那我这呢,这个use ex参数是必须得传的,好,那现在呢,我们传一下啊,点roll完之后呢,写上use SE use,那这个ID呢,还是一对吧,那完了之后呢,我们点击ex,然后点击continue。
17:10
OK,那这个工作流程呢,也就开始执行了,那这两个工作流程执行的时间呢,可能比较长啊,所以在这儿呢,我先把视频停一下,等它执行完我们再来看结果,好,那历时差不多半个小时的时间啊,这两个工作流程都已经执行完程了,我们可以看一下啊,那大家现在看到的呢,是数据质量监测的工作流程啊,那这个呢,是数据仓库的工作流程啊,都是成功的状态,对吧?那那现在呢,我们可以去查看一下my circleql当中的结果啊,大家注意啊,这两个工作流程呢,都会往MYQL里边去写入数据,对吧?啊,数据仓库的工作流程呢,会将我们每个指标的统计结果写到那个JA ma report库里边,对吧?那我们这个数据质量监测任务的结果呢,会被写入到date superor这个数据库当中啊,那当然现在我们的重点呢是数据质量监测对吧?那所以现在我们去看一下date supervisor这个数据当中的结果啊好,我们现在打开数据,然后呢找到date supervior,那这是我。
18:10
先来查看一下里边的数据啊,来大家看啊,这个对阳day,这是数据量的每日环比增长对吧?啊OK,大家可以看一下这个数据啊,这个呢是我们统计的结果啊,增长了15.18%对吧?啊,那后边呢是啊它的上下线,那显然这个值是不是已经超出了上下限。没错吧,那所以说这个应该算作异条异常数据才对啊啊,那接下来往下走啊,下边呢,是dulicate,这个统计的是重复值,大家可以看到啊,我们这儿这个重复值是不是都是零啊,说明没有重复值啊来往下走no ID no ID呢,是不是统计的是空值的个数啊,对吧?那这里边也都是零啊,那再往下啊,RNG,这个RNG是不是咱那个域统计啊,对吧?啊,那我们域的上下是多少,是零到十,然后我们统计结果是多少,是40,那就说明在这张表当中,这个字段的值呢,有47个超出了我们的值域范围。
19:05
那当然这个算不算异常呢?其实不算异常,为啥?诶,因为我们这个统计结果的上下线呢,是零到100,那47是不是位于这个范围内啊,对吧,所以说它不是异常数据啊好,我们再往下看最后一个。啊,最后一个呢,是数据量的每周同比增长,那这个呢,显然是一个异常数据对吧,那么上下线呢,是负十到50啊,那这儿呢是1万对吧?啊,这个很显然是一个异常数据,OK啊,那我们这五张表的数据就都看完了啊,五张表里边都有统计结果,没错吧?那这就能说明我们这个数据质量监测任务的工作流程当中的这三个工作单元是没有问题的。对吧,咱们检测数据是没问题的,那下边这个告警它有没有问题的啊,有没有呢?我们可以去查看一下对吧?那刚才呃,我们看这个数据的时候呢,其实我们发现了有两个异常数据,对吧?那所以理论上我们应该收到两个告警卫件才对,没错吧?那现在我们来看一下有没有收到啊,诶,这是我那个邮箱对吧?大家注意观察,那这儿我是不是已经收到了两条告警信息啊,对吧?我们简单看一下,看看跟我们刚才看的是不是一致的啊,我们先看第一个。
20:10
哎,点开点开之后呢,哎,他说O这张表是有问题的,对不对,那指标是不是就是数据量的每周同比增长对吧?那它的值是1万,那它应该为负十到50啊OK,那这是我们第一条,那接下来呢,我们再看第二一条啊来我们打开第二条。来,那这个信息是什么呢?是表格,这张表数据有常对不对啊,完之后呢,是day on这个指标,也就是数据量的每日环比增长对吧?那它的值是15.18,那它应该为多少呢?应该为诶负十到十啊那这两条告警信息跟我们刚才分析的是一样的,那所以说我们最后一个告警的任务也是没有问题的,那至此我们数据质量监测任务的全流程调度的测试呢,诶就完成了。
我来说两句