00:00
好,那上一节我们已经拿到了咱所需的所有的字段了,对吧?啊,那其实我们剩下的工作就比较简单了啊,那剩下其实主要还有两步啊,第一步啊,我们需要把刚刚咱们所写的这一堆的子查询给它撞到一起,对吧?啊,那撞到一起之后呢,我们相当于就得到了最终的结果了,对不对?那然后呢,我们需要干啥?是不是把这些结果使用动态分区诶,给它insert overrightt到DWS层的用户主题表里啊。没错吧,其实主要这两步啊,那这两步呢,相对来说比较简单,我们就不再手写了啊,那现在我们把文档当中的最终的完整的搜索语句拿出来,然后呢,把里边的重点看一看就可以了啊OK,我们现在拿到这个装载语句啊,来找到呃,首日装载。来往下。啊,那这就是这个完整的首日装载的circle,来我们把它放在这儿啊好,那现在我们先来看一看这个circle啊来我们从头开始看,那首先呢,它这是不是使用VS把我们刚刚所写的每个子查询都提前声明了呀,对吧?那这这是我们写的第一个t m log in对吧?那这是TMCF里边呢,就是card以及favor这两个字段啊OK,下边的每个子查询都是一样的啊,在这我们就不一个一个去看了啊好,那把这些子查询声明完之后,看它接下来干了什么事儿啊,往下走往下走啊在来到最后啊,那接下来呢,它是不是就把这些字段呢使用哎,全外联把它关联在一起了呀,对吧?啊,那关联到一起之后呢,是不是就可以选择我们所需的每个字段了,对吧?都选完之后,那是不是就使用insert or right把数据写到DWS层的用户主题宽表当中啊?
01:39
对吧,这是这个circle的整体结构啊好,那接下来我们把这个circle当中的几个注意事项,诶一起来说一下啊,那首先第一个啊,就是咱们去关联这些子查询的时候,应该使用哪种关联方式。那刚才大家也看到了,我们使用的是不是全外联呀,对吧?啊,在这儿为什么要使用全外联呀?在这儿其实我们主要是为了将所有的记录都保存下来啊,大家想想我们这儿子查询非常多,没错吧,那这里边呢,涉及到了很多的业务啊,那假如说有一个人在某一天他只下单了,没有支付,或者说呢,他只加购物车了,没有下单,没错吧?那我们要想把这些所有的记录都保留下来,那咱是不是就得进行全威联呀?诶,那这是第一个,呃,注意事项啊,OK,我们接下来看第二一个啊,那既然要用全外联对吧?那咱是不是得考虑一下咱们的关联字段应该是谁呀?
02:30
没错吧,那咱的关联资源应该是谁呀?咱的关联字段是不是应该是日期加上user ID呀,对吧?为什么是他俩呢?因为我们需要把同一个人同一天的各种行为是不是关联到一行里边啊,OK,这是咱的关联字段啊,然后呢,还有一个事儿要注意一下啊,因为我们现在是多表进行全外联对吧?啊,那多表进行全外联的时候,咱得注意一下什么事啊,是不是得注意一下那个关联条件怎么写呀?没错吧,前面我们讲过啊,那如果说我们有多表全连啊,那第一个表跟第二一个表进行关联的时候,我们可以怎么写,是不是只要写一个一表的ID等于二表的这个ID就可以了,对吧?那我们再与第三张表进行关联的时候呢?那我们是不是得从第一张表当中和第二张表当中去选一个不为闹的值去跟第三张表进行关联呀?
03:24
没错吧,那同理,我们在与第四张表关联的时候,那咱是不是得从123张表当中选一个不为闹的值去跟第四一个表进行关联,没错吧?那所以说我们下边的关联条件呢,就得这么写,来我们这儿看几个例子啊,首先第一个。那这是第一个表和第二个表进行关联,对吧?那他们的连接条件比较简单,是不是就这么写就行了,OK,那我们继续往下进行,那在与第三张表关联的时候,那咱是不是就得使用coal或者是NL,从第一个和第二个表里边选一个不为的值与第三张表关联?没错吧,那我们在与第四张表关联的时候,那是不是就得用coalla,这回我们就只能使用coalla了,对吧?啊,那咱使用coalla呢,从第123张表当中选择一个不为not值去跟第四张表进行联,那后边呢,依此类推啊,OK,那这个呢,就是我们多表全外的时候,它的这个关联条件的一个注意事项,OK,那我们再继续往下进行啊,那转完之后呢,我们是不是需要从转之后的续表当中选择咱们所需到所需要的结果呀,对吧?然后大家要注意啊,那因为我们是多表全外联,那是不是很有可能会有一些字段会自动补上闹值啊对吧?你比如说这个地方是闹,那这个地方也是闹,那这个地方这个地方都是都是闹啊,对吧?啊,但是呢,我们这些值啊,咱们不期望得到闹,我们期望得到啥呀?如果为闹,那应该说是不是咱们让它显示零是更加友好的呀?
04:50
对吧?所以说我们在选择这些字段的时候呢,我们使用的是不是都是NVL啊,诶,这个也是大家需要去注意的一个地方啊好,那接下来我们再看最后一个地方啊,最后一个地方呢,我们需要把这个最终的结果是不是insert over write到DWS层的这个宽表当中啊,没错吧,因为咱现在是首日装载,而我们有很多的历史数据,对吧?那所以说我们这儿需要使用动态分区,将数据写到不同的分区里,没错吧?那动态分区的时候呢,大家一定要注意了,我们动态分区的值应该是谁?
05:23
应该是谁,是不是应该就是我们每个子查询当中选出来那个DT字段呀,对吧,那咱们就以它作为我们动态分区字段的值,那所以说大家注意观察,咱C来的时候呢,是不是把这个DT放在了最后一个呀,对吧,那它就会作为动态分区字段的值。OK,那就是我们呃,D层user action这张表首日装载的circle语。
我来说两句