00:00
啊好,各位同学,那咱接下来呢,看一下我们第二一种类型的时时表,我们称之为周期型快照时表,或者说你直接管它叫做周期快照表也行,这个都可以啊好,那现在呢,我们先不去考虑啊,就是周期快照时表是如何去解决存量型指标的,先不用考虑这个问题,咱们先来搞清楚这个周期快照时表到底是什么东西,对吧?它是啥样的对吧?咱先搞清楚这个问题啊好,那先来往下走看一下概述,他这是这么说的啊,他说周期快照时表呢,是以具有规律性的可预见性的时间间隔来记录实时。说实话啊,就是这句话他说的有点啰嗦啊,有点啰嗦,那其实你根本就不用看这句话,你直接从哪去理解这个周期快照表就可以了呢,你直接看从他这个这个标题的字面意义上去理解就可以了,周期快照时表你想一想就是干啥呀,周期的打快照呗,对吧,这是不是就叫周期快照时表对吧?OK,那什么叫做周期打快照,首先咱们得先搞清楚打快照是什么意思,什么叫打快照,打快照是不是就是保存某一个事物的当前状态就叫打快照啊对吧?那当然,那咱们这你说要打快照,你是给谁打快照,给表对吧?给哪的表打快照,这个得琢磨琢磨,是给买所有的表打快照,还是给我们书仓里边表打快照,那实际上应当是给买circleql当中的表去打快照啊,比如说我买circleq当中呢,这有一张表,这张表呢,它是不是可能每天都会发生变化呀,对吧,那我这个所谓的周期性的打破,这就怎么做呢?周期性比如说我每天呃作为一个周期对吧,那我就需要怎么做呢,是不是每天。
01:38
来买所有当中的这张表,我给它保存一份全部的数据到数仓里边来,这时候就打了一个坏照对吧?OK,那周期性的是不是不是打一次就完事儿了对吧?诶,那我一会到了第二天的时候,我还要怎么做,还要再找到买sol当中这张表,因为它是不是可能会变啊,对吧?完了之后呢,我再把它全部的数据拿过来,我放在哪呢?放到书仓里边,再给它保存一份啊,是这样的啊,OK,好,那这实际上是所谓的周期快照的这个概念,那行,那这种所谓的周期快照表在数仓里边,它通常是一个什么样的结构呢?它通常是一个分区表,这种周期外照表通常是一个分区表,那这个分区表呢?它通常按什么分区呢?Have的分区表的概念大家还记得吧?啊,1HAVE的分区表是什么意思来着?是不是我把这个表当中的数据,我是不是给它分到不同的路径啊,对吧,一个路径一个分区对吧?OK,好,那会这个所谓的分区表,那咱这通常按什么分区,按照日期分区,那我就是一天一个分区,一天一个分区,那我这每天的分区里放的应该是啥?大家想想是不应该就是我当天这个。
02:38
S当中这张表的全部数据啊,对吧,对吧,那今天全部数据拿过来,我放到咱们数仓里边,当那分区里,那到了第二天呢,这个表是不是变了对吧?变了之后我再拿一份全部的数据是不是放在咱们这个第二天的一个分区里啊对不对?哎,一天一个分区,每天的分区里保存,那咱们买SQL这张表当中当天的全部数据,那其实这就是所谓的周期快照时值表,这就是周期快照表啊,周期的打快照其实非常简单,这个表其实你可以应该能想明白,这个表咱们将来做起来是不是也简单,对不对,其实说白了就是每天往这个呃收仓里边做一个什么就完事了,全量同步吧,应该是全量同步啊,对吧,应该很简单啊,好了,那周期快照表是什么?咱们就搞清楚了,那接下来我们就来分析分析周期快照时时表,它的意义到底是什么,来咱们一个一个看,首先我们先往下看,咱们看这首先那这个周期快疗时表呢,它主要用于分析一些存量型指标,或者是什么呢?状态型指标啊,这个状态型指标是咱们现在刚刚。
03:38
建造的一个新概念,对吧?我们暂时先不考虑它,我们先来分析一下啊,就是这个所谓的存量型指标,那这个周期快照表到底是如何解决的,那咱这儿呢,就还以刚刚咱们这个例子去说明,那刚才呢,我们是不是介绍了一个这种所谓的虚拟货币的例子啊,对吧?我们说这样的一个需求,那呃,这样的一个例子,咱们呃提到一个什么样的需求,这样的一个需求啊,是不是让统计就是截至当日的每个用户的虚拟货币余额呀,对吧?我们说这个东西我们要想用事物时表去算的话,是不是这个效率非常的低啊,对吧?好,那我用周期快照时表它的效率就高吗?哎,它是怎么高起来的呢?这个给大家解释一下啊,来大家来想一想啊,你说通常情况下啊,就是在我们的业务系统当中,你说会不会实时的存储一份每个用户的虚拟货币余额。
04:29
你想会不会?业务系统里边,咱们就以京豆为例啊,你想一想,你说你每次打开自己的手机对吧,你找到自己的京豆余额,是不是都能看到一个准确的值对吧?那每个用户是不是都能看到对吧?你既然能看到,那就说明什么,说明他的这个后台的业务系统的表里边儿是不是应该存储了一份每个用户的虚拟货币余额呀,对吧?也就是业务系统当中往往是会记录这样的一个呃余额的,OK,那既然业务系统本身就有这个每个用户的最新额,那你说我们再去呃,算这个指标的时候,咱们还需要从那两个事物时表里边去聚合吗?
05:06
不需要了,就我们正常要算怎么算就行,我直接从业务系统当中是找到对应的这个记录余额的表,我把这张表的结果是不是直接给他同步到数仓里边来就完事了,对不对?那这样一来的话,我们是不是就极大的节省了这个计算资源了,对吧?相当于直接拿结果了,我就不用再去做这个历史数据的聚合了,对吧?那这实际上呢,就是这个所谓的周期周期快照时表的一个核心思想对吧?就是利用我们业务系统当中现有的结果,有结果我就直接同步,那就完事了,就不用再傻不拉几的对吧,去从那种事物时表里边去聚合那么多的历史数据了,这就是周期快照时表解决存量型指标的一个核心思想,哎,就是这样的,其实非常的简单,这个道理非常的朴素,对吧?啊,就是这么个逻辑,好了,那截止到现在,那我们这个周期快照时表它是如何解决存量型指标的这个问题咱们就解释完了,行了,那这个完成之后,我们再继续往下看,那这是不是还提到了说周期快照时时表是不是也能解决这个所谓的状态型指标啊,对吧?好,我们现在来看一看这个所谓的状态型指标指的事。
06:06
什么来看一下文档当中这个说明啊,你看这他说对于空气温度,行驶速度这些状态型指标,OK,那这个所谓的状态型,他举了俩字俩例子,一个是空气温度,一个是行驶速度,对吧?诶那你像这些东西它们有什么样的特点?后边说了,他说他们的值啊,往往是连续的,哎,这个连续大家怎么理解。连续跟谁是对应的呀?呃跟跟间断跟离散是,呃离散是这个对应的对吧?那什么叫延续呢?假设举个例子啊,比如说我这儿呢,有一个范围,假如说我这里边这个值,它能取到我这个范围内的任意实数,对吧?我们就说它是连续的对不对?那如果说那我这个值呢,只能取到里边的某几个值,那我们就说它这个值是离散的对吧?好,那你想一想,这个所谓的空气温度,所谓的行驶速度,这是离离连续的还是离散了呀,那显然是连续的吧,它是连续的啊,那所以说我们这种连续的值,咱们能捕获到它原子的变动的这呃,我们能捕获到它这个变动的原子事务操作吗?能吗?什么叫呃,什么叫变动的原子事物操作,比如举个例子啊,我们以这个行驶速度为例,你能说比如说我发生了某一件事儿,然后呢,我这个行驶速度就立即从零到100的吗?能吗?不能,就是说你这个汽车你提速再快对吧,我也是。
07:32
逐渐上升的对吧?是这样,那包括空气温度,你也不能说我做了某一件事儿,我这个空气温度立马就从五一下就变到了这个十,这个是不是也是不可能的呀,对吧,那是这样的,那既然不是这样的,那所以说我们能捕获到这个它变动的原子失误操作了,咱们捕获不到啊,没有这样的这个操作事件,对吧?既然没有,那你想一想,我们能用事物型实时表去记录他们的这个变更操作吗?不能啊,对吧,因为它根本就没有这种原子事务操作,所以说我们这个事务师表是不是就没办法去保存相应的信息啊,对吧,是这样的啊,那所以说对于类似这样的指标,我们根本就没有办法使用事物时表去做啊,因为事物时表当中你保存的是什么?是一个一个的原则,是不是事物操作事件啊,对吧?OK,比均里我下了一次单,我花了五块钱对不对,那我下来我我支付了一次对吧,我支付了十元钱对吧?诶,它保存的是这样的一个一个的原子事物操作记录对不对,但由于这个空气温度,吸驶速度,它没有这样的原子事物操作记录,我我们就没有办法使用事物时表,对吧?那所以对于类似这样的指标,我们只能怎么做呢?嗯,我们只能对其进行周期快照,只能对其进行周期快照啥意思呢?比如说我们以空气温度为例啊,那空间内我只能怎么做呢?比如说我只能是每隔比如说十秒钟或每隔30秒钟,对吧?我去记录一下这个呃,这个什么呀,当前的这个温度对吧?比如说我记录一下,比如说呃,这个零零秒的时候,比如说我是呃,这。
08:58
呃,30度对不对,那30秒的时候,比如说我是呃29度对不对,后边呢,28度,呃,28度,后边的27度,然后呢,比如说后边的又25度了,对吧?我们只能是这样的周期性的对它打一个快照对吧?那打完快照之后,那将来我们只能用这样的一个周期快照表去做一些相关的指标统计,比如说求一下今天的最高温度对吧,求一下今天的平均气温等等等等,你只能是去做这样的一些统计指标了,OK啊,那所以说在这儿呢,这一点咱们大家也要给他诶意识到对吧?也就是对于这种所谓的连续型的这个值,我们没法使用事物时表,我们只用对其进行周期的这个快照,哎,这一点大家要理解到位啊,好的同学,那截止到现在呢,那这个状态型指标咱们也就解释完了,当然这个状态型指标在咱们这个电商里边,你说它存在吗。
09:46
在电商里边,咱们有这种所谓的这种连续的状态性治疗吗?没有,其实电商里边根本就没有,就是类似什么空气温度啊,行驶速度啊,这些在什么场景下可能会有的啊对,就是物联网上面可能是会有的,对吧?呃,之前咱们其实有挺多同学,呃,就是去的就是走到那种就是那种车企对吧,有车联网诶,或者说有去那种什么国家电网的,对吧?那这里边他们是不是会有各种各样的传感器啊对吧?对于这些传感器呢,那其实你最合适的办法就是怎么做呢?就是对它进行周期的采样,进行周期快照啊,就是这么个逻辑,这一点理解一下就行了,那对于电商而言呢,这种指标应该是没有的啊,这个理解就行了啊好了,多同学,那截止到现在呢,那什么叫做周期快照时表咱们已经清楚了,那周期快照时表它存在的意义咱们也就搞清楚了,然后再往下,咱们要讲的实际上就是这种表它怎么设计了,对吧?好,那这个我们就下节课再说吧,先休息一会,各位同学啊,嗯。
10:40
嗯,好了,各位同学,那咱接下来呢,继续往下进行,呃,上节课呢,我们讲到了这种周期快照实时表对吧?呃,然后这里边我需要给大家提醒的一点是什么呢?就是这个周期快照实时表啊,呃,大家说它跟我们前面讲到的那种事物时表,它是不是冲突的,他俩是不是冲突的,就什么意思啊,比如说我们就以那个虚拟货币为例,对吧?对于虚拟货币而言对不对?那我们前面提到了,我要建事物实值表的话,我会建两张,一个是使用的,一个是获取的,对不对?OK,好,那完之后呢,我要想去算咱们这种所谓的这个,比如说余额,就这种存量性指标的时候,我还会建一个这种虚拟货币的一个周期快照时表,对不对?OK,那我问一下大家,你说这几张表它是不是冲突的,是不是说诶我要建了一个这种周期快照表,我就不用再去见事物时表了,或者说我建了事物时表,我就不能去见周期会展是表,那他俩有没有这种冲突的关系啊?
11:33
有吗?完全没有,对不对,他们可以是同时存在的,他们是一个互相补充的一个呃,一个关系,对不对啊,是这样的,因为因因为什么呢?因为事物时表在某些场景下是不足的,我们才需要去建一个周期快照时表,对吧,是这样的,但是某些场景我是不是只能用事物时表去解决,用周期快者纹是不是就不能解决了呀,对吧?他们是一个互补的这样的一个关系,所以说他们并不冲突,比如说举一个例子啊。
12:00
假如我现在呢,又有一个指标了,我想统计一下今天诶,或者说某一天每个用户获取的这个货币的这个虚拟货币的总额,对不对,OK,那你说你用这个周期外照表,你能算出来吗。你算不出来,它只有一个余额嘛,对吧,你也不知道这个今天每个人获取了多少个,对不对,是这样的,所以说这种情况下你只能用啥去算,你只能用事物时表去算了,对吧?那所以他们是一个互相补充的一个关系啊,也就是说周期快照表和事物时表它俩并不冲突啊,这一点要搞清楚,行了,那现在我们继续往下走,下边呢,我们要讲的是这个周期快照表的一个设计的流程,哎,也就是它将来咱们也要去建类似的表,对吧?那这里面我们是怎样一步一步的给它建出来的呢?那现在咱们来看一看,其实啊,就是甭管是什么样的表,你是事实表也好,你是维度表也好,对吧,甭管是哪张表,也甭管他这个所谓的设计流程是什么,你只要把握一个原则就行了,它所谓的设计流程其实都是在指导我们去干啥呢?去建表,对吧?只要是建表,你就得明确我这张表每行是什么,我的列有什么,是不是就是这些东西啊,对吧?其实它都是会回归到这一点上面来的,OK,那接下来咱就来看一看这个周期快照表,它到底如何设计,这个周期是,嗯,周期快照。
13:14
嗯,呃,刚才咱们不是已经举例子说明了吗?嗯,并不是刚才说了,咱们说周期快照时表的数据呢,我们不是从事务时表那边聚合而来的,我们是从业务系统当中直接同步过来的啊,是这样的啊,你不是从这聚合而来的啊,是这样的啊好,那我们现在继续往下走,那下边呢,我们接着讲刚刚咱们所提到的这个,呃,设计流程啊,这个设计流程呢,大家来看一下这儿的这个步骤是不是看似比较简单啊,对吧?那一个是什么?确定力度,一个是确认事实,看似简单对吧?但实际上呢,它所涵盖的信息一点都没有少,它其实还是在指导我们这张表它每行是什么,那它的列到底还是什么,还是这些信息,好,那现在我们来一起看一看,就是这个东西到底怎么理解啊,我们先看它第一步,它第一步上来之后,是不是就让我们确定力度啊,对吧,那确定这个力度,我们实际上确定的就是什么来着。
14:14
是不是就是每行指代的是什么呀?对吧?来我们先来看一看它是怎么去确定确定这个力度的啊来咱们这么去看,他说周期快照实时表的力度跟事物时表是不一样的,它可以由采样周期和维度进行描述,诶采样周期和维度这个所谓的采样周期这个大家怎么理解,比如周期快照表,我是不是就是定期的从业务系统或者说从咱们的一些传感器里边去采集这个数据啊,对吧,就是我多久我去呃快照一次,多久快照一次是不是指的就是这个采样周期啊,对吧?是这样的,好,那对于我们离线出仓而言,这个采样周期通常就是天,通常就是每天一次啊好,那接着往下走,那另一个呢,就是维度,哎,是这样的维度,是不是就是我们与该实时表相关的维度啊,对吧,也就是说周期快照时表的力度有采样周期加维度描述,这个怎么理解呀?诶我们这儿看一个具体的例子,你按照它的这个描述呢,你说是不是当我们把这张表的。
15:14
这个采样周期和维度确定了之后,是不是就能确定它的力度了呀,对吧?按照它的描述应该是这个意思,对不对?好,那我们现在来实际的演示一下,那首先假如说我们这儿呢,诶要做一张所谓的周期快照时表,对吧?那我们的采样周期我们通常就是啥呢?就是每天,尤其是在我们这个离线入仓里边,通常就是每天啊好,那假如现在咱们的产业周期就是每天,那接下来继续往下走,那维度呢,我们怎么去确定呢?对吧?因为你要想确定力度,是不是得确定采业周期加维度啊,对吧?采业周期通常就是每天,那维度根据什么确定的维度,这个呢,其实我们通常是可以根据统计指标决定的,哎,为什么这么说啊,因为这种周期快照时时表,它只有什么情况下才会出现呢?只有当我们有类似的这种存量型指标的时候,我是不是才会去设计一个周期快照时表,对吧?相当于这个周期快照表是不是专门服务于这一个周这种存量型指标啊,对吧?诶是这样的啊,OK,那接下来咱们继续拿走,也就是说诶,我们这个周期快照时表呢,它的维度我们是通过这个统。
16:14
指标去确定的,例如咱们这儿举一个具体的例子,假如说我这儿呢,有一个这样的指标,他让我们统计的是什么呢?统计每个仓库当中的每种商品的库存,首先这个库存它是不是存量性指标,很显然是对吧?好,那我问一下大家,你说咱们这个维度应该是什么呢?就是这个指标咱们的维度是什么?是每个仓库中每个商品的库存啊,对吧?那所以说咱们的维度不就是仓库加商品嘛,对吧?你得知道是哪个仓库当中哪个商品的库存是多少,对吧?那所以说维度就是仓库加商品好了,那截止到现在呢,我们是不是就已经把我们这儿所需要的采样周期确定下来了,也把咱们的这个所谓的维度确定下来了,对吧?那按照前面的这段话的描述,是不是我们现在这个力度也就确定了呀,对吧?好,那力度到底有没有确定,咱们来分析分析啊来各位同学,那假如说我现在呢,诶需要去建一张这样的所谓的周期快照表,对吧?好,那你想一想,你说我这张表建完之后,每行所指代的应该是什么呀?
17:15
你要保存内容是什么?注意草原采样周期时候,每天是不是每天采样一次,对不对?那每天你都要对什么采样呢?都要对每个仓库里边的每种商品的库存是不是采样一思啊,是这个道理,那你说最终你这个采样过来之后,这个数据每行代表的含义应该是啥?是不应该就是截至每天每个仓库当中每个商品的库存是多少啊,对吧?那你想一想这张表当中每行数据是什么,是不是就已经清晰了,不就是每天每个仓库每个商品嘛,对不对?那每行确定下来了,是不是咱们这个力度也就确定下来了,对不对,其实就是这么一回事儿,那也是在这儿,按照他的描述呢,就是说我们要想确定一个周期快照表的这个力度呢,我们就由什么去确定就行了,就由采样周期加维度去确定就行了,采样周期通常就选每天,那维度呢,我们就根据具体的指标确定,拿到指标你就能知道它的这个维度有啥了,诶通常就是这样的一个逻辑啊好了,那接下来呢,咱们继续往下进行,那实际上呢,我们再把。
18:16
第一步做完之后,我们除了把每行是什么确定下来了,我们实际上还把什么确定下来了,我把一部分的列是不是也确定下来了,对不对?那所有的实时表,不管你是周期表还是事物实时表,对吧?那它的字段是不是都是由两部分组成,维度外线加度量值对吧?那咱现在这个维度是不是也已经确定下来了,维度其实就是啥呀。你想啊,你这个表最终你需要记录什么,是不是需要记录一个每天还有什么来着,每个仓库里边的每个商品后边什么的库存,对不对,OK,那你前面的每天你是不是得用一个日期对吧?那每个仓库是不是得有一个仓库对吧?那每个商品是不是得有一个商品对吧?所以说咱这个表的维度呢,实际上就包含什么呀,最终其实会包含日期加商品加库存,那加加加这个这个这个仓库是这样的啊,那这实际上是咱们的三个维度,OK啊好了,也就是说是不是这一部分的字段咱们就确定下来了,对吧?那接下来我们再看最后一步,最后一步是干啥,是不是就是确认事实啊,对吧?确认事实其实就是在确定这张师表的一个度量值吧,对不对,好,那我们来看一下它的度量值是什么,他这么说的啊,他说事实表它的,呃,事实这个事实就是那个度量值啊,度量值也可以根据统计指标决定,你想想是不是这么回事,因为他这让我们统计的什么来着,是每个仓库每种商品的库存,那你说这个事实就是啥,度量值就是啥,不就是这个库存嘛,对不对,那所以说。
19:40
和我们的度量值也可以根据这个统计指标去进行确定,诶,那这就是咱们这个最后一个步骤所做的工作,也就是截止到现在的,你看是不是我们这张表当中每行是什么,咱们已经明确下来了,对不对,那OK,那它的有哪些维度,外界是不是也确定下来了,有什么度量值是不是也确定下来了呀,对吧?那也就是截止到现在呢,那我们这张表的结构就算是确定下来了,OK,那这就是所谓的周期快照时表的一个设计流程,它其实相对比较简单啊,它不像咱们那个事物时表那么规范,也就是周期快照表呢,它完全是取决于什么呢?取决于咱们将来的这种所谓的存量指标的需求的,对吧?你有类似的需求,你就可以照着这个需求去设计一张这种所谓的周期快照表,那换句话说,如果没有这种需求呢,那我这张表还用建吗?还用吗?
20:28
诶就不用见了,也就是说周期快照时表的它是可能不存在的,对不对,有周期快照有有存量型需求,我们才会有这样的表,没有就可以不见周期快照表,诶这一点大家要注意啊,好了,那到目前为止,周期快照表的设计流程咱们就过了一遍了,来视频我停一下啊。啊来各位同学,那在这儿呢,我们讲完周期外照视角之后呢,我们就能够引出一个新的知识点呢,这个知识点呢,叫做事实的类型,注意啊,这是事实的类型,而不是人么?而不是事实表的类型,哎,这个要搞清楚啊,这个事实类型其实指的就是什么呀,事实是不是就是那个度量值啊对吧?哎,事类型在这指的就是度量值的类型,度量值的类型我们一共分为三种,哪三种呢?分别是可加事实或叫做可加的度量值啊,然后之后呢,还有什么,还有半可加事实,还有不可加事实啊这个可加呢,你也可以管它叫做完全可加事实,哎,然后半可加事实,不可加事实,OK,那完之后我们来看一看这三种事实到底是什么含义,我们先来看第一种可加事实,什么叫做可加事实?来咱们看一下它怎么描述的啊,他说可加事实的是指可以按照与事实相关的所有的维度进行累加,对不对?OK,那它例如什么?例如事物事实表当中。
21:45
事实什么意思呢?什么叫可以按照与事实表相关的所有维度进行累加,什么叫可以累加?所以的可以累加,就是说你按照这个维度,你累加起来之后,它是有意义的,诶,这就叫可累加。好那现在呢,我们去举一个具体的例子啊,咱们还是回到最前边这个位置,这是不是就是一个典型的维度模型啊,对吧?那我可以告诉大家,这张实表它就是一个事物实表,好那现在呢,我们来分析分析啊,就是刚才那句话,到底啥意思,什么叫做按照与该市实表相关的维度进行累加的,比如举例子,那我现在呢,按照什么,按照国家或者按照地区这个维度进行累加,对吧?累加完之后你能得到一个什么样的结果呀?对谁进行累加,是不是肯定是对这个事实也是度量值也累加,对吧,这它的度量值对吧,你把这个度量值按照国家进行累加,你得到的结果应该是什么,是不是就是各个国家的订单总额没问题吧,这个有没有意义,大家说有意义的呀,对吧,各个国家的订单总额这是有意义的,那换句话。
22:45
我再换一个对吧,比如说我现在按照啥呢?我按照这个日期维度就累加,日期维度当中可能非常多啊,比如说我按照年累加吧,那你得到的结果应该是啥呢?是不应该是每一年的销售总额呀,对吧,这个也没有问题吧,也是有益义的,那我再比如说我按照产品进行累加,对吧,我累加完之后,我能得到一个什么结果呀?比如说我可以得到某个分类的这个商品的销售总额,这个是不是也没问题,对不对?那同理,我比如说我按照这个,呃,Customer顾客进行来讲,我能得到每一个顾客的订单总额,这个是不是都是有意义的呀,对吧?那这种情况下我们就说,诶,这个度量值它是可以按照与之相关的所有维度进行累加的,那这个就是一个典型的是不是可加事实啊,对吧,或者我们管它叫做完全可加事实,诶这就是可加事实的概念,好,接下来我们看下一个,下一个呢,我们称之为什么,我找一下那个理论啊,跑哪去了,在这儿了,下一个呢,我们称为半可加事实,哎,其实你要知道什么叫做可加事实了,那半可加事实是什么,我觉得大家应该能猜出来。
23:45
什么叫半可加呀?哎,其实这个应该很容易想到啊,来我们看他怎么说的,他说半可加事实呢,就是我只能按照与事值表相关的一部分维度进行累加,对不对?那那什么意思呢?比如说我这儿有一张实时表,对吧?里边是不是有一个度量值啊,对吧?我周围是不是会有很多的维度对吧?我按照一部分维度累加是有意义的,但是按照另外的一部分维度累加是没有意义的,那这就是所谓的半可加持好了,那什么里边的这个事实是半可加事实的,所有的周期快照时表当中的事实都是半可加的啊,是这样,为什么所有的周期这种周期快照时表的事实都是半可加的呢?来咱们这儿举一个具体的例子啊,咱们现在以谁为例呢?我们就以上边那个库存为例啊,上边咱们为了解决那个什么各仓库各商品库存的那个需求,我们会给他建一个什么样的快照表,我们会建一个是不是各仓库当中各商品的库存每天快照实时表,咱们是会会给他建一个这样的表,对吧。
24:45
好,那刚才咱们分析了,你说这张表它的维度都有什么维度啊,是不是会有一个日期的维度,因为每天嘛,对吧,你得有一个日期对吧?好,那完成之后还会有什么呢?还会有一个库存的维度,呃,这个这个仓库的维度,还会有一个这个商品维度,是因估这样三个维度啊,对吧?好,那你想一想,那我这三个维度我进行累加的时候,你看啊,你按照谁累加是有意义的,按照谁累加是没意的,比如说我现在按照时间进行累加,对吧?比如说我按照时间对我这个库,咱们的度量值是不是就那个库存呀,对吧?哎,你看对库存进行累加,你说你得到的结果应该是一个什么?比如举例子啊,那按照时间累加是啥意思呢?那你想一想,就是这张表当中,将来它存储的数据应该是什么样的,应该是比如说截止到某一年的,比如说1月1号,诶我某个仓库当中某个商品的库存,比如说十对吧,那截止到1月2号,那这个商品它的库存比如说是诶15对不对,那截止到1月3号,那我的库存是多少呢?比如说是九对不对,OK,好,那你想一想,我按照。
25:46
直接把这个商品的库存我给它加一些,你说这个东西有意义吗?没意义对不对,这叫啥呀,你加起来这叫啥呀,啥也不是,对不对啊,是这样的啊,那所以说那显然这个库存你按照时间维度进行累加,它是没有任何意义的,诶但是反过来,假如说我按照啥呢?我按照这个仓库进行累加,或者说我按照这个商品进行累加,但是说这个有没有意义呢?实际上是有的,比如说我把某一天当中对吧,那它这个呃,在不同仓库的同一件商品,它的库存进行累加,你能得到什么,是不是这个商品的总库存啊,对吧?诶这个是没有任何问题的,对不对,那所以说那我这个库存按照商品按照仓库进行累加,它是有意义的,所以这种情况下呢,我们就说这个库存,那它的这个这个所谓的类型就是哪种类型呢?就是半可加事实对吧,按照时间累加没意义,但是按照其他的维度累加是有意义的,诶这一点咱们大家要注意一下,OK啊,那实际上所有的这种周期快照事实表当中的度量值啊,你按照时间进行累加。
26:46
它都是没有意义的,哎,这一点要能够想明白才行,好了,那最终咱们总结一下啊,事物事实表当中的事实都是可加,事实周期快照是表到事实都是半可加,事实半可加啊好,那接下来我们再看最后一种,最后一种呢,我们称之为不可加事实,那什么叫做不可加事实呢?这个应该能想明白吧,啥叫不可加的呀?
27:08
度压式是完全不具备可加性,啥意思呢?比如说我这儿有一张表对吧,里边呢有一个度量值,周围呢有一圈的维度表,我这个度量值呢,我按照所有的这维度进行累加都没意义,那这个度量值是不是就是一个不可加事实啊,对吧?好,那有没有这样的所谓的不可加事实呢?嗯,其实你要是设计的不合适的话,你设计的不合理的话,是可能会出现这样的事实的,但是这种事实我们应当尽量的避免,对吧?我们不应该去设计出来这样的事实,因为你这样设计出来,你按照谁累加的唯那你要它有啥用啊对吧?是这样的,那所以说那这种事实我们应当尽量的避免,那怎么去避免呢?在这儿我给大家举一个具体的例子,首先我们先来举一个呃这种具体的例子,给大家说明一下,到底什么叫做不可加事实啊,来咱们看一下,比如说谁呢?比如说比例型的事实,比例型的什么叫比例型呢?比例型或者比率型是不是就是一个10:1个值叫比例型啊对吧?那在这儿比如说举个具体例子啊,假如说我现在呢,有一个这样的一个事实叫做退货率。
28:07
退货率,这是不是就是典型的比率啊,对吧?什么叫做退货率啊,比如说商品的退货率,那什么叫在这个商品的退货率啊,肯定是一个数比一个数,对吧?比如说在这儿呢,我们按照次数去算啊,比如说我们这个某一个商品对不对,它的诶退货的次数比上它的下单的次数,那我们就称之为它的一个退货率,能理解吧?OK,好,那你想你想一下,你说这样的一个这个所谓的退货率,那它是不是一个所谓的不可加事实呢,是不是,那是不是咱们来分析分析下对吧?比如说在这儿呢,我有一个这样的表对吧,那里边呢,我就存储了每一个商品的退货率,对吧?比如说这儿呢,有一个A商品我的退货率是50%,那BB商品退货率10%,那C商品退货率30%,对不对等等的,我这儿是不是有一个这样的一个表啊,对吧?好,那在这张表当中,你说我这个退货率它到底是不是有意义的呢?呃,它它它到底是能不能进行累加呢?能不能啊,那显然是不能的,对吧,你不管把这个退货率按照什么样的维度进行累加,你都可能会出现一个什么问题啊。
29:07
我这个退货率是不是加一起可能会超过一啊,对吧?你比如说我按照商品线累加对吧,那玩意这个50%,这个30%,这个10%,那我加一起是不是都可能会超过一啊,对吧?但是退货率能超过一吗?那肯定不能啊,超过一肯定是没意义的,对吧?那所以说这种比率型的呢,你按照哪个维度来讲,它都没有意义啊,这就是典型的哎,这个不可加事实,好,那这种不可加实刚才说了,我们应当尽量的尽量的避免,对吧?好,那我怎样去避免它呢?诶后边给出了解决方案了,咱们通常这么去做就行了,不可加事实我们通常需要转化为可加事实,怎么转化呢?比率型的我们就可以给它怎么怎么转化,哎,分成两个字段,一个是分子,一个是分母,诶就好比咱们这儿啊,你可以怎么做的,你可以这样去做,比如说我还是同样的一张表,对吧?诶然后呢,前面是商品,但是后边呢,我不再存储它的退货率的,我存什么呢?我存两个数,那一个数是什么呢?是退货的次数,一个呢是退货的,呃,一个是那个那个下单的次数,我把这个分子和分母,我是不单。
30:08
独的去存着对吧,好了,那完之后呢,这里边你会得到每个商品的退货次数,下单次数,退货次数下单次数等等等等,那你想想这个退货次数跟下单次数它俩是不是可加的。是不是可应该是吧,对吧,比如说我把这个所有商品它的退货次数加一起,是不是就是得到了一个总的商品的退货次数,对吧?那我再把这个所有商品的这个下单次数加一起,是不是得到一个总的下单次数啊对吧?那我现在要想求一个总的退货率,你怎么就行吧,是不是就是把诶退货的总次数加一起,然后呢,把下单的总次数加一起,然后呢,在一笔是不是就能得到一个总的退货率啊对吧?诶那这样一来是不是咱们就巧妙的化简的这个不可加事实的问题了,对吧?那通常咱们可以这样去做啊好了,各位同学,那截止到现在不可加实实咱也就说完了啊,然后呢,这个知识点咱就讲完了,也就是这个所谓的事实类型分为三种,完全可加,半可加和不可加啊,以后就是有人问他的话,咱们得知道有这么一回事就行了啊OK,那这个完成之后视频我停一下。
我来说两句