00:00
好,那接下来呢,是我们最为复杂的一个维度表,叫用户维度表,这个表呢,我们要采用这个叫拉链表的方式,对吧,但是实际上它的字段比较简单,就跟我们用户表的字段是一样的,只不过说呢,我们要构建这个拉链表,然后我们首先来看一下我们整体的一个规划啊,我们是要将用户表打造成这样的一个分区表啊,比如说。最新的数据在这儿,然后呢,还有每天当天过期的数据啊呃,那这个是。什么意思呢?比如说啊呃1001。这个用户呢,叫张三。啊,它是在呃,3月12号注册的,好,那么第一天的数据毋庸置疑,没有过期的,全部在9999,这个你搞一个达不到的时间就行了啊大家了解这个事儿,先把这个记住。好,比如说他在3月15号啊,这个人呢,改了个名字叫张三三。
01:03
对吧,那最新的数据呢,就是这个张三三了,如果你要查最新的,那应该就是张三三,那张三这个数据它在什么时候过期的呢。对吧,那以前张三这个数据呢,一直是在这个9999这个分区的,对吧,那现在呢,必然要放这个张三三的9999这个分区,因为它是最新的数据,这个大家能理解对吧?好,那这个张三呢,就称为是过期的数据,那我们就放在3月15号这个。分区里边能理解这个意思吗?对吧,就是这样的一个点啊,这个我们先聊清楚,我们要做这样的一个事情,那接下来我们来看一下具体的操作应该怎么做,对吧,重点在思路,而不是circle circle你只要把思路搞定了,其实circle就比较简单了,首先第一天那当然是全量表啊,全量表倒过来呢,必然是放在。我们的。最后一个分区,9999这个分区里边对吧,比如说到了第二天。呃,这里边呢,分为红色部分和三种颜色对吧,黑色红色跟绿色啊,黑色呢这个人没有变化,红色呢是修改了,绿色呢是新增的数据啊,那这里面呢,有修改有新增,那我们对于用户表而言,我们导的是变化的数据,对吧?那我们导的数据就有这个。
02:17
根据创建时间和操作时间,我们会把这三条数据倒过来啊,倒过来好以后呢,我们要跟原来的表进行一个关联合并啊,得到这样的一张表。啊,得到这样的一张表,比如说李四,诶这个时间就变了,看见之前呢,他结束时间。是达不到的时间,因为它是属于最新的数据,但是呢,他在1月1号的时候呢,1月2号对吧,做了一个修改,那他在1月2号做了一个修改,所以他的生命周期在1月1号就已经结束了。对吧,所以这条数据呢,对应的要放在1月1号这个分区,它在1月1号合并。过期的或者说呢,有的公司放在1月2号这个都可以,对吧,那就大家都往后推一天嘛,因为他在1月2号过期的,这个倒无所谓了,对吧,这是它的一个分区,然后呢,像我们的李小四,还有这个张三王五朝六天七这几条数据呢,都要放在我们9999分区,因为它属于我们买so当中最新的数据,而这个就是过期的数据,能理解这个意思吧,对吧,你把两个结合起来看啊好,那整个数据流向呢,这个刚才我们也提到了,每天呢就往里导就好了,对吧?啊那我们来做一下这个事情,第一天第一次装载,那那我们直接呃,全部放在九九九九十二月31号这个分区就好了,对吧。
03:37
第一次导出这个数据,就这样。好,那我们先去。见表搞定了对吧,然后接下来呢,我们把这个首次啊,因为咱们只有一天的数据呢,所以我们就直接导一次就好了。诶,我刚才的表是没有创建是吧,那我们就创建一下,刚才应该只是说了一下啊,但是呢,没有去创建好,创建好之后呢,我们再来去导一下我们第一天的数据,第一天数据比较简单,就是加一个日期啊,然后呢,把它放到我们对应的这个9999这个分区当中啊就好了。
04:15
这个倒没有什么问题,它就是简单的一个加载对吧,那再往后每天装载的这个思路,我们也要看一下啊,首先它其实就是一个状语啊呢,我们是第一天的这个全量数据在最新分区,第二天呢,比如说这个六七。是修改的对吧,八九是新增的,那我们要把两张表呢,进行一个关联啊,做一个全麦连接啊,连接之后呢,一部分像这部没关联上的这一部分,以及右表直接导到最新数据。没毛病吧,直接放在最新的分区里边。而关联上的。关联上的这一部分数据呢,我们要把它放到国际数据写入过去分区啊,那就比较简单,分为没关联上的和关联上的两部分呗,对吧,For join,那当然有关联上的跟没关联上的啊,对应的合并在一块,写到动态分区就OK了,动态写入分区里边对吧?OK,那这个就比较简单,最终呢,加载的数据就这样,而我们并没有造第二天的数据,所以呢,咱们也就不用导这个内容了,对吧?啊,如果说你有想造一个3月13号,你可以把这个交给去跑一下。
05:22
啊好,那这个是用户维度表,我们搞定之后呢,我们就把整个的脚本装载去。做一下对吧,然后呢,第一次初始化要初始化的脚本啊,那还是一样的,回到咱们这个CD啊并诶这个退出来啊。这里到边路。哎,已经在B目录对吧,那直接M。哎,插入把我们刚才那个脚本呢,全部。拿过来,其实就是刚才我们执行的这些搜狗语句。
06:06
就是我们执行的那些词语句啊,当然这个地方呢,我也就不执行了,对吧。因为我都已经执行过了,刚才单独的执行过了啊o DS to DM啊,这是初始化脚本,当然还有一个每天的一个脚本。啊,因为大家发现到每天关联的,特别是我们的。用户表对吧,它跟之前的它不一样。啊,两边走的so是不一样的啊,所以呢,我们就分成了两个。脚本。第一天的呢,你直接倒过来就好了,那再往后呢,你要倒每日新增级变化的数据啊,然后呢往里放对吧。好,呃,虽然我不执行,但是呢,我还是把这个脚本给大家。一并去做一下这个事儿啊。好,那我们脚本呢,又多了两个,那到这个为止呢,咱们的dim层研究搞定了啊,最重要的大家要体会到用户维度表这张拉链表啊,主要是他其他的几个维度表呢,都比较简单啊,没什么太多可说的。
我来说两句