00:00
好,上节课呢,我们把这个舒畅建模当中DWD层所做的事呢,就给大家搞定了哈,啊是稍微回顾一下啊,第一步呢,叫选择业务过程啊,所谓的选择业务过程呢,就是选择自己感兴趣的啊这个业务中小型公司呢,直接把所有业务都拿过来,大型公司呢,会根据你未来要统计的这个需求指标啊进行统计就行了。呃,第二步呢是声明力度,声明力度呢,我们这里面声明的是最小力度啊,尽可能最小力度。呃,最小力度呢的好处呢,就是你你后面要分析更粗力度的啊,或者说更细度度的,我都能够统计,那如果你一上来的话,就进行了一个初力度的一个分析,那你再分析的指标啊,就少了很多哈,啊所以说你只要不进行聚合操作就没问题。第三步呢,是确定这个维度,呃,所谓的确定维度啊啊,通常就是我们呃关心的时间,地域,商品,优惠券,活动,用户啊,一些业务名词的一些描述啊,这些呢,就是这个选择你确定的维度,同时呢,我们要把这个呃跟维度表周关周边相关联的一些其他维度进行一个维度退化。
01:09
尽可能让事实表周围只有低级维度。比较典型的像这个商品表,商品表呢,有这个SKU啊,还有SKU品类表,一级分类,二级分类,三级分类,我们都会把这些表进行一个维度退化,退化到一起,哎退化的好处呢,就是避免后续的一个招音操作。对吧,啊,你这招了一次,就防止你每一次后续分析一个指标都要进行一个招引啊,是这样一个,呃,一个好处啊,包括像那个省份表,省份和地区,我们就汇总到地区表啊,地区维度表里面就OK了啊,就是一个维度退化。长这是我们DWD啊最后一步呢,叫确定事实啊,这里面所谓的确定事实啊,啊就是确定每一个式子表的度量值啊,度量值就上这个表里面去找,找它的什么,找它对应的次数。
02:03
个数啊,件数还有对应的金额对吧?啊,金额包括什么运费呀啊,总金额呀,啊还有这个相当于这个啊,原价优惠价啊,这些事情可以累加的值给它挑出来啊,方便我们后续的一个统计分析,因为我们未来统计的指标都是统计各个表的一个度量值。啊,这是关键成,那下面我们来看一下这个DWS和DWT。一般情况下,我们讲这个数仓建模的时候,或或或者舒仓分成这两层呢,一般会放在一起去讲,包括后面我们写这个代码的时候也会放在一起,那为什么呢?因为这两层呢,都叫宽表层啊,在个别企业里面它就叫一层。啊,就是阿里呗,阿里它就叫一个DWS嘛,啊叫一层,那这里面其实它包含了DWS,我们给它进一步的细分是按天进行一个聚合,DWT呢,我们是按从这个事件产生一直到当前这一次刻累积的所有的事情的一个累积值,那稍微记一下啊。
03:07
下面进入到这个宽表层。DWS层,A层呢叫DWT层,这两层呢我们一起讲。啊,那DWS层呢,是按照它的聚合力度呢,是每天的一个聚合力度。每天。聚合统计,那DWT呢,是从事情开始产生。事情。第一次产生。一直。一直到当前这一时刻。
04:05
啊,这一时刻累积发生的次数。金额,嗯,个数度量值吧,累计发生的度量值。对吧,哎,度量值就包括个数,次数,件数,金额啊,是这样的一个力力度,它的力度呢比较粗一些,它的力度呢更细一些啊好啊,那这是这两层,那么这两层我们要做什么事,我们做什么事啊,其实我们更关心的就是DWS和DWT我要建什么表。对吧,然后呢,第二件事呢,是每一个表什么,知道想想是不是关心这个。是吧,我们更关心LDWS应该有创建哪些表啊,这个表里面放哪些字段呢?这是我们关心的,那为了统计,为了说明这个事儿,那我们抛出一个问题,抛出一个什么问题呢?这个。
05:02
啊,有两个需求啊,我首先让你统计一下每一个省份订单的个数。也是每个省份下单的个数。怎么统计啊,每个省份下单的个数?那好啊,那你看这张图呗,每个省份那是地区表下单的对应的它那这两张表,一个维度表加上一个数字表一关联。对吧,哎,他们两个一国联,然后按照地区进行一个统计分析,那就地区放到这个group里面呗,Group拜地区,比如说group拜一个省份。那就是不同省份下单的总次数,而且你还可以来个套N对吧?啊来个套呢,就是嗯,直接啊一开窗啊一排序就可以了啊。你说统计每个省份订单的个数可以统计,那我再统计每个省份订单的总金额。对吧,都累加在一起的总金额,那你怎么操作呀。那你是不是还是让这个地区表跟这个下单表进行一个关联啊关联,所谓的关联就照应呗,啊招应在一起,然后仍然是按照这个地区进行一个拜啊group拜地区。
06:12
嗯,把两张表噪音按地区统计啊,然后呃,前面这个查询这个值呢,就是这个总金额的一个累加。那你发现刚才一个是统计这个总金额,一个是统计下单的次数。那其实在这个查询里面,一个第一个字段是总金额,第二个字段是查询次数,是不是也能把它算出来。后面这个噪音操作和操作是不全一致。那我为了避免这种重复操作,就是两张表招引一次,统计一个指标,下次再统计另一个指标,还要招引一次,那我要干什么事,我是把它关联在一起就行,OK了,哎,避免后续的这个再次交影。那再来,那就说处理办法呢,都是将省份表和订单表进行招音,然后group省份计算,啊相当于是这个类似的操作呢,重复的计算了两次,那我如何来避免这种重复计算呢?
07:05
那我就把订单相关联的,所有他未来可能统计的指标,我都给你放到这课表里面。那你想想跟这个地区相关的,我能统计啥呢?那看一下这张图呗,跟地区相关的啊,那地区相关的有这么几张表,从这一直到这。对吧,这几个啊,我统计跟订单跟地区相关的下单的。总金额下单的次数,好跟地区下相关的这个哎,这个是订单,每个订单详情的下单次数,下单的这个商品的数量和次数,跟领用优惠券,哪个地区领用优惠券的人比较多啊,或者这个次数是多少,领用多少次啊,哪个地区领的优惠券次数,那再就是哪个地区领支付的对应的金额和次数。对吧,比如说辽宁支付了多少次,辽宁总支付金额是多少,好,那再来啊画好啊这个地方,嗯,那再来退单,你说辽宁这个地区他退单多少。
08:07
对应的啥,退单的金额和退单的次数好评价,那地区相关的评价的对应的次数。那现在能体会到什么了吗?我要建宽表的时候怎么建呢?我是不是站在这个地区维度,这个角度去看这个所有四时表的度量值。我更关心的是所有市值表发生度量值,只不过看问题的角度呢,是站在不同的维度,那我现在站在是地区维度,那我换个角度,我换个用户角度。要换用户角度,那用户呢,是所有的都关联。那我就是这个用户关联他这个用户加入购物车,对这个用户加入购物车的数量,加入购物车的总金额,加入购物车的次数。好,下单,这个用户下单的总金额,优惠金额,原价金额,还有下单的次数。
09:08
体会一下。哎,我都是站在这个维度去看它,看它的什么,看它的所有的度量值,这不就维度建模啊,最核心的嘛,对吧?哎,好啊,那现在有了这个感觉之后,那我DWS层这个宽表怎么建呢。嗯。好,那我DW的宽表看建哪些表,就是建,站在维度的角度去看待事实。去看事实。表看事实表是什么?看事实表的度量值,哎,就这么简单,那我见的为建的表,那就是维度表,维度宽表对吧?啊,字段呢,是下面这个是站在维度角度去看待事实,把事实表的度量值全拿过来,那就组合成了DWS的宽表。
10:08
那我拿一个例子啊,拿一个例子,这个书上有。看一下怎么做的,看这张图到能不能看清啊,还行啊,那还行,那看一下我们这里面呢,是用户维度,用户维度跟这个八个四时表都有关系,刚才我们已经说了,跟他们都有关系。那么未来这个用户维度的这个宽表,就DW的宽表。那我就取它,那取它的哪些字段呢?啊,它的字段怎么定义,我再放大一下。好,那首先这个用户ID没问题,他关心的订单表的什么呢?关心订单表的下单次数,下单金额。这不是他40表的度量值吗?哎,它的度量值我们就取它的下单次数和下单金额啊,什么总价呀,还有运费啊,那我们再说,那再来,那我们关心一下支付表跟支付表的关系,我们关心支付表的度量值,就是支付表的次数,支付表的金额。
11:09
那我关心加入购车呢,哎,加入购物车的次数,加入购车的进度。那我们下面是收藏,那我们关心的是收藏的次数,领优惠券,领优惠券次数,评价,评价的次数,退款,退款的次数和退款的金额,好了。DWS层已经定位完了。跟用户维度相关的表,以及表里面的字段全都有了。就这么来。那我再给大家举个例子,那除了他之外,你看我上面这张图啊。看这张图啊。对吧,刚才呢,我们其实是这张图啊,用户维度跟这八张40表关联在一起,我们要建什么表,里面的字段是什么样,都已经定位好了。那不站在这个维度呢?我们站在换一个维度,我们换在这个商品维度。是吧,放三维度,那跟三品维度相关的有这个订单详情实时表,有这个加入购物车试试表收藏还有谁啊,我看啊,这还有一个评价。
12:09
再来一个退款,对,就是维度表加40表的度量值啊,非常棒啊,总结的啊,只不过维度表的一些信息,我们一般呢,只取它的一个度量值啊,维度信息一般不放过来啊。来看吧,那这么几个事实对吧,跟他比,那我们关心的是这个商品啊,商品什么呢?呃,是订单详情里面卖的哪些商品啊,商品的这个次数对吧?啊商品的个数和有商品的金额啊跟这个加入购物车,加入购物车的哪些商品是吧?啊商品的金额是多少,那跟这个是收藏表,那我们关注的是商品收藏表呢,是收藏了哪些商品啊,哪些商品啊这个以此类推,评价评价了哪些商品,评价的次数是多少,退款退款了哪些商品,退款的商品的金额,退款商品。
13:00
的一个数量都可以进行关联,嗯,好,那就是站在维度的角度去看待事实,看待事实表对应的度量值就完事了。那是DWS层啊,DWS层,那下面我们再来看一下这个DWT层啊,DWT层,DWT层呢,它也是按照各个主题啊,它是一个累积行为,从事件开始产生一直到结束的一个过程,对吧,这些个过程,那它的表呢,那想想DWT那是不是也是站在这个维度角度去看待事实啊,啊一样道理哈,一样道理,他也会站在维度角度看待事实,仍然是站在他去看待事实。道理一样啊。因为我们统计的指标都是以维度啊出发,对吧,这个哪一个维度,然后他干了什么事啊,就是这个用户下单次数,下单金额,那好,那累积的话呢,就略微有点不一样了啊,累积更关心用户的什么呢?首次末次。累积啊,还有累积某一段时间的一个度量值。
14:04
啊,是这样一个过程哈,啊,我看这里面有描述啊这句话。嗯,加YS宽表啊,站在维度的角度去看待事实,重点关注事实表度量值的累计值时表手势,这句话很重要,嗯。这话拿过来就说它这里面每一个字段是这个含义哈。啊,我写一下吧,写一下能印象深刻一点啊,我们建什么表还是啊,还是建什么表,建的表呢,跟这个DWS那个。表是一样的,也会建这个表,这个呢,只不过叫维度主题宽表嘛,带上主题就行了。累计行后面那这个字段呢。它这个字段跟上面这个宽表的字段有什么区别,跟它。哎,这里面我们更关注的是仍然是站在维度的角度去看事实表,只不过这里面变了啊,我们更关注的什么呢?关注。
15:08
嗯,事情开始,时间结束。时间。是吧,嗯,结束时间啊,它是一个聚合过程,还关心累积。这段时间嗯,累积的,嗯,度量值吧,嗯,累积的度量值,就看从开始到结束的累计的度量值啊,度量值啊,度量值,还有一段时间的累计度值,哎,通常是这么四个维度啊啊这四个维度什么时候开始的,什么时候结束的,也是第一次啊,或者是第一次最后一次,然后这个累积从开始第一次到这个结束。就加上时间可能不太好,就是开始结束啊,累积的度量值啊,累积的次数,累积的金额,还有一段时间内,一般就是最近一个月,最近两个月,最近半年他干了什么事对吧?嗯,好,那我们来具体看例子一下就到位了啊。
16:12
看一下这个例子,哎,我们还是拿这个用户维度叫它去统计,那这个用户维度呢,后面有八张事实表对吧?哎,八张四表,好,那是表我们有了选择它,那它的字段跟订单表相关的首次下单,比如说第一次,最后一次对吧?呃,开始和结束啊,那中间呢,是累计下单的次数,因为他的度量值,我们这里面选了两个,一个是他的下单次数,一个是下单下单金额啊,那下单次数对吧?啊,累计下单的次数,还有呢,最近三十日的一个下单次数。正常情况下这四个值是完事了,但是呢,它是有两个度量值啊,我们这里取两个,那取两个度量值,它还有一个度量值叫金额,那就是累计下单的金额和累积下单的啊,累计三十日下单的一个金额。
17:05
能理解吗?首次,末次,然后累积,累积一段时间。哎,那每一个度量值它都有是累积和累积一段时间。那再来一个,再来一个支付,支付那就是支付的首次支付的时间,末式支付的时间。累计支付的次数和累计支付的金额。然后最近三十日的次数,三十日的金额,哎,就是说后面这四个呢,是相当于是两个度量值对吧?哎,对应的两个度量值,这个阶段完事了吗。这就是宽表就这么简单对吧?哎这么简单,那你这一次算完之后,那剩下的事儿这不简单了吗?后面的话你想算什么值,直接从这这那个DWS和DWP直接取值就行了,等于说后面ADS层分析的时候啊,就非常非常简单了啊,很快啊很快就搞定。这是DWS和DWT啊,最后一层呢,是ADS层。
18:03
Adi层最简单啊,Adi层adi层,那我们更关心的就是直接对应的这个指标了,那指标包括哪些呢?啊,简单给大家看一下啊。Ad层包含的指标就在这儿。哎,我们统计啊,每日新增啊,每日留存啊,留存率沉没用户数,还有日活周活月活啊具体的指标了,那这个指标的数据呢,我们可以从哪几层拿数据呢?我们可以从DWD拿最明细的数据,因为它的力度最小,之后呢,你可以从DWS和DWT拿数据,DWS一般是拿的每天的数据啊,按天统计的一些指标,一般从这拿,那累积型的指标呢,一般从这个DWT直接拿数据。是吧,这是累积。这是不同力度啊,不同力度拿比较合适的最细力度,直接只能从DWD拿稍微粗一点的力度呢,可以从DWS和DWP去取对应的数据,哎,那这时呢,这个呃,整个这个建模就完事了啊啊。
我来说两句