00:00
那接下来我们进到这个2.5.3这一节,那这一节我们是相当于是讲了两层啊,DWSDWT层,这两层咱们统一的说的啊,这两层我们统称宽表层,之所以称为宽表层呢,是里边它的字段比较多啊,那所以叫做宽表层啊,然后大家现在呃,这个文字呢,咱们就不再这个重复了,因为这个是不是咱在周六的时候已经讲过了呀,对吧?那咱们接下来就直接跟大家说一下啊,就是DWS层它所存在的意义是什么?咱们直接考虑这个问题啊,咱们为什么要放DWS和DWT为什么要有这个所谓的宽表层。它俩的意义是什么?首先先明确啊,DWFTT已经和维度建模没有关系了,维度建模咱们在DWD已经完成了啊,这宽米尔层的是我们自己家的这个两层。那它它有什么用啊。它的意是什么呀?意义就是为了减少重复计算,对吧?啊,因为咱们前面有一个问题演出啊,这这些需求呢,我们可能会导致这个数据的重复计算啊,那在这呢,我们计设计这个宽表的目的就是为了减少重复计算啊,就是点重重计算,大家把这一点先给他明确了啊,先给他明确啊啊那这点明确之后呢,那我们现在呃来这个呃给大家说一下,就是咱们DWS和DWT啊,跟咱们DWD层啊,他们之间我们去使用的时候应该如何选择。
01:26
啊,应该如何写呢?咱们得考虑这个问题啊,因为我现在又有DWD,又有DWS,又有DWT,那后续我写circle啊,AADS,咱是不是有需求啊,对吧?那我到底应该从哪一层去拿我所需的数据呢?或者说什么情况下我去什么表里,呃去哪一层去拿拿数据啊,我情况A我需要去DWD啊,情况B我需要去从DWS啊那到底什么情况去什么层去拿数据啊,咱们得考虑这个问题啊啊那这时候呢,我们来思考一下这个问题啊OK,那DWSDWT啊,那咱们是不是已经叫做这个宽表层,它其实里边存的已经是一些聚合数据了,对吧?啊,一些汇总数据了啊汇总数据,那我们汇总到什么程度了呢?啊,汇总到什么程度了?
02:12
啊,那我们来看一下啊,DWS层我们汇总到了哪,嗯,什么程度,是不是天呢?啊,也就DWS层我们里边存放了所有主题对象的当天的汇总行为啊,除以当天的啊当天的,例如每个地区的下单次数,下单金额,那其他主题呢,例如每个用户主题的,哎,当天的下单次数,哎当天哎这个呃,下单的这个金额,哎支付的次数,支付的金额,这是每个用户的啊,当然还有每件商品的什么什么什么是这样,就是DWS,那DRT呢,咱们是累积的啊,累积的啊就是存,存的是比如说每个地区啊,那我最近七天啊,最近15,最近60怎么怎么样啊,然后呢,从开始至今啊,多少多少多少是这样的啊,一个是当天,一个是累积啊,咱们把这点先给他明确了啊,先明确了。
03:02
啊,这是咱们这个所谓的其实相当于就是相当于是力度对吧,像是这个数据的力度,哎,咱们给他明确了DWD呢,我们放的是明细数据,先从这点考虑啊,然后呢,我们再去考虑一下啊,就是咱们DWSDWT层啊,哎,我这里边啊,那个表当中的字段啊,具体是什么样的啊,咱们来来思考一下。啊来,在讲字段之前呢,我们还是先呃再来回顾一下嘛,就是咱们有哪些表啊表DWSWT呢,我们有哪些表来着。是不是以维度为基准呢?这次啊,我们有什么维度,那到了DWSDWT呢,我就有哪些表啊,那它们之间的这个对应关系是怎么样的?其实这样的啊,我们虽然是两层啊,虽然是DWS和DWT虽然是两层,但其实啊,这两层之间是上下相互对应的啊,比如说我现在呢,DWS层有一个咱们的呃,用户主题的一个填表啊,所以天表就是按填汇总吧,就这个意思啊啊,那对应着在DWT层也会有一个用户的表。
04:07
啊,那DWS层呢,我有一个商品的表,DWT也有一个商品的表啊,他们上下呢是一一对应的。这个大家得先明确啊,然后呢,我是不是每一个主题对应一个上面的维度啊,每个主题对应一个维度啊,首先咱们先把这点明确啊,先把这点明确啊,然后呢,我们再来说下一个问题啊,这是有哪些表咱们知道了,那接下来呢,表当中这个字段是什么样的,咱们也回顾一下啊,我们每一个主题的宽表当中,它的这个字段应该什么样的呢?首先主见是什么?组件是不是就是这个主题,它所对应的维度的那个ID啊,对不对啊,比如说user ID,比如说商品ID,比如说地区ID啊,那字段是什么呢?再来回顾一下字段是什么。字段是所有跟该维度相关的啊,这个所谓的跟该维度相关的这个事实对吧?这个怎么去找啊,是不是看这个图一下就能看出来呀,比如说我现在找的是地区维度,那所有跟地区维度相关的事实表的度量值的聚合值,是不是就这些东西啊,是不是就这个意思啊,这个大家要搞清楚啊,这就是咱们那句话的含义啊,所有跟该地区相关的事实表的啊,度量值的聚合值。
05:26
啊,这是我们这个宽表当中所存储的这个东西啊,啊,那现在我们相当于就把这个我们这个宽表它的这个表结构就回顾了一下啊,有哪些表示咱们知道了,然后呢,我表示当中有什么字段咱也知道,然后表示的力度咱也知道了,就是一行出去是什么咱们也知道了,啊行,那知道这个事之后呢,咱们再来考虑刚才那个问题啊,就是我们这个需求啊,那到底去哪张表里拿数据,这个事儿应该怎么决定?那前面讲了啊,就是咱们大部分的需求,实际上都是哪种需求,是不是都是那种分组聚合的需求,对不对,分组对谁分组啊,一般情下是不是就是对维度进行分组对不对,那这个聚合呢?对谁聚合是一般情况下就是对那个事实表进行聚合呀,事实表里的维度字段吧,啊不不是不是不是哪哪个字段来着,事实表当中那个那个度量值字段进行聚合,对不对,是这样的啊,就是分组按照维度分组聚合,哎,对那个度量值进行聚合啊,一般都是这种需求,那既然是这种需求的话,那你说。
06:28
就是这种啊,就是这种分组去合理需求,那你说是不是正好可以从咱们这个宽表当中去直接拿结果呀。你想一想啊,咱们课本当中主见是啥?主见是不是就是各维度字段,各维度各维度的主见呀,啊,各维度的ID啊,那它里边字段就是啥,其他字段就是啥,是不是就是各度量值的聚合值啊,对不对,那我分组是不是就按照维度分组,那这样呢?比如说我按照用户维度分组,那你是不是就找用户主题的宽表。
07:00
对不对,那你对谁聚合,那你就拿那个对应的度量值是不是就行,是不是就这样了啊,也就是说,如果说是那种分组聚合的需求,我其实直接可以去从咱们的维度表当中拿结果啊,拿结果啊,或者说什么呢,或者说以宽表这个数据呢为基础,然后再进行进一步的聚合。啊,因为有有这种有这种情况啊,大家得思考一个问题啊,你比如说我们那个用户主题啊,用户主题的宽表啊,宽表那它的主件应该是谁,是那个user ID对不对啊,是user ID,但是我有些情况下,我这个我这个什么呀,我这个需求我一定是按照user ID分组,我有可能会按照谁分组啊。比如说统计一下不同性别的啊,我的这个订单金额,那是不是应该按照谁分组,应该按照维度表当中的谁分组啊。那个性别字段进行分组吧,对不对,那所以说这时候还得怎么做呀,是不是还得拿到用户主题宽表,让他去和谁join一下,去和用户维度表照一下,拿到用户的性别,然后再对性别进行分组,是不是得到最终结果呀,对不对,是这样的啊,也就是说我们那种分组聚合的需求啊,要么你可以直接从咱们的宽表当中拿结果啊,或者不行的话呢,不行的话那怎么办?那再拿咱们那个宽表去和维度表进行照,然后再做进一步的聚合就行。
08:21
啊,就是总之你是能用上这个哎宽表的啊,是能用宽大部分的需求,我们这个宽表都是能够应对的,因为我们大部分需求都是这种分组聚合啊,因为它正好可以里边从里边拿啊,但是呢,我们这个需求有一些呢,是比较复杂的啊,不是这种啊这种常见的分组聚合啊,那不是这种分组聚合,那你说咱们这个宽表还能发挥作用吗。那就发挥不了了,因为咱们宽表里说实话啊,你存储的数据就是什么,你存储的数据就是分组聚合的结果,对不对啊,那我现在需求不是这种分组聚合的,那其他一些比较复杂的需求,那这时候你这个宽表呢,可能就能直接拿结果了,不能直接拿结果了,那这时候怎么办?他应付不了,应不了我们去哪拿呀。
09:07
去哪儿DWD是不是肯定是可以的呀,因为咱们DWD是有最明细的最原始的数据的啊,对不对,只要你的需求是合理的,不管是什么需求,我从DWD我肯定是能够拿出结果来的。啊是这样的啊,那所以说最终呢,咱们应该啊,有一个这样的一个结论啊,什么结论啊,就是那种常见的分组聚合的需求,我从宽表能出,我就直接去宽表,宽表实在是得不到这个最终结果的,那这时候呢,咱们就得考虑去从DWD层拿结果了,那DWD有最明细的最原始的数据,我什么样的需求都能做。啊都能做啊,然后呢,Ods层咱们做需求的时候就不要考虑了啊,Ods层做需求的时候就不要考虑了啊,这点咱们得明确啊好,那这就是咱们这个宽表层和DWD层,咱们这个如何去使用啊。好了,那这个宽表呢,咱们怎么去建表,呃,咱们再来总结一下吧,我我这怕大家那个这个记忆的不深刻啊,咱们来总结一下啊,就是宽表怎么建表啊,再来重复一下,那第一个问题需要建哪些表,这个以谁为基准,以维度为基准啊,就是有什么维度建什么宽表,那当然这个建宽表的时候,咱们是不是一下就是两层啊,对吧?啊,有一个维度我需要在DWS有一个它,那DWD啊,DWT有一个它对应的啊,就是一个维度在DWSDWT各一张表啊,这个得搞清楚啊啊那第二一个宽表当中有什么字段啊,有什么字段是与该维度相关的,所有的事实表的度量值的聚合值啊,聚合值啊,是这样的啊,那DWSWT有什么区别,DWS是天表,按天汇总,DWT呢是累积表啊,是里边存的是多天的累积值啊,就是把这个记住就行了。
10:51
啊,其实DWS层你会发现它其实没有什么呀,没有太多的这个,没有太多的这个理论,对吧,没有太多的理论啊好,那这个我们把这个视频呢先录一下。
我来说两句