00:00
好,那接下来我们看一下DWT层的数据装载脚本啊,在这儿呢,也是分为少日装载和每日装载啊,我们分别来看一下啊好,我已经提前把内容复制到了Li当中,咱们来一起看一下啊好,那这个呢是首日装载脚本啊,那结构呢,与之前的装载脚本的结构完全一样啊,我们简单看一下就行啊这儿呢,声明了一个APP的变量,这儿呢,需要我们传一个初始化日期的参数对吧?然后呢,把值赋予do变量啊下面呢,就是每张表的首日装载的circleq语句了啊好,那这里边没有什么特殊的地方,我们就不再一个一看了啊好,我们往下看,到最后呢,那就是根据我们传的表名去决定装载哪一张表的数据,对吧?如果我们传的是奥,那就装载所有的表,好,这就是首日装载脚本,我们就不再一点点看了啊好,那接下来我们再看第二一个,第二个呢是每日装载脚本,那这个脚本呢,和之前的每日装载脚本比起来啊,还是有一点特殊之处的啊,那现在我们一行一行开始看啊,那首先先看第一个APP,等于JA贸啊,这个不用解释,跟之前一样,那下面呢。
01:00
是不是也是维护了一个do date这样的时间变量啊,老规矩,如果我们给他传值,那它就用我们传的值,如果没有传,那它是不是自动计算前一天的日期啊?OK,这个比较简单啊,好,接着往下走,下边呢,是不是又多了一个时间变量,叫做clear date,对吧?啊,这个clear date实际间干啥?就是清理数据的日期,OK,那么为什么要清理数据呢?诶,大家回忆一下啊,我们前面说过DWT层的表呢,咱没必要保留前面的历史分区,对不对啊,我们是不是只会保留最新的两个分区啊,没错吧,那实际上这个clear date呢,就是我们每天要清理的那个分区的日期,OK,那接下来呢,我们再来看一下啊,它这个日期具体是哪一天?在这是不是do date这一天它的前两天的日期啊,没错吧?那为什么是前两天的日期呢?我们来分析一下啊,那假如说这个就是do date啊,对吧?那do date这是它的前一天,这个呢,是不是它的前两天呀,没错吧,那do date是不是就是咱们现在最新的一个分区,没错吧?那加上它这是不是就是最新的两个分区啊,那我们说要把两天前的这个分区给它清理掉啊,那所以说这个clear date呢,是do date的前两天的日期啊,这个呢,大家要搞清楚啊,那接下来我们继续往下走啊,那下边呢,就是每张表的数据装载语句了啊OK,我们现在看一个啊,这是d wt visit topic,就是那个访客主题对吧?来大家一起看一下啊,这个是不是就是它的音色的语句啊,没错吧,那再往下走啊,咱们看最后啊,那最后这儿是不是还多了一条S后语句啊,对吧,这个语句实际上是在干什么呢?实际上就是在清理过期的分区啊,大家看一下啊,Outer table对吧?加上表名,然后后边的是drop partition,然后清理的是不是就是clear date那个。
02:41
分区啊,这要注意,还有一点大家需要注意一下啊,我们数仓当中的表呢,都是什么,都是外部表对吧?啊,那我们执行这个清理分区的语句的时候呢,实际上只会影响到原数据,没错吧?那h Di的数据呢,它实际上是不会删除的啊,那所以说我们后面呢,还会再多一步删除数据的操作,OK,我们继续往下看啊,那下边的每张表呢,后边都会有一个这样的清理分区的语句啊好,那现在我们来到最底下啊,来大家注意观察最后边啊,最后边同样是根据我们船的参数去决定执行哪张表的装载语句,没错吧?然后大家要注意了啊,我们除了执行的这个装载语句啊,咱是不是还做了另外的一个操作,看一下什么操作,这是不是就是删除HDF文件的一个命令啊,对吧,还都把FS-R杠二杠F,大家注意观察一下,我们删除的是什么数据,删除的是不是就是过期分区的数据啊。
03:35
没错吧,这个路径呢,就是过期分区的路径,OK,那下边的每张表都会有一个这样删除数据的命令啊好,我们再往下看啊,如果我们传的是all呢,那下边呢,会有每张表删除数据的命令啊好了,那这就是我们的每日装载脚本,好,那接下来我们把这两个脚本创建出来啊好,先来到嗨杜102加目录的并目录里边啊,我来创建第一个啊,D应该叫啥名字?是不是应该叫做DWS,然后to d wt_init.sh啊没错吧?诶,然后咱们摁一下I,把这个首日装载脚本的内容全部粘过来,CRCRC。
04:10
哎,复制过来。嗯,OK shift zz关闭保存好,那接下来我们再创建第二一个啊,第二个呢,把以的后缀去掉就可以了啊好,那我们再创建每日装载脚本。来拿第二个脚本的内容,CRCRC。来,我们拿过来。好,第二个脚本也完事了,Shift CC好了,那现在我们把这两个脚本的执行权限给它加上啊,趁着mod加X d ws to d wt,然后星就可以了啊好,那现在呢,我们就可以执行首日装载脚本去进行咱们首日数据的装改了啊没错吧,那当然呢,在执行之前,大家要先把DWT层的表都创建出来,那我这儿呢,已经提前创建好了,好,那现在我执行一下首日装载脚本,点个dws to dwt.sh我们需要传一个O,然后再传一个日期2020杠零六杠幺四啊,直接回车就可以了啊好,那这个脚本呢,需要执行一段时间啊,我先把视频暂停一下。
05:11
好,脚本已经执行完毕了啊,那现在我们去看一下最终的结果,我们去检查一下DWT层的这几张表啊,来我们先看第一张啊,第一张是活动主题表,对吧?来双击,那这里边呢,已经有我们统计出来的结果了,OK,下边哎,地区主题,那这也没问题啊,优惠券主题啊,商品主题,用户主题,还有访客主题啊OK,那DWT层的数据装载应该是没有问题的,那好,那至此DWT层咱就结束了。
我来说两句