00:00
啊好了各位,那接下来咱就正式开始上课了啊呃,我们先把这个最近N天剩下的这两张表给他整一下啊,咱们最近N天只剩下谁了,咱看一下啊,最近N天呢,我们实际上只剩下了这两张表,来简单看一下,这两张呢,一个是交易域优惠券力度,然后呢是一个订单的汇总表,还有一个呢,是交易域下边呢活动力度的订单的汇总表,呃,那这两张表呢,大家应该能够呃看到他们的一个特点啊,它跟其他的这种ND表不同的一点是什么呢?就是其他的ND表它是不是都会对应一个就是ED的表啊对不对,但是咱这两张表是不是在最近一日的汇总表当中是没有相对应的呀,对吧,对吧,你看一下咱们最近一天的表里边有这个什么优惠券力度,有这个,呃,活动力度吗?并没有啊,是这样的啊,那这是他们俩的一个特殊处,就是为什么会出现这样的一个情况呢?呃,这个道理其实很简单,咱们前面讲过,就是所有的汇总表别。
01:01
看的是ED还是ND,那他们都是服务于后边的需求的,对吧?呃,那咱这儿呢,只有这个,呃,最近N日的表,那肯定是因为什么呢?肯定是因为我们后续是不是只有这个最近N日的需求啊,是这样的,所以这块呢,大家稍微再理解一下就行了啊啊,那正是由于它有这个特殊入数,那将来我们在对这两张表做数据装载的时候,那数据应该取自于哪儿呢?ED肯定是没有的,对吧,是不是应该直接取自于DWD层的明细表啊,对吧?这是它的一个特殊处,大家稍微的理解一下啊,对了,那接下来咱就继续往进行,呃,就是这两张表呢,那他们的这个数据装载就是稍微的有点复杂啊,那所以说我们一会儿直接去讲这两张表的话呢,大家可能会觉得诶不太好理解,那所以咱接下来干啥呢?接下来这两张表我们就按照这个汇总表的标准的设计过程,咱去给他设计一下啊,对吧,标准的设计过程其实就是啥呀,是不是就得基于我们的后边的需求,咱们去设计啊,对吧?哎,那这样一来的话,那一会儿这两张表咱们建出来之后,那大家。
02:01
知道为什么这么建,那数据装载的语句呢,就知道为什么这么写了啊,实际上咱们这个就是主要方便大家理解啊,所以接下来呢,就去找一下ADS层跟这两个,哎,这个指标相关,跟这两个表相关的指标啊来咱们去找一下,我们往下翻来到ADS来大家来看一下咱们ADS层呢,有两个这样的这个需求啊,我们一个一个看,先看第一个,他让我们算的是什么呢?是最近30天发布的优惠券的补贴率,诶是这样的啊,那首先那这个是我们的第一个指标,第一个需求,再看一下第二一个,那第二一个呢,是最近三十日发布的活动的这个补贴率啊,是这两张表,实际上他们的思路是很像的啊,说在这儿呢,我们先重点说一张,来,咱们先说一下这个。最近三十日发布的优惠券的补贴率,这个需求大家看了之后是怎么理解的?什么叫做最近30天发布的优惠券的补贴率?首先先把这个补贴率的概念先给它搞清楚啊,什么叫做补贴率呢?呃,在这儿呢,我们以某一个优惠券为例,咱们现在呢,以优惠券A为例。
03:10
OK啊好,那假如我现在有一个优惠A,对吧?我发布之后是不是所有人都可以去领这个优惠券,然后呢,去用它去下单呀,对吧?那是这样的,OK,好,那完了之后呢,什么叫做优惠券A的补贴率呢?补贴率是不是肯定是一个值比上一个值啊对吧?OK,那谁比谁呢?诶,其实这么去比的,OK,所有使用优惠券A的订单明细当中的那个优惠券的优惠金额之和作为分子啊,然后呢,所有使用优惠券A的这个订单明细的原价金额作呃,它的之和作为分母,那我们得到的这个比值就是所谓的优惠券A的补贴率,诶大家现在应该已经知道这个所谓的优惠券呃这个补贴率的概念了,对吧?好了,那补贴率的概念搞清楚之后,我们再来,呃,把这个需求给他来说完整啊,那在这儿呢,让我们求的是所有的优惠券的补贴率吗,是吗?
04:07
并不是他他只让我们求什么,对,他只让我们求最近30天发布的那些优惠券的补贴率,OK,也就是我30天之前的时间太长了,在这儿呢,我就不再去统计了,是这样的,所以这块呢,大家要稍微的理解一下咱们这个需求,具体让我们求的内容是什么,OK,那其实大家可以琢磨琢磨,你说这个指标我们是不是一个派生指标,或者说是不是一个衍生指标,这个咱们可以分析。首先是不是派生指标?所谓的派性指标有一个这样的特点,对吧?它是不是能够直接通过一张实值表聚合得到了对吧?那你想一想这个能不能直接得到,这个显然不能,你不管对什么样的这个度量值直接去和你都得不到补贴率,对不对?哎,所以这个呢,大家要搞清楚,一个率你只能是一个数比一个数,对吧?那所以显然它不是一个派升,那是不是一个衍生指标了?诶,应该是一个衍生指标对吧?OK,好,那既然是衍生指标,那它是不是肯定是基于一个或者是多个派生指标啊,对不对,那它所基于的那些派生指标又是什么呢?来咱们分析分析。
05:10
咱要想把这个东西算出来,你得先算什么?嗯。嗯,那先求出来什么,是不是得先求出来,就是最近30天发布的这些优惠券对不对,所对应的那个订单的是不是原价金额之和对不对,还得找到最近发布的这最近30天发布这个优惠券所对应的那些订单的什么呀,是不是优惠券的优惠金额之和呀,对吧?那都求出来之后,是不是再比一下就能得到这个补贴率对吧?OK,那刚才咱们提到的这个分子跟分母,其实对应的就是它所依赖的两个派生指标,应该没问题,对吧?好,那咱接下来呢,就按照这个标准的设计过程呢,咱们去给他设计一下,首先我们还是先用脑壶去把刚刚我们所描述的这个,呃,派生指标这些东西先给它描述出来啊来,那现在我新建一个脑图,打开这个turn慢啊。
06:05
呃,诶把这已经有了是吧,那在这我们得新建一个啊,新建一个这个脑图,呃,然后呢,我在这调整一下,把它给它还是调整成只有一个方向了啊呃,换成这种吧,好,那接下来咱们就开始啊呃,首先呢,我们先在这呢,把这个标题写一下,这个标题呢,我们就写这个指标就得了,来CTRLC咱给它拿过来,呃,放在这个位置CTRL好,那按照我们刚才的分析呢,这个实际上我们能够分析出来它是一个衍生指标对吧?所以在这儿呢,咱写一个指标,呃类型,那我就写一个衍生指标,衍生诶指标呃指标好,那既然是衍生指标呢,那是不是肯定会有它依赖的这个派生指标啊,对吧,那我们找到它依赖的诶派生指标好,OK,那他依代的发生指标,按照我们刚才的分析呢,是不是应该是有两个呀,对吧,那分别是什么呢?呃,分别是最近三十日,呃,然后呢,这个发布。
07:05
户的,诶优惠券,然后呢,呃,然后呢说是相对的呃,订单哎,明细的什么呀,这个原价金额之和,呃,但我这儿描述的可能不是特别的,呃,具体啊,这个所谓的优惠券相对的订单明细是什么意思啊?呃,其实指的就是是不是使用这个优惠券的订单明细啊,对吧?啊就这个意思啊,大家理解一下好,那接下来呢,我们继续往下,到这儿来一个CTRLC这边呢,我们CTRL为拿过来,那这里边我们是不是还会再依赖于另外一个这个派单指标,对吧?那个其实改一改就行了,这就不是原价金额之和了,而是什么?而是是不是优惠金额之和呀,对吧?当然咱们那个订单明细当中优惠金额其实有两个的,大家有没有印象啊,应该是两个,一个是活动的优惠金额,一个是优惠券的优惠金额,对吧,当然这个优惠呢,肯定得特指什么呢?是不是优惠券啊,对吧?诶优惠券OK,那咱们先给它放在这优惠券优惠金额之和,好,那这就是他所依赖的两个派生指标,这两个显然是派生指标好。
08:05
那咱既下来既然是派生指标,是不是就得用那种呃固定的公式给它表达出来呀,对吧?那接下来咱就给表达一下,呃,这个公式还记得吧,分别是原子指标还有什么来着?呃,统计呃周期啊,对吧?还有什么计力度,那先写业务限定吧,业务诶限定啊,然后呢,再往下走,就是统计力度没问题吧,好,那接下来我们继续走,那他这儿这么写,下边这是不是也得这么写呀,对不对?OK,那接下来继续,原子指标是不是要分成三部分,分别是业务过程,还有是呃这个度量吧,对吧,啊,度量值啊,然后再往下呢,就是聚合的逻辑了,对吧,这个大家应该已经很熟了啊,CTRLC咱给他拿回来好了,那现在这个框架已经搭好了,接下来就是往里边填内容了啊,咱一个一个填,我们先填第一个对吧,那对于这个所谓的派生指标而言,那它所对应的原子指标应该如何定义呢?先说对应的业务过程是谁,咱们要找的是什么,是不是下单明细的。
09:05
原价金额之和呀,对吧?这个其实说的很明确,业务过程那肯定是啥,肯定是下单没啥问题对吧?那这两位那度量值的,那度量值肯定是他的,是不是那个原价金额呀,对吧?Total的嘛,对吧?呃,这个original original amount和这个原价金额,然后继续往下走,聚合逻辑呢,肯定是sum求和对吧?这个都没有什么悬念,OK,我们继续往下走,那下边呢,我们把这几个东西给它明确一下,咱们从下往上走啊,从下往上走,先看下边这个,那时统计力度应该是什么呢?嗯,咱们要算的是使用优惠券的那些订单的是不是原价金额之和呀,对吧?那我这个力度应该是什么,也就是我这个结果,我每行应该是一个什么呢?应该是一个优惠券吧,对吧?因为咱要知道我们最终要求出来的是什么,应该是每个优惠券的补贴率,对吧?那A优惠券我的补贴率是多少?B优惠券补贴率是多少?C优惠券补贴率是多少对吧?你要想求出来这个,那你说得按照优惠券去分别统计用这个券呢,这个订单的原价金额之和和优惠金额之和呀,对吧?啊,你得分优惠券统计,那所以说咱这个力度呢,那肯定得是优惠券力度,这个大家应该是能想明白的啊来我们找到这个优惠券,好,那这个完成之后,我们继续往上看业务限定,这个应该是什么呢?
10:26
业务限定是什么?首先咱们得明确一下业务限定限定的是谁?所谓的业务限定,它是不是会对应我们最终写S的时候一个过滤条件呀,对吧,多滤条件好,那外过滤条件咱们通常是限定谁的呀,其实是限定事实表的数据的吧,大家说是不是这个道理,是用来限定事实表当中的这个明细数据的啊,OK,好,那你想一想,我们要想把这个东西算出来,那你说我们需要的事实表的数据应该有哪些呀?是首先我们需要的是所有的订单明细吗?并不是,对不对,OK,那为什么呢?因为我的所有的订单明细,不一定所有的明细它都会怎么样,都会用券对吧?咱们这个应该是能够清楚的看到的,咱去找一下那个订单明细的时表啊,找到DWD应该是交易域的ODTC是这张表,对吧?来打开,打开之后大家来看一下啊,那往后看,往后看这是不是有一个库房ID啊对吧,这个就是优选ID,你会发现很多是不是都是闹啊对吧?是闹就意味着这些明细它是没有用券的,对不对?那所以说我们这要想算优惠券的补贴率对吧?那所以说你拿的订单明细它至少是不是得先用券啊,对吧?你连券都没有还算什么补贴率对吧?那所以这个东西咱们得明确,其实在这儿呢,首先诶,我们需要用到什么样的订单明细呢?需要用到用券的订单明细。
11:48
啊,然后我们继续往下思考,是所有用券的订单明细咱都需要吗?也不是,对不对,你要的职能是什么样的这个明细啊,你用的券得是最近30天发布的,我是不是才要啊,对吧?你用的券假如是30天之前发布的,那对我这个需求来说有意义吗?没意义,咱也不能要,对吧?那所以说咱这这个所谓的业务限定呢,实际上应该是两个啊,第一个首先你得满足你得用券了,对吧?那用券对应到我们这个护理条件上应该什么,应该是库房ID,它得不为空才行,对吧,这是第一点,那第二点是什么呢。
12:24
第二点是什么呢?就是首先OK,你用的这个券,它的发布日期得位于什么呢?得位于最近30天才可以啊,因为我们只统计什么样的,只统计最近30天发布的优惠券的补贴率嘛,这一点要给他搞清楚好,那完之后,现在大家来思考一个问题,就是在我们这个需求当中啊,这个最近三十日它对应的是不是统计周期。这个最近三日是不是统计周期。是不是啊,OK,你这个得想明白啊,就是统计周期是干什么的来着,是对事实表当中的业务数据是不是进行这个时间限定的呀,对吧?OK,好,那通常统计周期限定的是我那个是不是事实表当中那个那个业务时间呀,对吧?OK,假如说我们这儿呢是下单,那我限定的是不是应该是下单时间,没错吧,OK,好,那通过通过我们刚才去描述这个业务限定的这个,呃,逻辑来看呢,这个最近三十日,它是我们传统意义上的这个统计周期吗?是吗?
13:27
是不是并不是啊,对吧,这个其咱们刚才说了,这个最近30指的是什么?指的是什么呀?就是你这首先得用券,再一个呢,你用的券它的发布日期是不是得位于最近三十日对不对?所以说它实际上是在对谁进行限定呢?是在对发布,就是在对这个优惠券的发布日期进行限定,而不是在对咱们这个下单的时间进行限定,没错吧?那所以说这个并不是统计周期,这是一个普通的业务限定,它限定的是优惠券这个维度的一个发布日期的属性,对吧?这一定要给它区分开啊,OK,那这并不是统计周期,这一点搞清楚好了,那下来呢,咱们把这个业务限定给它明确一下两点,第一点呢,首先得是用券,对吧?呃,得用券,那当然用券它体现在最终的S上面呢,就是那个公网ID不为空就行,对吧,那再有一个呢,就是用券的这个就写券吧,啊券的发布日期哎,需要位于。
14:27
是不是最近三十日啊,对吧,三十日这一点要给它搞清楚好了,那这个三十日对应的就是这个三十日啊,它是一个业务限定啊,接来呢,接下来我们继续往上看,那下边的就是统计周期了,来大家琢磨琢磨,咱这个需求的统计周期应该是什么?其实这个需求上说吧说呃,就是准确的来说呢,这个需求上面并没有给咱们明确统计周期,对吧?OK,为什么呢?你想啊,什么叫统计周期来着,统计周期指的是对是不是下单记录的这个时间的一个过滤条件,对吧?他这告诉我们了,让我们比如说拿最近30天的下单明细,拿最近50天的下单明细,他告诉咱们了吗?没有,他这说的并不并没有明确表明咱们这个统计周期是什么,但实际上这个东西咱能推测一下对不对,你想一想,假如说在这儿呢,让我们规定一个统计周期,你说你可以选多少。
15:16
其实最近30天就完事了啊,是这样的啊,OK,为什么是这儿给他来一个最近30天就完事了呢?这个我需要给大家解释一下啊,就是首先你琢磨一下,就是在这儿我们想去算这个东西,对吧?我们需要从下单实值表里去过滤数据对吧?那我们过滤数据目前的过滤条件有俩,一个是首先是得用券,那再有一个呢,就是你用的那个券的发布日期得位于最近30天的,对吧?咱最终是不是只要把这样的数据能拿到就行,没问题吧?OK,好,那你想一下,就是使用了最近30天发布的这个优惠券的订单,那你说他的下单日期一定位于最近30天,这句话成立不成立。我再重复一下啊,就是使用了最近30天发布的优惠券的订单,那它的下单日期一定位于最近30天,这个成立不成立,是是成立的吧?啊,这个肯你想啊,用了最近30天发布的这个优惠券了,对不对,你的下单日期肯定是位于最近30天内的,对不对,你不能说我这个券还还没发布呢,你就先用了它,那不可能对不对,那所以这个肯定是成立了,那既然成立,那所以说这儿咱是就满足下单日期位于最近30天这个统计周期啊,对吧?啊这样,所以在这儿咱们给他手动的加上了一个最近三十日的统计周期,这儿为什么一定要加一下啊,你想一想,如果这儿你不给他加上这个统计周期,不明确这个东西,将来咱们去算这个指标的时候,你怎么算,是不是找到实时表直接用这俩条件过滤了呀,对吧,这俩条件过滤它肯定会怎么样,会全秒扫描吧,对不对,因为库房ID不是分区,那我这个东西它也不是分区,对吧,你不用分区自段过滤是不是就得全秒扫描对吧?在这儿我们相当于是先通过。
16:55
分区过滤30天的数据出来之后,再用这个再进一步的去过滤,是这样的,这一点大家要稍微的理解一下啊,也就总之啊,就是咱们这儿呢,只要保证你最终把什么样的订单找到就行了呢,你只需要找到就是使用了最近30天发布的这个优惠券的这个明细,是不是就完事了,对吧?诶找到它之后,那接下来再进行一个简单的分组聚合就完事儿了,分组按谁分组呢?是不是按照优惠券分组吧,对吧?那求和对谁求和呢?是不是对原价金额进行求和对吧?那这样一来我们就能拿到每一个优惠券对吧?OK,相对应的那个订单明细的原价金额之和了,OK,好,那这个派产指标就算是定义完毕了,好了,那完成之后咱继续往下走啊,往下走看这。
17:41
那这个呢,这个怎么定义啊,这个跟上边的定义应该是差不太多的,对不对,那唯一的区别你说应该体现在哪?体现在原子指标上面吧,对不对,这个是对原价进行求和,而这个呢,是对,是优惠券的优惠金求和呀,对不对,所以说它俩应该是非常像的啊,所以在这儿咱们这样吧,我把这个还删掉,我们把上边的给它再复制过来,然后改一改就行啊,CTRLC拿过来CTRLV,好,咱给它放在这儿,那那这边呢,我们就把原价金额改成一个优惠券,诶优惠,呃这个金额那就完事了,别的都不用动好了,那截止到现在呢,那这个需求所对应的两个派生指标,咱们就给它找到了,OK,好,那找到之后各位同学你分析分析啊,你看这俩派生指标他们有什么样的特点,它是不是正好就满足哪个特点,首先第一个统计呃,力度是相同的,然后呢,Eo过程是不是也是相同的,对不对,然后呢,统计周期是不是也是相同呀,对吧,那所以说实际上我们就可以怎。
18:42
怎么样把它俩是不是放在同一张汇总表当中啊,对吧?诶是这样的,OK,好,那这张汇总表就是谁呢?来咱们去看一下,就是我们文档当中的往上翻,往上翻咱们看到的这个优惠券力度的这张汇总表,好,那现在我把这张表拿出来,咱们一起看一看它的这个最终的建表语句,CTRLC拿过来,拿过来之后呢,我们,嗯,给它先放在这吧,CTRL位,来咱们一起来看一下这张表的具体的表结构,来咱们先明确一下它表名啊,表名叫做DWS,然后呢的是不是交易啊,对吧?然后后边呢,是哎,也就是优惠圈力度一行是一个优惠券啊,然后边呢是OND啊这个不多说,然后接下来继续往下走,咱们明确一下这张面的行列,还有分区,先看行行呢,它一行就是一个优惠券,咱刚才是不是已经说过了呀,对吧?好,那接下来继续往下走,看一看它具体的列都有啥,呃列呢,其实也可以分两部分去看啊,这边是不是都是一些维度的信息啊,对吧,那下边就是咱们这些对应的。
19:42
统计值,OK,那先看维度信息,维度信息呢,首先第一个就是优惠券的ID,那下面呢,有优惠券的名称,优惠券的类型吧,这是然后还有优惠规则,然后还有一个star data,这个其实对了,就是是不是那个所谓的发布日期啊,对吧?OK,那这些我们是不是也相当于是退化进来的呀,对吧?呃,然后呢,今天上午上完课之后呢,有同学就是问了一下,就是这个所谓的维度退化这个概念,它标准的定义到底是什么?因为咱们经常说这个退化这个概念对吧?那实际上咱们这儿就可以这么理解,现在啊,就是只要是我们把维度表当中的某个或者是某几个维度属性给它放到了事实表,或者放到了汇总表里,对吧,就是放到了DWD的表,或者放到了DWS层的表对吧?OK,那我们这个操作都管它叫做维度退换,就是不管我那张维度表还在不在啊,你在,OK,那你这个操作咱们也叫退换,你不在咱也叫退换,对吧?所以说在那儿呢,跟那个维度表在不在没。
20:42
好,太大关系对吧,只要是把维度属性放到了汇总表里,都叫维度对化,这个大家就这么理解就可以了啊现在呢,接下来咱们继续往下进行维度,咱们就看完了,接下来看剩下的这两个度量值,这两个度量值是不是就对应我们刚刚所说的那个,呃,相对是那两个派生指标当中的原子指标吧,没问题吧,一个是对原价金额求和,一个是对优惠券金额求和,那完了之后呢,看一下这个两个字段没没啥问题吧,OK,好,那截止到现在呢,那咱这张表的字段就算是讲完了,OK,它的分区呢,仍然是那种,就是传统意义上的最近N天的那种分区规划,那这个呢,咱们就不再多说了,那就一天一个,然后每天的分区存放,历史啊,不是历史啊,应该是截至今天的最近N天的汇总结果,对吧,这是他的分区规划啊,好了,那这张表的表结构,咱们现在就来给他说完了,那说完之后我把视频停一下啊。
21:32
嗯,好了各位,那接下来呢,咱们来分析分析这张表我们到底应该如何去做,怎么做下这张表,首先需要明确的一点是,这是一个N日的表,对吧?呃,N日表在咱们这儿呢,有规定,我们不做历史数据的初始化,对吧?所以在这我们只需要写一个circle就完事了,就在这儿呢,我先2020-0S,我先假定当前的日期是6月14号,好,那接下来咱们怎么做,现在怎么做呀?
22:02
怎么写这个字啊?啊。怎么写,说白了很简单啊,就是在这儿呢,我们首先是不是得先拿到我们需要的明细数据啊,对吧,再拿到相应的维度信息对不对,然后呢,进行过滤,过滤完之后是不是分组聚合,是不是应该就是这样的一个逻辑啊,对不对,那其实咱们说这个三后它复杂复杂其实就是复杂在哪呢,大家说。附在这个circle的什么上边,是过滤条件复杂呀,还是分组字段复杂呀,还是聚合复杂呀,什么复杂呀,其实说白了就是过滤条件复杂对吧?是不是它就比别的多了个呃业务限定啊,相当于是对不对?所以就是过滤条件稍微复杂一点对吧?那过滤我们的目的是什么呢?咱们的目的是为了拿到是不是使用了最近30天发布的优惠券的订单明细啊,对吧?诶是这样的,OK,那接下来咱们就来看看这会儿到底怎么去拿来,我们直接select一下之后呢,我们from from谁呢?From dwd层,也就是呃是呃呃明细层对吧?找到那个应该是order DC是不是这张表啊对吧?好,拿到它之后咱们需要先干啥呢?我们先需要先干啥呢?先按照那个统计周期过滤一下,对吧?因因为啥呢?因为统计周期咱们是分区,分区字段对吧?分区字段过滤是不是效率高啊对吧,先用它过滤,那过滤的时候我应该拿多少个分区呢?按照刚才的分析,咱是不是先得拿30个分区啊对不对,OK,好,那也就是在这儿呢,我们应该是DT大于等于得。
23:27
哎,比如说来一个艾特或者萨都行啊,完了之后呢,2020杠零六杠幺四,我后边得减个多少呢?29对不对,那这样一来是不是就拿到30个分区来,对吧?但是你要知道这30个分区是我们最终需要的数据吗?并不是,我们一会儿是不是还得再做进一步的过滤才行啊,对吧?OK,好,那现在呢,我们先做一个简单的过滤,我们当前能做的过滤只有一个什么呢?只有一个coupon ID is not,我现在只能先把那个就是没,就是用过券的明细先过滤出来对不对?然后我们最终还得过滤什么来着,还得保证他用券的日期是在最近30天发布的对不对?用券用的那个券是在最近30天发布的才行,对吧?但是我们现在能过滤吗?不行,为啥呢?因为在这张表当中,我们只有一个库房ID,我没有这个券的发布日期,对吧,你要想用它过滤,是不是得关联之后才能去过滤啊,对吧,这个要理解一下,所以在这儿呢,我们暂时就先不去过滤了,咱们先做到,先做到这儿就行了,之后呢,我把这里边咱们所需要的数据呢,先给它往外拿一下啊来咱们都需要用到。
24:27
谁呢?需要用的谁呀?你这需要对谁进行聚合,那咱这是不是就用到啥呀,对吧,首先我需要对一个older是不是a original amount一起进行一个聚合呀,对吧?那所以在这儿呢,我们先拿一个啥呢?先拿一个那个original amount,应该就是它这是原价对吧?OK,那接下来继续往下走,还得拿一个啥呢?是不是还得拿一个这个优惠券的优惠金额呀,对吧,应该是酷房,这是优惠券的优惠金额,好先把他俩拿走,哎,光拿他俩行不行呢?显然是不行的,咱还得拿这,哎对,你还得拿一个Co房ID是不是才可以啊对吧,好,先把它拿到,OK,好拿到之后呢,我们就继续往下进行,呃,那下边呢,其实咱们可以,呃,就是做一个选择,做一个什么选择呢?就是我其实咱们现在就能够进行聚合了,对吧,我现在聚合行不行。
25:15
能不能聚合?现在能不能聚合,其实就已经能聚合了,对不对,我先聚合,然后呢,一会儿再去呃照,然后再过滤行不行也行,或者说我我先干啥呢?我先这么放着完之后呢,我照完之后我再去进行聚合,是不是也可以啊,对吧?啊,其实都行啊,都行啊,那在这儿呢,我们就先不去集合了,咱们先这么放着吧,那一会儿最后咱们再去做集合啊来,那接下来咱们先继续往下走,下边我们需要干啥呢?我们是不是得设法拿到这个优惠券的那个所谓的过那个那个发布日期才行啊对吧?拿到发布日期之后,是不是再关联再过滤就完事了,对吧?诶来咱们现在继续拿走,那你要想拿优惠券的那个发布日期,必须得从优惠券的维度表里边去拿,对吧?来,我们找到dim层的放这张表,它是一个全量表,那在这儿呢,我们需要先拿到它什么呀?是不是拿一下我们这个最近一天的分区就可以了,对吧?应该是2020杠零六杠幺四这一天的没啥问题,对吧?那接下来咱继续往下走,那里边儿我需要拿什么信息呢?
26:18
ID是必须得拿到的,对吧?那还有谁呢?就是你最终这是不是你会发现他还需要退化一些维度属性对吧?那需要谁那咱就拿谁呗,库号name,咱给他拿一下这个po啊,然后呢,来一个name coon,然后n me OK,这个没问题,然后往下走,下边是不是还得拿一个库,呃,这个Type Code,还有type name对吧,那咱就拿就行了,一个是呃,Code,还有一个呢,是name,然后往下走,再往下还有一个啥,再往下是不是还有一个弱,还有一个发布日期啊,对吧,那咱们现在呢,先拿一下这个,呃,这个弱Co p啊弱而诶没有这个弱嘛,那咱们可能不叫这个字段啊,我们应该叫做benefit rule对吧?好,那但是这个内容是一样的,现在继续往下走,再往下说还拿一个发布日期啊,为什么,那有没有发布日期呢?咱这其实没有发布日期,我们点过去看一下啊,没有发布日期,但我们有一个什么呢?有一个发布的时间,OK,这要这儿有一个创建时间,其实还有一个什么呢?还有一个。
27:18
Start时间,那其实这个谁才是咱们这个所谓的发布日期呢?哎,其实应该是start类的,对吧?这个所谓的career time是指什么呢?是指我们这个后台对吧?把这一个优惠券的信息写到这张表里边的时间对不对?OK,那可能我这个券我明天诶我我正式开始使用,那我是不是前两天我先把这个券写进去啊,对吧?啊是这样的,那个不是咱们的真正的所谓的发布日期,我们应该用start time啊,当然这只是一个,这是一个time,我们要的是什么,是日期对不对?所以这个我们需要对它进行一个格式化的处理,对吧?来,我们现在先给他来一个data form之后呢,把这个日期放进去,Start time之后呢,给它格式化成YYYY,然后杠MM,然后杠D,这样一来是不是就格式化完成了呀,对吧,这其实就是咱们得到的这个所谓的尔a date,诶,DAOK,好,那这个信息咱们就得到了,好,那得到之后,接下来我们要做的工作是什么呢?很简单,是不是就用它跟它去做一个过滤,过滤完之。
28:18
后,那咱们是不是再用这个发布日期做一个最呃呃不是做过滤啊,他来跟他做做一个什么,做一个照,对吧,他跟他做照,照完之后咱们再用这个star data是不是去做过滤啊,对吧?诶可以这样做,那或者其实我这也可以这么做的,我也可以这么做啊,我能不能说在选这个维度数据的时候,就先做一下这个过滤呢,对不对?比如说我这么做先来一个and and啥呢,把这个给它拿过来,哎,CTRLC放在这儿,那先把它,诶放在这儿之后呢,来一个这样的同样的过滤条件。CTRLC,咱们拿过来。OK,好,那这个过滤条件是什么意思,大家应该能搞清楚对吧?这是不是就是在对那个发布日期进行过滤,对不对,也就是说我在这儿呢,只把什么样的数据拿出来呢?只把最近30天发布的那个优惠券的维度信息拿出来,别的多余的我就不要了,对不对?这个能不能相关零的其实是可以的,因为本来我最后也要给它过滤掉了,对吧?你30年之前的时候本来也不要了,对吧?那所以我先给它过滤掉,那过滤掉之后,那一会儿我再用它跟上边之的时候,是不是也相当于能完成一个过滤的操作,为什么?你琢磨琢磨啊,来咱们思考一个这样的问题,那一会儿这个跟上边去做join的时候,对吧?那他们的连接条件,那肯定得用coon ID没问题吧?好,那这两个字查询他们的coon ID对应的这个包含关系应该是什么样的呢?
29:42
是互不包含呀,还是怎么怎么样的一个逻辑,应该什么样的,呃,应该也是互不包含的一个逻辑啊,正常来说应该也是一个互不包含的逻辑啊,为什么是这样呢?咱们来琢磨琢磨,首先我们先看这块儿。呃,就是此处这儿呢,这里边儿它展示的应该是什么?应该是最近30天的所有的用券的订单明细,对不对,那也就是说这里边的一个库房ID,那咱们应该怎么去说呢?应该是最近30天的这些明细所用的优惠券。
30:15
对吧?OK,那最近30天用的这个,呃,这个下单明细用的优惠券,那可能是最近30天发布的,也可能是什么呢?也可能是,诶30天之前发布的,没没问题吧,OK好,那么之后咱们下边拿出来的只有什么呢?只有最近30天发布的优惠券对不对?OK好,那这应该是这两部分数据的一个描述,那他们的对应关系应该其实就是这种里面就是这种,OK好,那为什么是这种呢?咱们来分析分析啊,就是左右都有的,这是什么呀?指的就是OK,我最近发30天发布的优惠券,完了之后呢,是不是有人用了呀,对不对,OK,好,那这一部分呢,那指的就是诶这部分用的券了,但是他用的是30天之前发布的券,对吧?那这一部分呢,指来的是什么啊对,这是最近30天发布了,但是呢,没人用对不对,当然这个概率可能出现的比较少啊,就是正常情况下呢,我们如果是一个正常体量的一个电商平台呢,呃,不可能说你30天发布了一个发布了一个券,然后一个人都没,一个人都没有,那估计离黄也不远了,对吧?啊就是这个意思啊,所以这块呢,咱们大概了解一下,就是这可能是一个极端情况啊,但是极端情况是不是也可能会出现啊,对吧?诶是这样的,这个大家需要去注意一下啊,好了,那这是这两部分数据对应关系,那一会儿咱们其实就可以直接通过join是不是对我们这个明细数据进行关联呀,对吧,因为我不同的照的方式,我剩下的数据是不是不一样啊对不对?OK,那在这儿我们可以用哪种转的方式呢?
31:41
我能不能用innerro?其实能用,你要用金字账的话,是不是相当于对这个明细数据做了一个过滤,对吧,这份数据是不是直接就给扔掉了呀,不会出现对口结果,这其实相当于做了过滤了,诶这样行,那或者说你但是但是你用你用inter账的话,可能会出现一个问题啊,什么问题呢?就是我们统计出来的这个数据啊,它结果它不全,对不对,为啥呢?因为你这么算的话,是不是可能会有一些最近30天发布的券啊,你没统计进来呀,对不对,你用in inter账是不是这部分没人用的券,它就不会出现在结果里边了,对吧,他可能会出现这样一个问题,这样当然你要为了解决这个问题,你再用哪种照的方式就行了呢?你用right照,那这样一来是不是肯定能把最近30天发布的圈都保留下来,对不对,这一点大家稍微的理解一下就行了啊,那完了之后咱们文档这边呢,其实用的并不是呃,这个right照,咱们文档就用的诶inner照啊,因为为什么呢?因为文档可是考虑到啊,就是这种情况是不是一个小概率事件啊,对吧,这个不太可能发生啊,所以他并没有去考虑这个细节问题,但是咱要想考虑的话呢,在这儿应该用right。
32:44
啊,大家理解一下啊,OK,那在这我们跟文档保持一致了,我们就用inner照就得了啊来,那现在我们CTRLX这来一个括号,诶来拿过来,拿过来之后呢,CTRLV放在这,这个我们给它往前推一把啊呃,下边呢,咱也给它来一个这个子查询,CTRLX这个放括号里,CTRLV,呃,这个也给它往前推一下啊呃,这俩我们分别起一个这个别名啊,上面这个咱就叫OD啊,ODTL,下面这个呢,咱们就叫cou,是一个优惠券啊,然后他俩呢,我们就做是不是?呃,Inner join就行了呀,诶我再确认一下,我看文档到底用的哪种照的方式啊,咱们看一下文档用的,诶文档用的是left on对吧?诶那文档其实考虑到我刚才所说的那个极端情况了,对不对?他其实把谁放左边了啊,他是把那个优惠券放左边了对不对,那其实相当于我们刚才说的是把优惠券放右边对不对啊,是跟那个right这是一样道理,所以文档考虑到这个计算情况,那咱们还跟文档保持一致的,在这就用right这的啊来咱们R。
33:44
I jt OK,跟文档里边那个left是一样的效果啊来,它俩完成之后呢,我们再去写一下这个连接条件啊,应该是on OD,然后点点A,呃,找到这个库旁ID对吧,咱们拿过来,呃,拿过来之后它应该等于谁等于Cou.ID好,那这样一来是不是在做drawone的同时也对这个明细数据做了过滤了呀,对吧?好,那接下来我们就只剩下最后一步了,那就是啥呢?是不是they like完了之后from下对吧?那from之后那咱就可以干啥了,是不是就可以去做这个过滤了呀?对吧?呃,这块怎么会报错呢?呃,少了东西了是吗?呃,少了个逗号是吧?哦,这少了个逗号啊,这这个这个它是不是把这个字段当成上面这个字段的别名了呀,对不对?这个所以说会报错啊,这个大家稍微注意一下行了,那现在咱们就已经关联上了啊行,关联上之后,接下来我们要做的工作就简单了,那就是干啥是不是单纯的一个分组聚合就完事了,对吧?那咱们按谁分组呢?我们往下看啊,我们应该隔。
34:44
酷拜一下,是不是应该按照优惠券进行分组对不对?来葛如拜一下,呃,Cou,然后呢,就找到谁呢,找到那个ID库房ID好,那完了之后呢,我们再往上走,是不是就可以选择我们所需要的这些属性信息了,对吧?OK,那咱们现在就一个一个来啊,那他首先我需要先把这个呃库房ID给它拿过来,COD。
35:06
Po,然后下游加ID好给他拿过来,拿过来之后接下来呢,是不是还得拿这一系列的维度属性啊,对吧?那这一系列的维度属性我们是不是就不能直接拿了对吧?你要想拿是不是也得放在这个分组字段当中,对吧?那这个会改变力度呢?同样是不会的,对吧?所以在这儿咱们把这个语法给它写完整,PYP应该是一个是内幕,呃,当然这个分组的的顺序,这个无所谓啊,诶,Co OK,这个拿过来,然后还有一个benefit是不是弱啊,对吧,Be benefit,然后再往下给谁了,是不是那个star类了对吧?这个也得放在里边好了,那这一大堆东西咱们全部拿出来,然后呢,放在这个位置,你给它选出来,选了之后呢,我我这儿就不带一点血了啊,那下下边干啥呢?是不是在对这两个字段是不是进行一个sum求和就完事了,对吧,这个就比较简单了,我们直接来一个sum,这儿来一个split a original amount,然后这边往下走,诶我们这再来一个啥呢?再来一个split,呃,应该是这个Co mark好了,那这样一来的话,那咱这个数据装载的语句就算是写完了,最终我们需要将其是。
36:07
是不是IN4套这张表的是不是当天分区就行了,对吧,我们算的是截至六月14的最近N天,那就放在这张表的是不是14号的分区就行了呀,对吧?OK,那这张表咱们就算是搞定了,嗯,OK,嗯,呃,就是还是还是其实还是之前那个问题啊,就是如果一个优惠券他改名了,就算是改名了,OK,那他一天在一天里边他也不可能会出现,呃,也不可能会出现,就是两个状态吧,对吧?对,但是咱们这虽然我们是就是多天的数据,咱们这是多天的数据,对吧,是多天的数据,那你要出现这个改名的情况呢,那这时候就考虑具体情况吧,你就看你是想把这个券当一个用,还是说你改完名之后,你想把它当俩用。对吧,因因为比如说我同意我你假如就考虑这种改名的情况啊,比如说我这儿的有一个券对不对,最开始他的ID是一,然后他的名字叫A对不对,OK,好,那完之后过了一段时间了,我把这个东西名字给它改了一下,这个改成小A了对吧?啊,或者说你改成B了对不对,那这时候你就得考虑到你到底是要把它当一个券去统计,还是当两个圈去统计,对吧,你要是想当两个圈去统计,那在这儿是不是就直接这么写,没有任何问题,对吧,没问题吧,OK,你要是想把它当一个圈去统计,那这个name你就不能放在这了。
37:27
没错吧,因为你要是把内幕放进来,这儿是不是可能会出现,诶,同一个一,这儿既有A又有B,它会有两行,对吧?实际上这个就取决于具体的情况了,这个看怎么去,呃,这看业务要求吧,这个东西就是这样的,OK,好,那咱们这儿呢,就呃这么去写就可以了啊,这个大家理解一下啊,好了,那这个完成之后,我们这张表的数据装载也就算是哎,完成了,OK,那他要是完成了,大家想想我们将来再去做ADS层的那个所谓的优惠券补贴率的需求,大家说是不是就简单了,你想想将来我们要想得到这个最终的结果,咱们这个怎么算一下就行了,我们其实直接找到这张表对不对,然后呢。
38:07
把这张表的数据直接查出来,然后用是不是这个,呃,优惠券的这个金额,呃,比优惠金额去比上一下这个原价金额,直接就得到这个优惠券的补贴率了,没问题吧,诶也就是剩下咱们再去做ADS的需求就非常非常的简单了,它的核心逻辑其实就已经体现在这个汇总表上面了,诶这一点大家稍微的理解一下啊,行了,那这个完成之后,视频我给他停一下啊。
我来说两句