00:00
嗯,好了各位,那现在呢,我们再来就是趁热拉铁啊,咱们再去看一个这个与之这个类似的一个这个活动力度的汇总表,咱们去找一下那张表啊,来找一下,呃,在哪呢?应该是在最近N日的汇总表当中,在这个位置来咱先看一下这张表的这个标题啊,它叫交易域,然后呢,活动力度订单最近按日汇总表,那你接着来,大家可以想一想啊,你说这个东西咱们最终里边会存什么样的数据呢?懂没懂了,看到名字对吧,猜一猜里边可能会有什么数据,你想啊,他是把什么把订单这张明细表对吧?然后呢,最近N天的数据进行了一个聚合,对不对,那聚合到什么程度了呢?是不是聚合到了活动力度一行是一个活动了,对吧?那你琢磨琢磨,你说会得到什么样的结果。不对,是不是,首先一行是一个活动对吧?那么这后边是不是就是对这个度量值进行集合呀,对吧?能聚合的有什么呢?无非就是就是参与这个活动的这个订单的是不是原价金额之和对不对?还有参与这个活动的订单的啊,那个活动优惠金额之和是不是也是这些东西啊,对吧?OK,好,那你把这俩东西算出来之后,也能算个什么呢?是不是也能去算一个什么活动的补贴率啊,对吧?是这样的,所以说这个表它所服务的需求就是我们刚刚所看到的ADS的这个需求,诶是最近30天发布的这个活动的补贴率跟那个优惠券是不是极其类似啊对吧?它俩唯一的区别可能就是啥呢?呃,这个力度是不一样的,对吧?那个我一行将来是一个什么呀?是一个优惠券,对吧,这个我最终是不是一行是一个活动啊,对吧,这一点大家稍微的理解一下就行了,那这个呢,我就不再带着大家去一点点分析了,其实你要分析的话,它跟刚才这个分析的过程应该是很像的,对吧?我们就不再一点去分析了,那接下来呢,我们就直接看一下。
01:50
就是给这个需求,咱们所建出来的这个汇总表到底长什么样啊,来咱们去找一下。找到这个活动力度的这张回动表来给它粘出来,哎,CTRLC,呃,完整往下翻一下啊来咱们放在这儿好了,各位同学,那现在呢,我们一起来看一下,首先咱先看它的表名,呃,这个表名呢叫做DWS,然后就是的是不是交易啊对吧,交易呢,完事之后是activity,活动力度之后呢是older older就是业务过程呗,然后对接N天,好,那接下来我们看一下它具体的表结构,这张表每行它是一个什么呢?每行是一个。
02:23
注意是一个活动吧,哎,这个我为什么一定要强调一下是一个活动,因为就是活动维度表,它的力度是什么,大家还记得活动维度表的力度是什么还记。活动维度还记得吗?活动维度表的力度是活动吗?并不是咱们那个活动维度表的力度是一个什么?呃,咱找一下啊,找到XT这张表,这张表一行数就是一个什么。是一个规则对吧?诶,这个咱们得回忆起来啊,OK,好,那既然它是一个规则,那也就是这儿的力度跟我们刚刚看到的这张汇总表的力度是不一样的,对吧?那不一样的时候,呃,不一样的话,那一会儿我们去,呃,是不是事实得跟维度进行照呀,对吧?那照的时候我们得做什么操作,一会儿咱们去琢磨琢磨啊好,那接下来咱先继续往下看啊行,这张表一行是一个活动,给它搞清楚,那接下来继续往下走,下面一个是啥呀?是不是就该看它具体的字段了呀,对吧?来,我们现在先看这些字段,这字段其实很简单,就是活动的一些维度信息,里边有活动的ID,活动的名称,还有活动的类型,还有活动的发布日期,这里边并没有体现那个活动的规则对吧?诶这个一定要搞清楚,先来继续往下看,下边这俩字段呢,其实对应的就是我们诶补贴率的那两个,诶原则指标,那分别是参与这个活动的订单的原始金额和参与每个活动的订单的优惠金额啊这个给他搞清楚就行了,好了,那这就是咱们这两表的行,还有列啊分区呢,仍然是这种。
03:50
ND表的分区规划,那接下来呢,我们继续往下走,咱们来看看这张表的数据装载应该怎么做,那现你说这张表的数据怎么做呀?这张表的数据装载是不是应该跟上边这个优惠券的应该很类似啊对吧?咱们首先需要先干什么?首先我们得先拿到就是参与了最30天发布的活动的订单明细吧,对不对?我再重复一遍啊,咱们得首先得拿到参与了最近30天发布的呃这个活动,呃,活动的这个订单明细对不对?先把这个东西拿到啊好,那这个怎么拿呢?诶分两步,首先第一步我们得先从订单明细这张表当中拿是不是30个分区的数据啊对吧?这儿为什么也要拿30个分区呢?道理很简单,因为参与了最近30天发布的活动的订单明细,那他的下单日期一定是位于最近30天内的,对吧,所以说先拿30个分区啊,这个完成之后我们再继续往下走,下边咱们是不是得关联活动维度表,对吧,我们还是怎么做呢,还是。
04:50
是先拿到最近30天发布的这个活活动的维度信息,只拿最近30天发布的就行了,对吧?那30天之前发布的活动我就不要了,因为它不会出现在最终结果,对吧?我先给他过滤好,过滤完之后,那它跟上面的这个明细是不是也要做一个照呀,对吧?那这个我们还用哪种照的方式呢?还是以这个活动维度是不是为主啊,对吧?它在哪边,它在左边就用left join,它的右边就用就用right join对吧?好,那join完之后接下来干啥?是不是直接进行分组聚合就行了,对谁分组啊,按照活动是不是进行分组对吧?那对谁进行求和呢?是不是对那个原价还有优惠金额进行求和就完事了,对不对?这是咱们这方面的一个状态,跟刚才基本上是一样的,这个咱就不在一栏写了啊,我们直接把文档当中的这个拿出来,咱一起看一下啊,CTRLC来拿过来放在这,好,那咱们现在一起来看一看,看这是怎么写的啊呃,首先我们还是先看子查询,咱们看这二。
05:44
来大家来看一下,诶,那这是我们第一个子查询,第一子查询在那拿的是谁呀?他这个第一个子查询拿的是那个活动的维度信息,对吧,他也是把维度信息放在放在前面了啊好,你看他怎么拿的,首先from活动的维度表,然后呢,拿他这个十字号的分区,这个没啥问题,然后紧接着是不是他就对这个活动的发布日期是不是做了一个过滤啊,对吧?好,那过滤完之后你看他又干啥。
06:11
他是不是加了一个格入外分组啊,对吧,注意它分组的时候是不是按照这一串字段进行分组了,完之后上面是把这一串字都选出来了呀,对吧,他这是在干什么呀。他是在干啥呀?对,其实他这就是在做驱虫啊,是这样的,诶,那有的可能会纳闷了,这个分组为什么是要用分组做去去去做驱重呢?分组通常是用来干什么的呀,分组通常是用来做分组聚合的呀,对吧?OK,好,那我这有聚合函数吗?没聚函数只有一个单纯的分组,OK啊,那这个分组是如何起到这个去重的效果的呢?这个大家能不能想明白?应该能想明白啊,OK,好,那首先我们明确一下啊,就是分组它有一个什么样的特点,分组会把你这个分组字段都相同的数据是分到同一组当中,对不对?OK,它相同,它相同,它相同,也就是说这个完全相同的数据是不是会分到一组里边来呀,对吧?OK,好,那分组完之后,一组是不是只会返回一行,结果一组是不是只返回一行,对不对,那完了之后是不是相当于,诶我这儿可能会进来多行,完之后呢,我只出去一行,对吧?进来的多行是完全一样的嘛,对不对,然后呢,只返回一行,那这不就相当于完成了驱重嘛,对吧,多行相同的跑到一起,然后呢,只返回一行,这不就是驱重嘛,对对,也就是分组,在这种场景下是可以实现一个驱虫的效果的,好了,那也就是分组就是在做驱虫,好,那接下来我们继续往下走,那我这儿为什么要驱虫呢?
07:38
为什么要驱虫呢?啊,因为很简单,因为大家注意观察,我们这儿拿到的这些信息都是什么信息,都是活动的基本信息,对不对?而我们刚才看到了活动维度表呢,它的力度本身是一个规则的力度,对吧?那呃,这个活动维度表当中,这些活动的基本信息,包括活动的名称对吧?活动的类型,包括活动的,呃,这个发布日期等等等等,那这些东西是不是都会有重复出现呀,对不对?OK,那既然要重复,那我是不是就得去重啊,因为我最终的这个表它的力度是什么?里头是活动力度啊事,所以这样呢,去虫是必须得去驱虫的,这个一定要注意好了,那完成之后呢,我们继续往下进行,来,往下走走来,那现在我们再来看一下第二一个次查询,第二次查询相对比较简单,他拿的是哪张表的数据呢?是明细表的数据,然后呢,是不是这先拿到了最近30个分区对吧,然后呢,进一步过滤,把这种活动ID不为空的过滤出来啊,在这儿呢,这儿呢只是拿到了最近30天的参与活动的订单明细了,但这个还不是咱们。
08:38
最终需要的,我们最终需要的是什么呢?是你得参与活动,而且你参与的活动还得是最近30天内发布的,对吧?那怎么就能拿到了呢?用它跟上边是不是做一个left以这儿为主,那剩下的明细是不是都是参与了最近30天发布的活动的明细,对吧?这个就OK了,好,OK之后我们还是老规矩,按照我们这一系列的活动的维度进行分组,之后呢,再把这个呃字段统一的给他选出来,进行一个萨姆求和,那就完事了,诶这其实就是咱们这张表的一个装载逻辑,OK,最终把结果放在这张表14号分区,那就搞定了,哎,是这样的啊,行了,完成之后视频我给他停一下。
我来说两句