00:00
呃,好了,各位同学,那咱接下来呢,就来把整个DWS的数据呢,给它做一个统一的装载,呃,然后在装载的时候呢,我们肯定得用脚本,对吧?然后大家注意观察,你看咱这个脚本是怎么写的,这回啊,我是不是最近ED的表我会有一个单独的数据脚本,对吧?那我这个ND的表呢,是不是也有自己单独的数据状态脚本对吧?那TD也是一样的,它也有自己的数据二的脚本,那也就是说我们在这儿呢,整个DWS层我们不是一块装载的对吧?我们是给它分开了对不对,ED的单独装载,ND的单载,TD的也要单独装载,可其实大家可以想象说,我们为什么要这么去设计,我们为什么要把EDTD和ND给它区分开。为什么咱们为啥没给它放在一个脚本里边,这个道理很简单,其实大家应该能够感觉出来,咱这个DWS层的ED,还有TD,还有ND,就是这三个统计周期的表,他们之间是有依赖关系的,对吧?没问题吧?OK,那谁依赖于谁呢?咱把这个捋一下啊,这是ED的,这是TDND谁依赖谁呀?是不是ND会依赖于ED对不对?那TD是不是也会依赖于ED呀,对吧?而TD和ND之间有这个依赖关系嘛,它俩是没有的,对不对?那这实际上是我们这个三个统计周期的表的一个依赖关系,对吧?既然有依赖关系,那我们在最终进行数据装载的时候,是不是就必须得保证先装载一列的表,一列表得装载完,是不是才能去装载TD和ND的呀?对吧?啊,所以在这儿呢,我们呃,为了方便去满足这个依赖关系,所以在这儿我们把EDNDTD,诶给它放在不同的这个脚本里了,这块大家理解一下啊好,那所以说一会我们再去装载D。
01:41
WS层表的数据的时候,我们是不是也得严格的按照这个依赖关系去做呀,对吧,我们得先装载1D的,而且得保证它装载完了,是不是才能去装载后边那两个表啊,对吧?这个一定要搞清楚,好那现在我们先看ED的,大家都知道这个ED的这个表呢,我们实际上都区分了一个首日和每日对吧?那所以在这我们需要写两个脚本,分别是首日状态脚本和每日状态脚本,好那现在咱们先把这俩脚本快速的给它创建一下来,拿过来。
02:10
嗯,来CTRLC咱给它拿过来啊,大家知道呢,先还是先简单的给它看一看啊,简单看一看这个脚本其实也没什么特殊的,我们看一下呃,首先需要明确的是什么呢?这个首日端的脚本呢,也是接收两个参数,呃,分别是表明和日期,注意这个日期呢,我们仍然是没有默认值的,是必须得传的啊,因为首日嘛,不用让他自己计算前一天啊好了,这是咱的首日装载原文,那完成之后呢,我们继续往下看,下边呢,实际上呢,就是我们每一张一地表的首日装载的这个circle了,然后大家都知道首日装载的时候,我们是不是用到了动态分局啊,对吧,既然用到动态分局,是不是理论上就得set一下那个非严格模式咱们这啊,但是我们还用再set吗?不用了,因为我们之前在做DWD层的装载的时候,是不是已经把那个参数写在have set里边了,对吧,这会儿就不用再担心了啊,应该没啥问题了,行了,那这就是我们每一张表的首日装载的词索语句,然后来到最底一下,最底下是不是仍然是对第一个参数表明进行判断呀,对吧,这个我就不再重复了,跟之前都是一样的啊好了,那第一个脚本。
03:10
就算是说完了,那紧接着我们看一下第二一个,第二个我们看有没有什么特殊的地方啊,来往下翻,往下翻,第二个应该也没什么特殊的,咱们简单的看一看就行啊来CTRLC咱给它拿过来之后呢,放在这儿啊,这是我们一地表的每日转载脚本,首先明确一下它的用法啊,这个脚本我们在用的时候呢,也是传俩参数,第一个表明第二个日期,呃,这个日期这次是可选择了,如果你不传,那是不是就自己计算前一天呀,对吧?好了,那这个是咱们的诶脚本的用法,那下面就是脚本的结构了,哎,仍然是这儿每一个表是不是有一个S语句啊,对吧?这个S语句是它的那个每日装载的S语句,看这就能看出来这个是不是写到一个分区里来啊,对吧?好,那接下来往下走,最底下仍然是对到一这个表名进行判断,哎,传哪个表就导哪个表的数据,传奥就是所有表的数据,好这是咱们这个脚本,那接下来呢,我们就快速的把这俩脚本给它创建出来啊,CTRLCTRLC,咱先创建一个首日的来,那现在呢,我们进到加目录的B目录里,好,那现在咱是不是得先给这个表格起。
04:10
个名字啊对吧,这个脚本起个名字啊,对吧,那这个脚本它叫什么名字比较合适,是不是还是数据源到目的地啊,对吧,咱这个数据源是哪。是不是应该是DWD对不对?OK,那目的地咱们写什么就写DWS行吗?这个不太合适对吧,为啥?因为我们D拉Y除了有我们当前的这个一列表,还有N列,还有TD对不对,那所以在这咱们怎么办呢?再来一个后缀,我们给它加上一个ED对不对?OK,那这个就来表明我只装载ED的表啊好,那完之后我们继续往后走,那后边咱因为是一个手入状的脚本,所以说需要加上一个E的后缀,然后呢,来一个点SH好了,脚本拿过来这个shift字内好了,那首日的就搞定了,那每日的呢,每日的时候是把E去掉就行,对吧?来我们拿一下每日的脚本的内容,哎,CTRLCTRLC拿过来,拿来之后呢,我们给它粘贴一下。
05:00
好了,那这两个脚本就都搞定了,呃,然后大家在粘贴的时候稍微的注意一下啊,有同学他这个脚本粘进来之后啊,他会发现我前面总是少点什么东西,对有有有有没有同学遇到这个情况了。啊,就是比如说我这少了一个A,直接从PP只剩下PP了,对不对?呃,这是为什么啊,为什么会在这个情况,很简单,就是你忘了按那个insert了对吧?呃,A就是按一下那个键盘上边那个A是不是也可以切换到输入模式了,对吧?呃,你这个A相当于变成输入模式了,而前面的内容全部被忽略掉了,其实在这儿呢,我可以给大家测试一下啊啊比如说我这来一个一些,然后呢,滴滴全部删除对吧?呃,现在我是,呃刚才是切入参入模式,现在我再退回这个,退出这个切入模式,然后呢,我再做一个粘贴,你看啊走,你看跟刚才咱们描述的应该就是一样的啊来我们来做开头,你看是不是只剩下这个PPT来,对吧?如果遇到这个情况,那大家呢,就一定要注意一下,你要这么写的话,你说这个脚本他将来能执行成功,他肯定成功不了,因为你知道这个变量是不是就拿不到啊,对吧,拿不到的话,那那就肯定是不对的,所以这个呢一定要注意啊,好多同学会有这个问题,行了,那截止到现在呢,我们这个首日和每日的脚本就都搞定了,那搞定之后呢,我们现在呢,再对这个脚。
06:14
再加一个执行权限啊,咱们来一个change mode加X,后边呢,我们找到DWD到DW sedd这来一个星好了,那这两个脚本我们就都给它准备好了,应该是在这个位置行了,那接下来咱是不是就可以先执行一个了啊,那咱执行哪个熟着的吧,对吧,应该是DWD到DW s sed,我们后边加一个E,后边传一个奥,再传一个日期2020杠零六杠幺四好了,那现在呢,我们就直接回车就完事了啊。当然这个脚本呢,他可能得执行一段时间,那我们暂时先不等他了,我们先去看一下下边那个ND的脚本,对吧?来我们先停一下。呃,来各位同学,那咱接下来呢,就来看一下咱这个脚本为什么会报错,我们刚才执行的是哪个是首日的对吧?我们找到DWD到DW sed啊下游线来一个1.sh对吧?打开之后呢,我看他为什么会报错啊,呃,他这儿报的这个错误是什么呢?说找不到这个表对吧?诶,但是我这脚本没问题吧,那为什么还找不到这个表呢?
07:13
其实大家可以猜一猜,你说为什么会找不到这个表,为什么呀,那肯定是表,要不是就是确实没见呗,对吧,OK,但是我刚才是不是真正真的见了呀,对吧,这个还那那那那只能是哪的原因了。酷的问题。肯定是库的问题,肯定是建别的库去了,我我这是不是建到default库去了呀,对吧,完了这我所有的表我可能还得都得再重新建一遍啊,这个是因为什么啊,这个是因为我今天早上不是给大家讲那个练习题了嘛,对吧,我那个表我现在default库了,我我忘了给切回来了啊,所以全全都嵌在了这个default了,那我现在快速的再把这个表赶紧建一下吧,这个没办法啊,不见的话,这个数据没法装载来,那现在呢,我们直接搜一下create,然后呢,来一个大家别笑,其实这个问题有的同学可能也会遇到啊,然后然后呢,我们后边来一个DWS,然后后边呢,我们诶给它过滤一下啊。
08:07
然后咱点这个就能快速的定位到建表尾距,呃,我们先找到咱们第一张表啊,就是这个,来我现在在快速,现在已经切到那个,呃,这猫库了,这个没问题对吧?来我们往下走,这是第一张,没事,我这个手速还是比较快的啊,来咱们往下走,呃,这是走这个库忘了切了,这个确实比较麻烦啊。呃,大家知道这个快捷键吗?就是你只要把它指向呃,指向这个键盘语句对吧,然后按CTRL加回车L,然后再回车一下是不是就OK了呀,对吧。来,我们往下走。这已经是,呃,快完事了啊。走,还剩下十啊,再给再给我这个20秒我就搞定了,来往下走,这个本来想的是提前,这个在课下见好,结果还见错步了,来吧。
09:10
走。来,我们再往下走。然后再往下走。好了,只剩下这个最后一张了啊好了,现在都已经建完了,建完之后我们再把这个查看的这个余数再执行一下来看看是不是真的都建出来了。来看一下,那现在呢,是不是返回了这个22张表啊,对吧?哎,又已经都建好了,好了,那接下来呢,咱们就继续往下进行,下边我们再把刚刚那个首日状态脚本再重新的执行一下,这回应该就没啥问题了啊,直接回车,呃,让他自己跑吧啊,这回应该没什么问题了,然后咱一会儿呢,等他执行完是不是才能执行ND和TD的状态摇尾啊,对吧?来,我现在把视频先停一下。呃,来各位,那现在呢,我们再来看一下这个ND表的数据装载,呃,这个ND表的数据装载呢,相对来说也比较简单啊,也比较简单,那现在我们基本上找到他的这个数据状载脚本的,呃,数据状脚本的这个跟ED,呃跟ED相比呢,可能呃就是有点区别对吧,因为ED我们所有的表是不是都写了俩字吧,对吧?而ND咱是不是都只写了一个,所以在这呢,我们就不再区分那个什么首日和每日了,咱就一个脚本,好,那现在咱把这个脚本给它拿出来,呃,这个好像也没什么特殊的,来,我们拿过来。
10:23
来,还是放在这个地方啊,CTRLV好了,那这就是我们N地表的这个数据原来脚本,那首先先明确一下,那它的这个用法是什么样的啊呃,这个脚本呢,也是只需要接收两个参数就行了,一个是表明,一个是日期,日期同样是可选的啊OK啊好,那完之后往下走,这就是ND表的每张表的这个数据状载双数据装载那个词和语句了,对不对,它不用区分首日,每日每天都是一样的,所以只有一个啊好,往下走,下边呢,实际上就是我们呃,常规的操作还是对到一进行判断,对吧?你这个表名是谁,那我就导哪张表的数据啊OK,这个咱们就不再多说了啊,这个脚本比较简单,来,CTRLCTRLZ,咱给它粘出来,然后呢,给它创建一下来,大家看一下啊,我这是不是这个ED的脚本也已经执行完了呀,对吧?OK,它执行完了之后,我们才能去执行这个TD和ND,这个一定要注意啊好,那现在我们先给这个脚本起个名字啊,咱们这个ND表起个什么名字比较合适?
11:17
咱们是从哪到哪,呃,其实N地表的数据可能会来自于DWD,也可能来自于DW s sed对吧?啊,但是以哪为主呢?其实还是以ED为主对吧?所以在这呢,我们就叫dws ED,然后呢,To,然后来下线啊,To,然后呢DWS下线ND对吧?哎,完之后后边来一个点就行了,好,那现在拿过来,呃,之后呢,我们shift之内,呃,然后呢,我们再对它进行一个执行权限啊,这个加执行权限的一个操作啊车我再加X,然后DWSED到DWSND,好了,执行权限咱就已经加好了,那接下来我们要做的工作就是执行它就完事了,对吧,因为ED那个脚本已经执行完了啊来,我们执行一个DW啊S啊,然后呢是ED到ND对吧,后边呢,我们传一个R,再传一个日期2020杠零六杠幺四对吧,直接回车,呃,这时候呢,他就开始执行了,我们也不等他了啊,一会儿我们查看一下最终的结果就完事了啊来视频我先给他停一下。
12:16
啊,好了各位啊,那下边我们要做的工作就是对历史资金的这几个汇总表进行一个统一的数据状栏,呃,在这边呢,历史资金的表咱们回忆一下,是不是也也得区分一个首日跟每日啊,对不对,俩三,所以在这咱们也是俩脚本啊来,现在先看首日的脚本,呃,这个小脚本就比较短了啊,因为表少啊来拿过来这位好,那我们现在先简单的看一下这个首日的脚本,呃,首日脚本呢,没什么特殊之处,仍然是之前的那个规则,首先怎么用它呢?呃,传俩参数对吧?第一个是表明,第二个还是日期,日期不可选,必须得传啊好,接下来往下走,下面呢,就是这张表呢,首日的一个装载的S语句,对吧?这是首日的,那这个都是首日的,这个咱就不再多说了,往下导,下边仍然是case问对吧?呃,然后呢,对DO1进行一个判断啊,然后呢,哎,是哪个表,它咱们就导哪个表的数据就完事了,哎,传奥那就是所有表,好,这是它的首日状态脚本,那接下来呢,我们再来看一下它的每日,呃,这个每日其实也没有特殊之处啊,来,拿起来简单看一看就行,百分之C。
13:18
好了,那每一桩脚本就摆在这儿了啊OK,那简单的明确一下啊,那用它的时候呢,也是传两三份,第一个也是表明,第二个也是哎日期,这个日期是可选的,哎,不传那就是自动计算前一天啊好,那下边呢,就是每个表的每日装载的circle口语句了啊,它比那个首日是不是要复杂一点啊对吧?好,那接下来往下走,最后就是对表名这判断,还是之前的规则,传什么表名就导哪张表的数据啊行了,那这是每日装载的一个呃,脚本的逻辑,行了,两个脚本咱们都给它创建一下啊来,CTRLC拿出来,那大家来看刚才咱这个ND表是不是也已经执行完毕了,对吧?那现在我们把最后这俩脚本创建一下啊来,我们还是先给它起个名字,咱也叫什么呢,也叫DW sedd,图什么啊来咱叫DW sedd,这回应该是图,图哪呢,输入法切一下,呃,应该是to d ws,然后下午建出来一个TD就行了呀,对吧?哎,TD,然后后边呢,我们先跟一个1IIT,然后点。
14:18
这是首日那个啊,来给它拿过来,那之后我们shift z,那之后呢,我们再把一这个后缀去掉,诶写一个每日的脚本,每日我们粘一下每日的内容啊CTLCTRLC拿过来,然后呢,放在这个位置好了,那这两个脚本我们就都已经创建出来了,之后加执行权限,趁mod加X dws ED到DWSTD,然后来一个星好两个脚本咱们就都搞定了,紧接着我们就可以直接执行了,因为ED的表是不是早就有数据了,对吧,早就执行完了,所以在这直接执行就行了,我们来一个DWS,然后呢,ED到DWSTD啊后边呢,我们给它加上一个呃,E这样的一个后缀,后边我们传一个参数,一个是O,还有一个是什么呀?2020杠零六杠幺几应该是幺四,对不对,然后呢,我们在这直接回车好了,那剩下的时间咱们就让他自己跑就行了,我把这个视频停一下啊。
我来说两句