00:00
啊,刚才我们提到了维度模型当中的两类表啊,那一类叫做维度表,一类叫做事实表啊,那接下来呢,我们在重点把这两类表好好看一下啊,那现在我们先看维度表啊,那这儿有一个定义,那到底什么是维度表呢?那那一般情况下维度表那就是对事实的描述信息,注意啊,这个事实指的就是我们前面提到的业务事实啊,比如说我们的下单啊记录,呃,退单记录啊,支付记录,退款记录等等等等啊,那维度表当中存储的就是对这些业务事实的描述信息啊,那每张维度表呢,它会对应我们现实世界当中的一个对象啊,或者是一个概念啊,例如那用户、商品、日期、地区等等等等,这些都称为维度信息啊OK,那接下来往下看,那维度表一般情况下有什么样的特点呢?来一起看一下,那首先一般情况下维度表它会比较宽啊,什么叫比较宽呢?比较宽呢就。
01:00
说明它的字段是比较多的,对吧?啊是这个意思啊,那就是说维度表那它的字段通常是比较多的啊,或者说属性比较多,列比较多啊好,那接下来看下一个啊,那维度表那它的行数相对较小,那通常呢小于10万条,那当然这个呢,也仅仅是一个,呃,经验值也仅仅是一个经验值啊,我们呃是不能通过这个表的行数去判断它是事实表还是维度表的,这只是一个经验值啊OK啊,那也就是说通常情况下维度表的行数是比较少的啊OK,那下一个那维度表还有一个特点就是内容相对固定啊,相对固定,那什么意思呢?就是维度表的数据啊,OK,我会不会发生变化呢?有可能会变化,但是呢,变化呢,通常不会那么频繁。啊,是这样的啊,也是内容相对固定啊,OK,那这就是纬度表它的特点。啊,这就是维度表的特点啊,OK,那下边给大家看一个小例子啊,这个呢是一个呃,维度表啊,这是一个时间维度表啊时间维度表那当然一个比较简陋的时间维度表啊,大家能看到啊时间维度表那它里边的字段那都是什么信息啊,是不是都是跟时间跟日期相关的属性啊,对吧?比如说我前面主件是一个日期的ID啊,年月日对吧?那后边那分别有哪些这个时间的属性呢?看一下,那首先day of week,那这个指的就是周几对吧?那这个是什么呀?是day of year啊,就是一年当中的第几天啊,那这呢,还有什呀,是一年当中的第几个季度,那再有呢,是否是节假日,那其实还会有,比如说我是哪一日,哪一个月,哪一个年等等的,那这些都是跟时间相关的属性。
02:45
那是这样,这就是一个时间维度表,那它应该包含的信息啊,那同样道理,假如说我现在呃,再来一个这个呃,商品维度表,那商品维度表啊,那它里边的字段应该都是啥呀,是不是都应该是一些跟商品相关的属性啊,对吧?比如说呃,那商品的品牌对吧?那商品所属的这个品类啊,商品所在的这个仓库等等等等,那这些是不是都是跟商品相关的这个属性啊,是这样的啊,也就是说我不同的维度啊,里边呢,会有不同的这个属性啊,OK,这就是这个维度表啊,它的一些相关的呃,理论。
03:26
好,那我们接下来再来看一下这个事实表啊,那前面提到过事实表当中所存储的数据是什么呢?啊,就是我们那个所谓的业务事实对吧?啊业务事实啊,那我们来看一下在具体的描述啊,那事实表当中,我们通常情况下每行数据那就代表一个具体的业务事件,那比如说下单的业务事件,那支付的业务事件,那退款的业务事件,还有评价的业务事件。啊,是这样的啊,那事实表我们通常情况下具有什么样的特点呢?往下看。啊,那事实表的特点就是哎,通常情况下比较大,这个所谓的大啊,在这儿其实指的是行数比较多啊,事实表当中,那它的数据量通常是比较多的啊,为什么数据量会比较多呢?因为你想一想啊,因为事实表当中存储的是业务事件对吧?那你想是不是业务事件每天都会发生对吧?所以说我们通常情况下事实表啊,每天都会写入大量的数据,那所以说那通常情况下事实表的数据量是比较大的,也就是行数是比较多的啊那再有呢,下边啊,内容相对的窄啊,所谓内容窄在这指的其实就是这个表它是比较窄的,比较窄是不是相当于是字段比较少啊,对吧?啊字段就比较少啊,是这样的啊,那一个实时表当中啊,它的字段通常情况下主要就是诶维度表的外键和度量值啊,没错吧,这个之前我们也提到过了啊,是这样的啊,字段比较少,那下一个那经常发生变化,也是它的数据呢,不是那么的固定,因为什么?因为我每天都会有很多的业务事件发生。
04:57
那每天是不是都会往这张表里写入大量的数据啊,这是这就是事实表它的一个特点啊,OK,那事表的特点说完之后我们继续往下看啊,事实表它其实是有一个分类的啊,实时表通常情况会分为三类啊,哪三类啊,事物型实时表,还有诶周期型快照时表,还有累积型快照师表,那接下来我们把这三类师表逐个看一下。
05:22
好,我们先看第一个,第一个呢是事物型试施表啊,那事物型施表它有什么样的特点呢?来一起看一下,那通常情况下事物型事实表呢,是以每个事物或者是事件为单位的啊,那一个事件就作为我们对应的事实表当中的一行数据啊,例如一个销售订单记录啊,一笔支付记录就作为我对应的订单实时表和支付事实表当中的一行数据。啊是这样的啊,那还有一个特点就是事物型实时表呢,它会保留所有的哎,这个操作事件啊,会保留所有的操作事件。
06:04
而且这个操作事件只要写进来之后,就永远都不会在发生变化了。啊,再重复一下,那所有的这个数据写到啊,这个事物型表之后呢,就不会再发生变化了啊,那所以说通常情况下啊,这个事务型事实表所对应的业务系统当中的表啊,我们每天去做数据同步的时候呢,通常都是做增量同步。啊,为什么呢?因为刚才提到了,通常情况下事物型实时表,它里边的数据是不是不会发生变化呀,对吧?那所以说呃,它所对应的业务其实就应该是那种不会发生变化的业务,那不会发生变化的业务,那我们所采用的诶这个同步策略,那一般情况下就是增量同步啊,这是事务型实时表啊好,那接下来我们往下看看第二一类这个哎实时表,第二一类时表呢,我们称之为啊周期型快照实时表,那它的特点是什么,我们看一下。
07:04
周期型快照时表的特点啊,是不会保留所有数据,而只保留固定时间间隔的数据啊,这个不会保留所有数据指的是什么啊啊指的是不会保留所有的诶这个业务操作啊,不会保留所有的业务操作,其实是跟我们刚刚所讲到的那个呃,事物型实时表做对比的,事物型时表是不是会保留所有的业务操作业务事件啊,对吧?啊但是哎,我们这个周期型快照时表呢,是不会保留所有的业务操作事件的啊,而只保留固定时间间隔的数据。啊,在这边我们举一个具体的例子啊,以谁为例呢?以这个加购物车这个业务为例啊,那对于加购物车来说,我们具体的这个业业务操作,业务事件应该是什么呢?是不是应该是加或者是减购物车这个操作呀。没错吧,啊,但是呢,呃,我们通常情况下是不会去关心我这个具体的加减操作的,那我通常情况关心的是什么呢?呃,通常情况下我关心的是每个用户,那他呃最终的这个购物车当中有什么商品啊,那所以说对于加购物车这个业务,呃,业务事件呢?啊,我就没有必要去保留所有的加减操作了,而只保留什么呢?而只保留诶我们这个固定时间间隔的数据,那怎么做呢?啊,相当于是每天啊,我们给诶业务系统当中的购物车表打一个快照啊,每天一个快照啊,每天一个快照啊,那这样一来的话呢,我们就能够知道每天结束的时候,呃,我们的用户的购物车里边有什么商品呢?啊,这就是所谓的周期型快照实时表。
08:38
啊,那我们思考一个问题,那周期型快照时表我们所采用的同步策略应该是什么呢?啊,其实一般情况下周期型快照时表我们就做全量同步就可以了啊,每天一个全量的快照,每天一个全量的快照啊,那这就是周期型快照实表,好,那接下来我们看最后一个啊,最后一个呢,叫做累积型快照实时表。
09:02
那累积型快照时表又有什么样的特点呢?来我们一起看一下那累计型快照实时表啊,它通常用于跟踪业务事实的变化啊,那累计会时表通常情况下适用于那种会发生周期性变化的业务啊,什么叫会发生周期性变化的业务呢?呃,比如说我们以订单为例啊,那每一个订单,那从下单到结束之间是不是都会经历下单支付啊,什么发货?啊,然后最终签收啊,然后呃,确认收货等等,是不是会有这样一个固定的这个阶段呀,对吧?啊,这就是一个所谓的会发生周期性变化的一个业务啊,那累积型快照时表呢,它就是适用于这样的业务。那OK,那累计型快照实时表,那它到底是如何去跟踪咱们这个所谓的业务事实的变化的呢?啊,那其实诶就是使用几个时间字段啊,我们往下看啊,这是一个比较简陋的一个订单的呃实时表啊,那这就是一个累计型快照时表,你会发现啊,那这个实时表的字段它有些特殊,那它除了我们呃事实表啊,那它们当中的维度外键和度量值之外呢,是不是还有一大堆的时间呀,对吧?
10:16
啊,那这些时间啊,其实就是用来追踪诶业务事实的变化的,你想啊,我们有了这些时间是不是就能知道,哎,我们这个订单什么时候下的啊,然后什么时候打的包啊,什么时候发货,什么时候签收的呀,啊是这样的啊,那这些时间其实呃,对应的就是我们这个周期性业务当中的每个阶段。啊是这样的,那这就是累积型快照实时表,它的特点OK啊好,那现在我们最终总结一下啊,那这三类实时表,那他们各自适用于什么样的业务,然后各自又有什么样的特点,我们总结一下,那首先第一个诶事物型实施表啊,那它适用于的业务应该是什么呢?应该是那种诶不会发生变化的业务。
11:00
啊,没错吧啊,那它所对应的同步策略呢,一般情况下是诶增量同步啊好,接着看下一个,那周期性快照时表,诶,我们所对应的这个,呃呃,所适用于的业务是什么呢?啊,就是那种哎,我们不关心具体的明细操作啊,而只关心最终的结果,那这样的业务我们就可以做周期性快照实施表。啊,那它所对应的同步策略啊,通常情况下就是呃这个呃全量同步啊,那接下来我们看下一个。累积型快照时表,那累积型快照时表,那它适用于什么样的业务呢?适用于那种会发生周期性变化的业务啊,那它所诶适用他他的那个同步策略通常是什么啊,通常是新增及变化同步啊。那这就是我们这三类实时表的这个特点啊。
我来说两句