00:00
啊,那刚才呢,我们是给大家讲了这个,呃,维度模型以及里边的两个重要的事概念,叫做事实和维度表啊事实维度表啊,呃,然后呢,其实有有些同学会怎么去理解这个事实和维度表呢?啊,他他他可以这样去区分啊,跟我说我觉得还挺有道理的啊怎么区分呢?啊他说呃,一般情况下,这个事实表示都是动词啊,这个维度表呢,都是名词。啊,你说这么说有没有道理啊,有没有这认真听一下啊,呃,这个同学说,呃,事实表示都是动词啊,然后维度表示的都是名词,这么说有没有道理?其实是有道理的啊,确实有点道理啊,呃,怎么回事呢?你想一想啊,那咱们一再强调,那事实表它所对应的是什么来着,是业务对不对,那业务它肯定是是有一个业务动作的,对不对啊,肯定会有一个业务动作,嗯,比如说下单,你看支付加购物车,这都是什么,都是具体的操作啊,一个动作,那所以说它是动词,其实这个说得通啊,然后呢,咱们的维度啊,维度都是什么,都是一些描述性的信息啊,比如说呃,用户,商品,时间,地区,你看这是不是都是维度,呃,都都都是都是名词啊啊确实是这么说也有道理,就是大家也可以,呃这么去区分一下也可以啊,没错啊,好,那咱接下来干啥?接下来看2.4这一节。
01:19
2.4这一节呢,我们又有一个分类,这回分的是谁?分的是维度模型。啊,就是维度模型大家都知道啊,我们是不是就是有实时表,有维度表对不对,那但即便是这样的模型,我们还是会给它有一个更细的分类的,那咱们分为几类呢?往这看。在维度模型的基础上又分了三种,呃,一种叫做星型模型,一种叫做雪花模型,一种叫做星座模型,啊其实这个星座模型呢,呃,本不该和星星模型和雪花模型这个平起平坐的啊,啊就是他们应该呃,不属于同一个分类的这个级别,那么星座模型咱们就先不看,咱们现在就看谁呀,就看雪花和星星模型,看他俩啊来把这个PPT点开看一下这里边儿的东西啊。
02:06
来给大家看两张图,左边这个就是星星模型,右边这个就是雪花模型,咱们打眼一看,感觉这个没啥区别啊,这不一样吗?是吧,这其实你要看的仔细一点,其实有区别的啊呃,哪块有区别啊,哎,咱们找不同对吧?啊,这是不是不同啊对不对?那这个有什么区别?啊对,你看啊,这相当于是维度表它又干啥了,他又规范化了,相当于是是不是把维度表我又拆了呀,对不对,那拆完之后,那我就叫雪花,那不拆我就叫星星啊是这样一个东西,那这个到底怎么理解啊,一会咱们再看啊,先看一下文档上当中的这个具体的定义啊来,那雪花模型与星型模型的主要区别就在于维度的层级。啊,微层层级,那这个当然说的比较啊,比较这个官方了啊,那一会儿我给大家画个图你就明白了啊,那在于维度层级,那标准的星型模型只有一层维度,那学号模型呢,可能会有多层维度,你看是不是啊,这是星型模型,那星模型里边是不是中间是一个fact table实时表啊,那外边是不是只有一层维度表,只有一层维度啊,那OK,你看雪花。
03:18
的雪花,那雪花的话呢,那这个是不是中间的事实,然后这个相当于是它外边的这一层维度表对吧?那后边是不是还有一层啊,是这样的啊,那这是星星和雪花的这个区别,那其实这个你可以怎么去理解啊,我们为什么叫星星,为什么叫雪花,来我画一个图啊,大家来看一下。来,咱们先说星形模型,星形模型,因为这是我的实时表中间一个实时表,然后呢,我的维度表只有一层对不对,你看啊,哎,这就是它的维度表,哎,你要这么画下来的话呢,呃,这个就呃,当然就画的不太好,就是这就是一个星星嘛啊那如再再补上两笔啊,这个就是你要这么去看的话,就比较像了啊啊来啊,对不对,这就是一个星星模型嘛啊一个星星模型啊,这个所谓的星星,那雪花怎么来的呢?那花其实跟它差不多啊,那中间我是不是有一个事实啊,然后外边呢,我有这个维度啊,这是维度。
04:13
然后呢,相当于因为你对维度表进行规范化了,对吧,也是维度表,它外边是不是还会再关联其他的维度表啊,哎,就是这样的啊这样的,那也就相当于你把这个连起来,哎,你看那这个东西。它是不是就有点像一个这个,呃,这个雪花了呀,有点像啊,有是因为可以了啊,这已经很像了,我觉得啊,这是一个雪花模型,那其实就是这个意思啊,还是比较倾向的这个这俩名词啊,那星星跟雪花咱们大家应该就能理解了啊,那完了之后呢,我们再来看最后一个这个所谓的星座模型啊,那星座模型怎么回事呢。来看一下。把这个点开啊,这是星座,应该大家想自己想就能想明白了,对吧,那什么叫星座模型呢?看一下。那星座模型其实就是什么呀,在你的数仓当中啊,在你的数仓当中,大家想一想,你说咱们的事实表应该有多少个呀,有有是有一个还是有多个呀,那肯定不是只有一个,因为他都知道事实表所对应的是具体的业务,对不对,那咱们业务有很多,所以实时表就有很多,这应该没问题吧,对不对,然后呢,大家想一想,是不是有可能会有这样的情况。
05:23
不同的事实表,我可能会使用相同的维度表。有没有这种可能性啊,有啊,你比如说我下单这个事实,下单事实我会关联谁会关联用户维度表吧,不对,那你说支付事实跟用户维度板有没有关系?有关系啊,对不对,那所以说你看啊,不同的实值表呢,其实我哎可能会共用某些维度表啊,可能会共用某些维度表,那这样一来呢,相当于我们这个数仓里边,它的这个状态应该是怎么样的呀,应该是多个事实表啊对不对,然后他们中间呢,有一些共用的维度,那这些事实表啊,我相当于就交织在一块儿了,对不对啊,交织在一块儿,那这相当于得到了一个什么呀,一个星座嘛,因为相当于是星型模型,我交织在一起,是不是就组组成了一个星座呀?啊就就这个意思嘛,啊,好多星星连一起的就是星座了啊就这么去理解就行啊,就是所谓的星星星座模型,总结一下啊,也就是说星座模型实际上指的是啊,在咱们的整个数仓当中,整个的维度模型当中,我的实值表很多,然后呢,多个时表之间有共用的维度,那这样一来多个星星模型我就连在连接在一起了,连在一起之后呢,组成了一个星座。
06:36
那当然有的同学可能说,呃这个如果说我要是不不使用星座模型呢,我使用的是雪花模型,雪花模型如果说我也有这个公公用的维度,我也是连接在一起了,那我也叫星座模型吗?啊也叫啊,你要不然叫什么呀,叫叫叫雪球模型对吧?啊,那咱们也叫星座模型啊,就是说实话就是说白了就是呃多个师表,然后师表之间有共用的维度,那就是呃星座,呃星星座模型啊,然后大家要知道啊,看一下这这句话。
07:07
啊,大家来看一下啊,基本上啊,咱们很多数据仓库的常态就是啥呀。就是星座模型啊,就是星座模型啊,因为很很简单啊,很很很好理解啊,那我们一个数仓,我们肯定会有很多这个业务,有很多业务就有很多事实对吧?那肯定是星座模型,这是咱们的常态啊,把这个搞清楚就行啊,完了之后呢,那这儿有一个模型的选择,就是咱们自己进行维度建模的人,我到底应该采用哪种啊,建模方式呢?采用哪种啊啊我是采用星型还是雪花,其实咱们要选的是不是就选星形或者雪花就行了呀,星座这个东西咱是不用选的,对吧?那到底选谁选谁呢?来看一下,那这个到底选星星还是选雪花,那取决于是性能优先还是灵活优先。啊,那什么样的这个性能好啊,很显然是星型模型性能好,为什么?因为它是不是维度的层级少,维度层级少,那我join的就少,赚的少,沙布就少,那我的查询性能就高,对吧?啊那谁灵活呢。
08:10
啊,咱们前面讲的这个表拍的越细是不是越灵活呀,对不对,那所以说应该是谁呀,应该是咱们那个雪花模型更灵活对不对,那你就得看你追求的是性能还是灵活性了,啊那我们实际上应该追求的是什么呢?来,那这这有一句话说这个实际的企业开发当中啊,就是说一般情况下不会绝对的选哎这个其中的某一种,而是根据具体情况灵活组合,哎,甚至并存。啊,甚至并存,但是从整体来看呢,我们其实更倾向于谁的呀,更倾向于这个维度更少的星型模型啊,尤其是咱们首选星型模型,首选型模型,尤其是在咱们这个海杜布体系当中,减少John意味着就是减少沙uffle,所以说你这个两种模型,它这个性能差距还是比较大的啊,还是比较大的,所以说咱们在这儿呢,呃,在海度体系当中,我们就哎主要就选择谁,就选择星型模型。
09:09
啊,就是维度比较少的那一种啊,这是咱们这个模型的选择啊,在咱们呃,这个数仓当中呢,我们的维度模型,咱们全部都是星型模型,然后呢,咱们最终交织在一块儿,组成了一个星座模型啊啊,这是这几个模型的这个概念啊,咱们得理解啊好,那我把视频录一下。
我来说两句