00:00
呃,好了各位,那接下来我们把最后剩下的这三张表,历史至今的汇总表给他看一下,呃,首先我们先看第一张啊,第一张呢,表标题是呃,交易与用户力度订单历史至今汇总表,实际上这张表是不是正好对应的就是我们前面就是呃举例子的那个需求啊,对吧?当然咱们举了个什么需求来着,举了一个让求什么最近一七三十日的新增下单用户数的需求,对吧?啊这样的,那怎么能求出来这个最近一三日的下单用户呢?其实很简单,我们当时说只要我们能拿到每个用户的首次下单日期对不对,那我们再去求每天的或者是最近N天的这个下这个新增下单用户的时候,是不是就比较简单了呀?对吧?啊,是这样的啊,那OK,那那个所谓的每个用户的首次下单日期应该位于一张什么样的汇总表里呢?是不是就应该位于一个用户力度的,然后呢,是历史至今的一个订单的汇总表啊,对吧,就应该位于这样一张表里,好,那现在呢,我们。
01:00
把这张表呢,给它拿出来,咱们看一下它完整的建表语句是什么样的,那天我们只是举了一个小例子来,现在咱给它拿出来看一看,首先咱先看一下它的标题,呃,这个标题的这个这个表名啊,表名它的表名是什么呢?叫做DWS,呃,然后呢是trade的,也就是交易对吧?然后呢是U,呃,User就是这个用户力度呗,对吧?然后后边的是order啊,下单业务过程,然后TD是历史资金汇总,OK,那这个就是表明,那接下来我们来明确一下它的行列,还有分区,这张表呢,每行数据所指代的是什么呀?应该就是一个user,一个用户吧,对吧,这个没什么可说的啊,那接下来呢,我们继续往下进行,呃,那下边呢,就是看一下它具体的字段,呃,字段呢,我们,呃,从上到下咱们逐个看一下啊,首先第一个就是一个UID,它用来表示每个用户,这个不用多说,然后这里边我们并没有去给他退化维度属性,这里边有维度属性嘛,没有对吧?哎,就一个UID,然后下边这些东西都是什么,都是统计值。
02:00
不是统计值啊,OK,好,那这里边分别对应的是什么呢?是order date first order class,也就是首次下单日期,末次下单日期,然后再往下呢,这是啥?诶,这是下单的次数,那这个呢,是下单的这个件数,然后再往下呢,是下单的各种各样的金额,OK,那这就是咱们这张表的这个相关的这个字段啊OK,好了,那行和列咱就都说完了,最后明确一下分区,还记得这种历史资金汇总表的分区怎么规划吗?呃,就是历史资金呢,我们也不是只算一次对吧?啊,咱们需要每天都算一个历史资金,所以说它的分区规划呢,仍然是按天分区,一天一个,呃,然后每天的分区里边会存放是不是历史截至当天的汇总结果呀,对吧,每天都是一个历史截至当天,诶,这是他的分区规划,行了,那这个表的结构咱们就明确下来了啊,跟那天咱们设计的其实差不了多少,好,那接下来咱们就来看一看它的数据装载应该怎么做,其实咱那天数据装载也已经做过了啊,但是今天咱们再做这个数据装载你会发现。
03:00
跟之前相比啊,还是有点区别的,哎,就区别主要体现在哪呢?主要体现在咱们从哪张表里取顺啊,其实那天我们再去,呃,讲那个历史资金汇总表的时候呢,我们由于DWS层咱们没有那么多的表,当时对吧,所以说我们直接取自于哪儿,取自于DWD层对不对,那现在我们DWS层已经有这么多的表了,对不对,那咱们是不是就得考虑考虑,OK,诶我这儿有没有一个跟它相对应的对吧?然后呢,是ED的表有没有,如果有的话,咱是不是可以从一地表里取啊对不对,那有吗?有没有,咱们是不是可以搜一下啊对吧?来我们直接ctrl c ctrl I来搜一下,那么搜是不是跟它相对应的那个ED就完事了,对吧?诶你会发现咱们实际上呢,是有一个异地的汇总表的对吧?诶也是用户力度,也是这个下单的业务过程,所以说我们在对这张表进行数据转载的时候,咱就没必要再从明细表里取了,对吧?直接取自于1D就行了。好,那接下来咱们还是明确一下它的首日跟每日具体怎么做啊,首日的时候我们需要找到是不是那个1D表的全表数据啊对吧?找到之后呢,我们要不要分组,找到全表数据要不要分组?
04:12
咱们分组得分组吧,对不对,因为就是跟他相对应的那个一地表,首先我是不是已经有很多的历史分区了呀,对吧?OK,好,那我同一个人同一个user是不是可能会出现在一地表的多个分区,对不对,那OK,我需要怎么办呢?我是不是需要把同一个人在每天的这个汇总结果是不是再给它加一起啊,对不对?所以说我们需要把这些数据汇总到一块儿,所以我们还需要再给他进行一个分组,按照用户分组,那就完事了,分组之后呢,是不是咱们再去求最小值啊,最大值是不是获取首次末次下单日期,那之后呢,再对这些东西进行一个求和,那就完事了,对不对,这是首日,那每日的时候呢,是不是还是按照咱们之前那个逻辑,先从这张表取前一天分区对吧?然后再去当天的汇总结果,注意这个当天的汇总结果还用从明细里边汇总了,不用了,直接从异地表里拿当天分区是不是就可以用啊对吧?当天分区本身就是用户力度啊,对吧?诶这个相对来说更简单了啊OK,那这个S不再写了,我们看一下文档是怎么做的啊,来找到它的首日和每容。
05:13
状态往下翻来,CTRLC我拿过来,呃,放在这个位置啊好了各位,那现在呢,咱们这两呃两个数据状态语句就已经摆在这儿了,来,现在咱们一起给它看一下啊来吧,咱们现在先看第一个首日装载,看看该怎么做的,跟刚才咱们所说的几乎是一样的,找到一地表全表数据直接按用户ID进行分组,然后呢,这些值是不是就可以统一的求出来了,对吧?求出来之后,那我们把它写到14号分区就行了,为什么要写到14号分区呢?因为我们现在算的是就是截止六月14的,呃呃,就是或者说应该叫什么呢?应该是呃,历史到6月14号的汇总结果,对吧?历史到六月14的总结我就得放到十四二分区啊行了,完成之后我们继续往下看,下面就是它的美日状载了,这个我们就不再这说了啊,这个美日状载它是用哪种方式去做的,他用的是那个全外联对不对,他没有用union啊,呃,用union这也可以完成咱们这个工作,那这个跟咱们之前唯一的不同就是下边这个自查询,这个是不是直接取自于异地当天分区,我们之前是从明。
06:13
是不是又做了一次汇总啊,对吧,这个就不用汇总了,诶更省事了啊好最终呢,把数据给他,诶该加的加在一起,把这个结果写到十五二分区,诶搞定了,诶这个其实也不难啊,行了,那这张表咱就算是,诶这个说完了来视频我给他停一下。
我来说两句