00:00
好,那在上一节呢,我们已经完成了所有的维度表的讲解了,那这一节我们来看一下整个dim层的数据状载脚本啊,大家来一起看一下啊,那咱这儿也有两个脚本,那分别是首日装载脚本还有每日装载脚本,那同样啊,首日装载装载脚本只需要第一天执行啊,就是做数据的初始化啊,那每日状态脚本呢,是从第二天开始需要每天重复执行的啊,这是大家要注意的啊,那接下来我们先对比一下这两个脚本的内容啊,先说首日装载脚本,首日装载脚本里边包含了商品维度,优惠券维度,活动维度,地区维度,还有用户维度的首日装载语句。啊,那每日装载脚本当中呢,包含了商品维度,优惠券维度啊,活动维度啊,以及用户维度的每日装载语句,大家注意观察,第一个地区维度是不是只出现在了首日装载脚本当中啊,因为地区呃维度的数据呢,变化不是那么频繁,所以没必要每天同步,对吧?那再有一个时间维度,时间维度它是不是既没出现在首日装载脚本,也没有出现在每日装载脚本呀?
01:11
啊,这是为什么呢?诶,由于这个维度呢,也是一个比较特殊的啊,那此处呢,我们呃,手动的去执行它的装载语句就可以了啊,没有把它放在脚本当中啊OK,那这就是我们这两个脚本的一个呃对比啊好,那接下来我们呃分别去看一下这两个脚本的具体内容,来先看第一个啊首日装载脚本,来把这个脚本内容粘出来,我们先看一下啊。好,打开这个sublime,诶放在里边啊,一起来看一下,那我们从头开始看啊,那首先这有一个APP,等于j Mo的这样的一个变量啊,这个不再解释了,然后看一下这儿,这儿我们是不是维护了一个do date变量啊,对吧?这个do date变量,那它的处理逻辑什么呀?啊,我们必须得传对吧?因为第一天的时候呢,我们必须得传一个初始化的日期啊OK,那这就是do date变量啊好,我们继续往下走,那下边呢,就是每一个表的首日装载语句,注意啊,是每个表的首日装载语句,在这儿呢,我们就不再具体去看了啊好,然后咱们注意一个小细节就行了,就是这个参数。
02:17
啊,那由于我们往dim层装载数据的时候是从ODI层读取的,对吧?那咱的ODI层是不是拉了文件加索引啊,对吧?啊那所以这时候呢,我们就需要去注意一个问题了,什么问题啊啊,就是咱们得去防止拉泽罗索引文件失效对吧?啊那这个参数是不是就是用来解决拉泽罗索引文件失效的问题的呀,这是一定得注意的啊好,那现在我们再往下看。呃,最后的这个逻辑是什么呢?最后的逻辑是根据我们传进来的表明呃,去决定诶我们装载哪一张表,对吧?你传am user in for,那我就执行demoam user in for的装载语句,那如果你传的是all呢?那就诶导所有的表对吧?那执行所有表的装载语句啊好,这就是首日装载脚本的具体内容啊,其实很简单啊,好,那现在我们再来看一下每日装载脚本。
03:10
来,我们拿一下它的内容啊。OK,到了。CTRLC拿过来。拿来之后呢,我们把它放到LIM里边一起看一下,那还是从头开始看啊,那首先先看第1.app等于jama,这个不再解释下一个啊,大家注意一下啊,那此处这个do date时间变量的处理逻辑就跟刚才首日不一样了,对吧?那首日的时候呢,它要求我们必须得传进来一个呃,时间对吧,如果不传它就退出了对吧?呃,但咱在,但是在咱这个每日装载脚本当中呢啊,他的逻辑是啊,如果我们传了就用我们传的值,如果没传,那就让他自己去计算前一天的诶日期,那实际上等我们出仓真正上线每日状载脚本,每天定时执行的时候,那是不是就应该让他自己去计算前一天的日期啊。啊是这样的啊好,那再往下呢,就是每一个表的每日装载呃语句了啊,这个是一定要注意的啊,这是每日装载脚本了啊OK,那当然具体的教呃搜课内容我们就不再去看了啊那这里边我们还是看一个啊,大家需要去注意的细节就可以了,那注意看哪啊这两个参数,下面这个参数跟刚才一样,是不是为了解决拉泽罗索引文件失效的问题啊,对吧?那上面呢,上面是在干啥?
04:23
上边是不是将have当中的动态分区的模式设为非严格模式了呀,对吧,那咱这儿为什么要设成非严格模式啊。这个需要给大家解释一下啊,大家来看一下,那这是哪张表,这是team user info对吧?那我们对它进行每日装载的时候,那需要干啥?是不是需要用到动态分区啊,没错吧,那动态分区呢,有严格模式和非严格模式之分啊,那什么叫严格模式啊,严格模式呢,要求我们进行动态分区的时候,至少得有一个一个什么呀,一个动一个静态分区的字段。啊,至少得有一个静态分区的字段啊,但是我们这儿呢,其实一共就才一个分区字段,对吧,就是DT,而且这个字段呢,咱们还是动态分区的字段,那所以说我们这显然是不满足它的严格模式的,那所以说我们就需要将分区模式设为非严格模式,这是大家需要去注意的啊OK,那完了之后我们再往下看。
05:18
那最下边呢,仍然是根据我们呃传进来的参数啊,决定我们装载哪张表啊,如果传奥那就装呃装载所有的表,OK,这就是每日状载脚本,两个脚本其实都不难啊,好,那现在我们把这两个脚本都给它创建出来啊,CTRLLCTRLC,那现在呃来到102这台节点的加目录的并目录里边,那咱们创建两个脚本,那首先第一个啊,第一个我们的名字应该是啥呀?应该是ods对吧,Tool,呃,哪啊,DM啊,没错吧,那后边需要加一后缀啊,是什么后缀,但是DB的数据对吧?啊,加一个DB,然后再有一个需要注意的是啊,首日装载脚本我们需要加一个隐匿后缀啊,所以最终的脚本名称是ods to啊,然后DBSH啊,OK,把这个首装载的脚本内容进来,然后shiftz,那这时候我们再把另一个脚本也创建出来,另一个脚本呢,把隐匿的后缀去掉就可以了,这是每日装载脚本。
06:12
好,我们拿一下内容啊,CRCTRLC。来,放过来。来我们关闭啊,行,那我们现在一次性对这两个脚本加上执行权限来加一个星进行匹配就可以了啊LL,好,两个脚本都已经有了执行权限了,那接下来我们就可以使用脚本去装载dim层的数据了啊,那在装载之前我们需要确保两件事儿,那第一件事儿呢,就是dim层所有的表得创建出来啊,那这个呢,我已经提前创建好了啊,那再有一个大家需要注意的就是我们使用的应该是哪个脚本。啊,那现在咱们要使用的啊,应该是首日状态脚本,因为咱现在是收藏的第一天嘛,啊,这是要注意的啊,然后其实还有一个小细节啊,就是时间维度表的数据啊,我们是需要手动去装载的,对吧?啊,不管是手装载脚本还是每日装载脚本里边都没有时间维度表的装载语句啊,然后时间维度表的数据呢。
07:09
在我们之前进行讲解的时候就已经装载进去了啊,对吧,那所以说这是大家需要去注意的几个小细节啊,OK,我的表已经建好了,那现在我使用首日状态脚本,把其余的数据呢给它导进去就可以了啊来我们执行一个点杠啊,然后呢是ods to dim啊然后呢,DDB后边加一个,然后奥2020杠零六杠,诶幺四啊现在回车。呃,那这个脚本呢,可能需要一点时间啊,我先把视频暂停一下。好,已经执行完毕了,那现在打开datagra,我们去检查一下,呃,维度表的数据啊,那先看第一个啊,这是活动维度表啊,双击大家可以看到这里面已经有数据了,对吧?这是地区维度啊,优惠券维度啊,时间维度啊,这是商品维度,还有用户维度,好,我们看到这六张维度表都已经有数据了,那那就说明我们现在的首日装载已经完成了。
我来说两句