00:00
啊,来,各位同学,那先下来呢,看一下咱们整个DW层的数据装载脚本,大家应该能看到咱这脚本呢,一共有两个,分为首日和每日两个,对吧?那首日呢,肯定还是只是在第一天的时候,是不是执行一次就行了,对吧?那OK,每日里边呢,存放的就是我们将来需要每天重复执行的circle OK,这儿为什么会分一个首日每日呢?很简单,你回忆一下我们绝大多数的这种事物,时值表是不是都会区分一个首日跟每日,对吧?他们首日每日的逻辑是不一样的,所以在这儿呢,我们为了方便啊,把它们分到两个脚本里边了,OK啊好,那现在我们先看它的首日状态脚本,呃,这个脚本的内容可能有点长啊,为什么?因为表多,这一个脚本里边是不是有很多的表啊,对吧,OK,那这个就是可能得有个1000来行啊,这个这个脚本啊,十是上,但其实无所谓啊,这个这倒不是上千行的,So,其实哎,所谓的上千行的S,其实说白了也不是说逻辑有多复杂啊,这可能就是字,就是可能字段比较多,你看咱们这个钻夹多一点的话。
01:00
我这一行是不是就一个字段啊,对吧,我一个C来语就是我就占十好几行,或者是好几十行的对不对,所以这个东西对倒也不是说逻辑贵多么复杂,其实没有太复杂的逻辑啊,行,那现在咱们继续往下走,呃,那这是刚才咱们看的那个首日状态脚本,对吧?看一下它大体的一个结构啊呃,首先我们需要明确的一点就是这个脚本的用法是什么用法跟之前一样,还是传俩参数,第一个参数表明,第二参数日期,因为是首日,所以日期呢,我们并没有他自己去计算,我们需要给他手动的传一个,哎,这个理解一下好了,那接下来继续往下看,下边实际上呢,就是我们每一张表的首日装载的S课语句了,大家来看一看啊,呃,这个从这儿就能看出来,咱们这是不是用的动态分区啊,动态分区那肯定对象是少入状态啊,好了,那完之后既然要用动态分区,那我们这儿呢,又不满足严格模式,所以理论上这儿是不是得set一个参数啊,但是咱们这set了吗?并没有啊,并没有,那没有的话,那一会这个脚本去执行肯定会报错的,对吧,肯定会报错啊,所以在这呢,咱们怎么做啊,我们就不再去改这个脚本。
02:00
啊,咱们直接改谁就行。改have set对吧?直接改have set那个配置文件对吧?啊,那咱们把那个配置文件当中加上一个这个参数,那就完事了啊OK,那现在呢,我们去统一的改一下啊呃,我先去改,然后呢,我一会把我改完的参数给大家发一下就行了啊,然后CDCD到这个o BT model have,然后我们进到com blue,呃,进来之后呢,改哪个文件,Have set那个文件对吧?来找到它之后呢,我们ctrl shift j啊,Shift这可以来到最底下,然后我们再最底下呢,给它加上一个这个参数,来把这个呢给它复制一下来,给它拿到外边来啊呃,CTRLV,然后呢,我们需要给它调整一下这个参数,咱改成哪个参数呢?找一下咱们之前set的那个参数啊,应该是set have是不是就这个呀?OK,那咱们现在呢,需要把它给它复制一下CTRLC,呃,然后呢,我们放在这个位置CTRLV啊,那这个完成之后呢,是不是再把那个n string给它复制一下,对吧,把值拿过来,然后大家现在上一下飞修啊,然后我把这个参数给大家通过飞修发过去啊,可能我这我自己先配上,呃,这个呢,拿个来拿过来摁一下这个I啊。
03:02
好了,那现在这个参数咱是不是就已经放在这儿了,对吧,然后呢,我们shift之内啊,好了,大家这个飞机应该都上了吧,然后呢,我给大家发一下,你就省得自己去改了啊。呃,点这个,呃,然后呢,找一下咱们所有人,然后呢,CTRLV啊,当然呢,你要是自己加也行啊,自己加也行啊行了,那这个参数就发完了,呃,这个参数发完之后,各位同学啊,那一会儿咱们是不是需要去执行我们那个数据状态脚本呀,对吧?那我问一下大家,在我们执行那个脚本之前,对吧?我们为了保证那个脚本能够执行成功,我们要不要把还有搜库重启一下。要不要改配置文件了,对吧?为了保证脚本能执行成功,Have so to要不要重启一下,其实不用,为啥呢?脚本里边咱们用have so to了吗?没有,咱脚本里边是怎样去执行circle到最底下,咱是不是直接是执行的have杠一啊对吧?这跟have s是一点关系都没有啊对不对?所以说你只要改了配置文件,那对我们这个脚本来说呢,那就会生效啊,是这样的,所以说还有特户不用重启,但是你要是为了保障OK,我在这儿能执行它也它也能成功,那你是不是就得重启还尔出了对不对,这个要注意一下啊,现在呢,接下来呢,咱们就继续往下进行,接着看咱这个脚本啊呃,这个动态分区的事儿咱就说完了,那说完之后我们下边呢,就是每一张表的手入状态,就我们就不再一个一去看了,然后在这儿呢,我们特地的去看两个表,呃,看看两个特殊的地方就行了啊,哪两个特特殊地方呢,其中有一个是咱们那个启动表start的,咱们找到start,哎,还记得这个地方吧,那由于start是一个关键字,所以说我们需要给它加标号,对吧?那由于票号在shell当中也是特殊字符,所以说需要加。
04:39
他转移这块咱们必须得这么写,可能看起来有点麻烦啊,但是必须得这么写,这是要注意的,然后还有一个特殊之处,就谁呢?就是那个艾瑞那张表,这个好像就是艾瑞那张表,对吧?刚才咱们看到了I瑞那张表,是不是我们用呃Spark引擎去执行的时候,它会出问题啊,对吧?那所以在这儿呢,我们是不是需要给它切到mmr引擎,但是你执行它之前给它切到mmr,然后你得保证什么呢?执行完还得给它切为s Spark对吧?所以在它这个三号下面是不是有set为s Spark了,对吧?这个大家要稍微注意一下好了,那这就是这个脚本的一些特殊之处,行,别的就没什么特殊的了啊好,都完成之后,我们还是来到最底下,最底下也比较简单,其实就干啥呢,是不是对那个第一个参数进行各种判断呀,对吧,是哪个表就导哪个表的数据就完事了,好了,那这就是咱这个脚本的大体的一个结构逻辑啊,行了,完成之后呢,呃,我们一会儿再给他统计多少件,我们现在先把另一个脚本,也就是每日的那个也看一下来找到每日的脚本,这可能也得1000来行啊来往下走,往下走,往下走往下走。
05:39
走走走来,我们走到这个位置啊,CTRLC拿过来之后呢,我们给它放在咱们脚本当中,这边我再新建一个文件啊呃,来放在这吧,CTRLV来个同学,那现在呢,我们把这个每日的脚本也简单的过一下啊,需要明确的是,这个脚本也是接收两个参数,第一个表名,第二个日期,这个日期咱们就是可选的了,对吧?你要是想测试某一天,那你就给他传一个日期,对吧?如果是真正的上线之后,那咱们还用传日期嘛,就可以不传了,对吧?让他自己计算前一天,那就完事了,诶这个理解一下啊,行了,那这个不再多说,下边呢,就是每个表的每日状载的与句了,你看这儿是不是指定了分区了啊对吧,这就是每日状态了,行,下边呢,仍然是对对什么进行判断呢?仍然是对我们的第一个参数表明进行判断,传哪个表的表名,我就导哪张表的数据,如果你传的是奥,那我就导所有表啊,这是这两个脚本啊,行了,那完成之后我们把这俩脚本给它创建一下啊呃,这俩脚本咱给它起个名字吧,这应该叫什么呀?叫做ods到DWD对吧,那现在呢,给它创建出来。
06:39
首先第一个就是ods,然后下游线to,然后下游线呃,到哪,诶这个路径不对,对吧,我们进到加路的并不啊,那这个应该叫做ods to dwd对吧,然后下游线,然后呢,是不是得叫1.shr,对吧?然后在这儿呢,我们先打开,我这已经有了,我把这个之前的先删除啊,之后呢,再把咱们新的内容给它复制进来,那OK,那这个首日的装载脚本咱们就已经诶创建完毕了,那接下来呢,我们再去创建第二一个也就是那个每日的啊每日在这边呢,我们其实只需要把那个以ne给它去掉,那就完事了啊OK,拿过来,拿过来之后呢,我们还是先删除,呃,没删干净啊。
07:15
好了,已经删干净了,那之后呢,我们再拿到我们,哎,这个每日状态脚本,Ctrl a ctrl c拿来,拿来之后呢,我们给它放在这里边。好了,已经搞定了,然后shift自Z行了,那这两个脚本都创建完毕,我们给它加上一下这个执行权限啊,OS to这个DWD后边来一个星来搞定,那现在呢,这俩脚本咱们都准备好了之后,我们就可以干啥了呀,是不是可以执行脚本,然后装载数据了,对不对?那现在我们只能执行一个手势的啊,来找到这个ods到DWD,然后后边呢,来一个in,后边它俩参数一个是二,一个是2020杠零六杠幺四对吧,那现在咱们直接回车,呃,这个呢,脚本可能需要执行一段时间啊,这边我们就不等着他了,让他自己跑吧,来,我把这个视频停一下啊。
我来说两句