00:00
好,那现在我们来看这个维度表跟实时表这俩概念啊,这个其实大家应该理解的也差不多了啊来咱们先看维度表吧,啊来看一下。呃,这个维度表呢,呃,它这它的定义是什么呀,一般情况下是对咱们那个事实的描述信息,这个事实指的是什么?就是咱们中间那个事实表呗,啊它里边存着就是一些描述信息,那每张维度表呢,它所对应的应该是咱们现实世界当中的一个对象或者概念,像这种这种描述啊,其实就是说的就是比较抽象对吧,可能不好理解,这个东西你就啊不用管它了,这个所谓的对象的,比如说我的用户,比如说我的地区啊,比如说我的时间,这都可以叫做一个一个对象,都可以叫一个对象啊,这个你可以不用管它啊,你就记住啊,维度表当中,我们存储的就是对事实表的描述信息啊,其实就是什么呀,就是一般就是谁啊在核实,然后呢和地等等是不是都是这样的描述信息啊啊然后呢,在这呢,指的就有什么呀,比如说有用户维度,商品维度,日期维度,地区维度,呃地区维度啊是这样的,这就是维度表它所担负的这个责任啊,那当然啊,这这是咱们还是那句话,这是在怎么去从哪个角度去考虑的呀,是从。
01:09
咱们这个维度模型如何去描述业务这个角度去考虑的,对不对啊,那咱们还是那句话,从分析数据这个角度去考虑,那维度就是啥呀?啊维度就是我分析咱们这个哎事实的一个角度啊,分析事实的一个角度啊,就是说我可以通过这个维度去观察咱们这个数据是怎么变化的啊,就是这个意思啊,就这个意思啊,啊,那其实说白了啊,那维度字段就是我们后期写circle的时候干什么的那个字段呀。就是分组的那个字段。对不对,比如说我想看一下这个东西和它之间的关系,那你就怎么做,他俩之,然后呢,对这个字段进行分组,然后对它进行聚合。是不是就是这样的一个模式啊,对不对,那我要想看这个真的就是性别和咱们这个呃,度量之间的一个字段这一个关系,那你这个应该是怎么分析啊,它俩之后的,然后呢,是不是对它进行分组,然后呢对它进行聚合,剩不下就是这样的呀啊,那一般情况下也是维度表示当中的字段呢,就是我们后期做分析的时候呢,咱们分组的字段啊,其实就是说白了就是这么回事啊,好了,那咱们再往下分啊,再往下翻。
02:19
啊,那维度表咱们这个定义说完了,那接下来看一下这个维度表它的一个特征啊来它有什么特征啊,那第一个啊,维度表的范围很宽。呃,这个宽呢,指的是什么呀?指的是这个表宽啊,表宽表宽指的就是具有的这个属性比较多,或者说白就是列比较多啊,列比较多啊,你会发现啊,咱们这上边这些维度表这一圈是不是都是维度表啊,你会发现字段呢,相对来说都比较多,当然它这个字段多少是和谁进行比较的呢?跟谁比啊,呃,也不是跟事实比,跟谁比。是跟关系模型当中的表进行比较啊,你看你可以看一下啊,咱们这个维度表是怎么来的。
03:02
你比如说以它为例,这是一个商品表对吧?啊,产品表它怎么来的呀,它其实是从关系模型当中,把所有和诶产品相关的表是不是照照到一起组成的呀,啊,那所以说很显然你多张表并到一张表,是不是那个字段就要比较多了呀,就是这个意思啊,就这个意思啊行,这是它第一个特点,特点就是哎字段比较多啊,那第二一个呢。先来说行数啊,跟这个事实表相比,哎,行数相对较小。行数相对较少啊,通常小于10万条啊,小于10万条啊,你要小于10万条的话呢,一般你这个数据量呢,也就几百兆啊,就几百兆啊,几百兆啊,那所以说呃,那大家得知道啊,就是说呃,它的第二次就是这个行数比较小,函数比较小,也就是这维度表示这个数据量一般都比较小呗,就这个意思啊好,那接着往下看,那内容呢,相对来说比较固定。
04:01
内容相对来说比较固定啊,这个所谓的比较固定是什么意思啊,就是我这个表里边的数据啊,我的变化不会非常的频繁啊,我不会说每天我都往里边增加这个很多的数据啊,或者说修改大量的数据,不会啊,我每天会不会新增,有可能会新增,但是很少啊,不会很多啊,那会不会变呢?也会变,但也不会很多啊,这个内容相对比较固定,就是大部分数据是不变的啊,这是维度表它的这个特点啊,维度少特点啊。好了,那下边咱们有一个小例子啊,这是一个时间维度表。啊,这一个时间维度表你看一下啊,这个时间维度表当中啊,它一个小例子而已啊,这个字段比较少啊,看看它都有哪些字段吧,时间维度表当中它所描述的应该就是啥呀,是不是就是时间呀,啊就是这个人在什么时候啊,干了什么什么对吧?这个时候就是他这是时间维度,然后看里边有是啥啊,我们看一下这个,首先这个日期维度表啊,我把这个点掉啊。
05:01
好,咱们这么看啊,哎,那这个日期维度表当中啊,那咱们这个主键是谁。日期ID啊,那你看主线怎么做的啊,是不是就是年杠月杠日年月日年月日年月日啊,对吧?那OK,你看它有啥字段啊,首先后边有一个什么day of week day week就是周几呗啊,然后day of year,就是一年当中第几天,然后后边呢,第几季度,然后呢,后边有什么是否是节假日啊,然后当然这里边还会有其他的一些个时间相关字段啊,比如说今天是多少号啊,哪哪个月啊,然后呃,位于哪一年啊对不对啊啊等等等等啊这样的一些字段还会有很多啊OK,那这就是一个时间维度表,它里边描述的就是所有的这跟时间相关的字段都有啊,那我先问大家一下啊,你说这样的这个时间维度表,咱们后期我要想用,我怎么用它呀?这个怎么用啊?什么时候才会用到时间维度表啊?啊,什么时候啊。哎,比如说啊,咱们这一年结束了,对不对啊,一年结束了,那在出仓里边是不是理论上来说我们会保留历史数据的呀,那假如我把一年的数据都留下来了,那我现在呢,想去统计一下咱们今年啊每个季度啊,注意是每个季度啊,每个季度的我这个订单金额总和分别是多少啊,第一季度多少,那第二季度是多少,第三季度是多少,第四季度,因为一般到到一般情况下,咱们到年底是不是肯定会做一个年报啊,对吧,每年报诶去比较每个季度或比较每个月份,是不是可能有这样类似的统计啊对不对,那这个时候呢,咱们就会用到这个时间维度表。
06:33
哎,那你说怎么用啊,我想统计是每个季度的订单金额对不对,怎么用啊,这个东西是不是找到订单的那个表对不对,然后订单表让他跟谁关联呀,是不是跟咱们日期维度表关联,然后呢按谁分组。按是不是就按季度分组啊,对不对,把同一季度的分到一起,完了之后呢,对那个订单金额进行聚合,那得到的是不是就是每个啊季度我这个订单金额总和是多少啊对不对?你看啊,有了这个维度模型之后呢,你会发现咱们绝大多数的分析,你要做的时候都是怎么做呀。
07:06
绝大多数分析都是对事实表跟维度表进行pro,然后呢,对咱们维度表当中的某一个或者是某或者是多个字段进行分组,然后呢,对咱们谁呀,对咱们事实表当中那个,哎,什么金额呀,什么个数,什么件数,是不是对那个字段进行聚合呀,啊一般都是这种啊,这是比较多的就是这种啊啊大部分都是这种行,那咱们再往下看,这是咱们维度表啊,咱们介绍完了,那接下来再往下走啊,再往下看咱这个事实表。这个事实表呢,相对啊维度表来说呢,要稍微复杂一点啊,咱们来一起看一下啊,先把这看一下吧。那事实表当中的每行数据,它代表的是一个业务事件。啊,这个一定得理解啊,每行数据代表的是一个业务事件,对于实时表来说,我们首先得明确啊,一行数据代表的是是一个业务事件啊,那也就是说我是不是在整个业务系统当中,我的业务会有很多,我的业务线会有很多,比如有下单,有支付,有加购物车啊,是不是还有什么退款有这些东西啊,对不对。
08:16
那我这个事实表应该是怎么去决定填哪些事实表呢?啊,是这样的啊,一个业务。啊,就有一个实时表跟它对应,那下单我会有一个下单实时表,那支付呢会有一个支付实时表啊,那这个退款呢,会有一个退款实时表,这大家应该能理解吧,啊是这样的啊哎,一个业务对应一个实时表,然后每个业务的实时表当中,那我的一行数据,它所描述的都是该业务的一个具体的业务事件。啊,说白了就是,呃,订单实时表当中一行数据应该是什么呀,一次下单啊,那支付实时表当中一行数据应该是一次支付,那退款时表当中一行数据应该是一次退款,一次退款啊是这样的啊啊这个点咱们先明确啊。
09:06
典型明确,然后呢,我们来看一下啊,这种事实表当中,那咱们的字段都是什么样的,刚才其实已经看到了啊,事实表当中啊,我们的字段啊,可以分为两类,一类是什么呀,各种ID对不对,那各种ID就是啥,就是维度表那个外键吧。对吧,围度板的外界,那还有一类字段,就是这个咱们刚才一直提到的一个概念叫做什么呀,度量值对不对啊叫量值,这个确实呃,它标准的定义就叫做度量值。啊,什么叫做度量值呢?啊,就是可以进行啊累加计算的值,咱是不是就管它叫做度量值啊,啊就是可以根据这个值呢,去衡量某些东西,那它就是一个度量值啊,这是一个度量值啊,那一般情况下度量值我们都是一些什么金额,件数,个数,次数等等等等,这都叫度量值啊,都叫度量值啊,那也就是事实表当中主要就是这样的两类字段,一个是维度外键,一个是度量值,一个是度量值啊好,那接下来往下看,接着。
10:09
其实咱们事实表当中啊,实表当中这个事实这俩字啊,其实指的就是啥呀。指的就是咱们那个度量值啊,是这个意思啊,也提到这个实表当中的事实,就是指的那个度量值啊,啊,那咱们把这一点明确啊,然后这个位置呢,有一个这样的小例子啊,这样一个小例子啊,这个是通过什么呀,通过这个一个下单记录对吧?通过一个下单记录啊,然后呢,呃,咱们来去理解一下这个维度模型,其实这刚才咱们已经理解了啊,这儿有一个实时表,这儿有一个这个下单下单的一个业务事件,对吧?那有一个要想描述一个这样的业务事件,那我们应该需要什么样的这个维度表,需要什么样的事实表,一会咱们去分析分析啊,来看一下这个业务事件是什么,是在2020年的对吧?哎,5月21号对不对啊,注意看清楚啊,是5月21号对不对啊,然后后边啊这个哎,宋宋老师大家都知道吧,宋老师对吧,在这个买某东上边啊,花了买250块钱买了一瓶这个海狗人参丸。
11:13
啊,这个海果人参丸是什么,不知道有没有同学知道啊,我是我反正是不知道啊,我还是不知道啊,是在5月21号买的,反正来那这样是不是就是一个下单一个业务事件呀,对吧?那我要想描述一个这样的业务事件,那你说咱们的维度应该有啥,那我的事实表应该有啥,咱们来分析分析啊,首先那咱们首先得明确啊,咱的维度有什么。时间维度对不对,那是不是还有用户维度啊,用户是谁?用户呢,是咱们在这个宋的老师对吧?啊,这是用户,那还有一个商品,商品是什么海购人参丸啊,估计大家一会下课都得去拿开手机搜一搜,这个东西是啥是吧?这个应该是商品啊商品啊,那后后边呢,还有一个商家,当然咱们这其实没有体现商家啊,咱们这体现了一个平台对吧?啊平台啊就是这个意思吧?啊这是咱们的维度啊,那OK,咱们需要什么事实呢?什么需要什么事实表呢?咱们需要几个实时表啊,在这儿一个实时表就够了,因为这这是下单对吧,那下单我们就还只需要一个下单实时表,那下单时表当中,那那咱们的字段呢,有两类,一类是维度外建,维度外建是不是跟这些维度表能够关联上就行了呀,时间ID,用户ID,商品ID,商家ID,那还有度量值,那咱们这个业务事件当中,我们的度量值应该有啥呀?其实有俩啊,一个是什么呀,一个是你的商品的一个件数,买了一瓶对吧?啊,然后呢,你花了多少钱,是不是也是一个度量值啊。
12:38
才250块钱,那作为事实字段呢,咱们有俩,一个是诶金额,一个是件数啊是这样的啊啊就是我所有的业务事件呢,哎,都可以通过咱们这样的一个维度模型给他描述出来啊,描出来之后呢,我都能用相同这种分组聚合的方式去做数据分析啊是这样的啊啊那这就是所谓的事实表吧,咱们就说完了啊,刚才利用这个小例子呢,咱们又把事实和维度啊,这个维度模型咱们又回顾了一下。
13:07
好,那这个完事了啊,那接下来咱看一下这个事实表它所具备的特点啊,来看一下那事实表的特征是什么啊,一起来看。那事实表的这个特征呢,首先第一个就是非常的大啊,这个大体现在什么地方啊,这个大呢,体现在这个行数上面啊,就是事实表一般情况下这个行数会比较多啊,为什么会比较多呢?你要你要知道啊,事实表当中我一行数据存的是什么来着,是一个业务事件对不对,那业务事件这个东西是不是每天都会发生对不对?你以下单为例啊,每天都会有很多用户下单支付,每天都会有很多用户支付,那所以说事实表里边儿的数据啊,是不是每天都会增加很多。对不对,那随着这个时间的这个推移啊,日积月累,那这张表里的数据是不是肯定会越来越大呀,是这样的啊,这是大家要明确的第一点啊,会比较大,那再一个呢。
14:02
呃,后边在内容相对的窄啊,其实在这说的就是那个列数相对要要少一些啊,列数要少一些,那咱们这个列数呢,呃,列数主要是什么呀?就是维度外键,然后加上度量值啊,它不像咱们那些维度表里边有那么多的字段,对吧?啊这个大家要搞清楚啊,这是诶根据这个这这个字段,从字段这个角度去看啊,就是字段相对来说哎比较少啊,然后看最后一个啊,诶看错了啊,不是这。来看这儿啊,这个列比较少,咱们说完了啊看这啊这还有一个什么呀啊就是哎,内容经常发生变化,这个很好理解,因为它每天都会新增很多嘛,啊因为我我这个事时表每天都会有大量的新增的这个业务事件啊OK,而且有些业务事件呢,可能还会发生变化啊,是这样的啊啊那这就是咱们事实表的特点啊,咱们就说完了啊,也就刚才呢,咱们呃花点时间咱们给大家讲了一下,就是维度表和事实表这个概念啊好,那我把这个视频先录一下。
我来说两句