00:00
那行了,各位同学,那刚才呢,我们已经知道了就是什么叫做事物实表了,也已经知道事物实表它存在的意义了,对吧?那咱接下来就可以干啥了,就可以开始学习这种事实表到底如何去设计了,对吧?因为咱们这儿学习这个建门理论的一个主要目的就是干干啥呀,是不是将来咱们得用它去指导我们去设计自己的数仓了,对吧?诶,OK,那所以咱得知道这种事物师表对吧?将来我比如说想建一张,我到底应该怎么去建啊好,那现在我们来看一下第二一节就是事物实表的设计流程,事务实施表的设计流程,诶有一个固定的步骤,就是这四个步骤,那这四个步骤我先告诉大家,先告诉家是来自于哪儿啊,这四个步骤并不是我们自己创造出来的,这个实际上是来自于rap k ball那本书的rap k是不是就是维度建模的创神啊,对吧?这是他提供的事物师表的设计思路。好,那现在我们来看一下这四个步骤分别是什么啊?来,我们先读一遍那四个步骤分别是选择业务过程,你看又有业务过程这个概念,对吧?然后呢,是声明。
01:00
力度,然后再有一个呢,是确认维度,再有一个是确认事实,OK,那这四个步骤看起来文字不多对吧,但是呢,我们这个你要想把它理解,你还是得好好想一想的啊,我们一定要理解,不要死记硬背啊好,那现在我们就一起来看一看这四个步骤到底让我们干什么,来先看第一步选择业务过程,来看看他是怎么描述的啊,他说我们需要在业务系统当中挑选我们感兴趣的业务过程。这里边提到了一个概念啊,就是感兴趣的一个过程,对吧?这个感兴趣怎么理解,啥叫感兴趣,啥叫感兴趣大家是,但你要时刻记住啊,这四个位是在干什么,是不是在指导我们去设计事物时表啊,对吧?啊,这个得必必须得时刻得得得记住啊,OK,好,那接来往下看,那我在设计这个事务师表的时候,首先我要做的就是在业务系统里边挑选咱们感兴趣的业务过程,这个感兴趣大家是怎么理解的呀?哎,对需求会用到的,那是不是就是咱们这个所谓的感兴趣的呀,对吧?OK,好,那假如说我现在呢,诶,我在设计书仓之前,那我们企业当中已经已经有了一些就是之前的需求了,对吧?那我能不能根据这些需求推断出来我们需要用的哪个业务过程呢?大家说能不能推断出来,可不可以,可不可以咱们来试一下啊,比如说之前我们是不是做过一个类似的这样一个指标,我让大家统计了一个什么2020年咱们各国家的订单总额对不对?好,那你拿到这个指标之后。
02:30
你能不能反应过来,他需要哪个业务过程。能不能2020年各国家的订单总额能不能反应过来他用哪个业务,那肯定能啊,订单总额嘛,定什你是不是得把每一笔下单记录加在一起才能得到订单总额,对吧?那所以说他对应的业务过程,那不就是下单嘛,对不对?比如说我换一个说法,比如我现在呢,不让不统计这个指标,我统计一个,比如说2020年各国家的支付总额,那这时候他对应的业务时不就是支付了吗?对吧?那所以说你拿到这个一些需求之后,你是能够反应过来他需要用到哪个业务过程了,那所以说咱这这个所谓的感兴趣,就是将来我们这个需求会用到哪个业务过程,我们就对谁感兴趣,实际上就是这个意思,当然啊,我们再去选择这个所谓的业务过程的时候呢,我们也可以灵活一点,咱们可以具具备一定的前瞻性,什么叫前瞻性呢?假如说我们企业当中现有的需求里边并没有用到这个业务过程,那我能不能也先提前给他选择出来,给他去建表,能不能啊,可以对吧,为啥呢?因为你。
03:34
现在没有,不代表你将来没有相关的需求,对吧?那所以我现在我提前给他创建出来,提前给他,呃呃,这个准备好,那将来你比如说新加需求了,那我是不是就可以直接开始做了呀,对吧,就不用到时候再去见表等等等等,对,是这样的啊,所以这一点大家要注意,也就说选择业务过程的时候呢,我们应该具备一定的前瞻性,对不对啊,但是有一个底线,什么底线呢?就是你必须必须得满足现有的需求,如果现有的需求你都不能满足,那是不是肯定是不行的呀,对吧?啊OK,那这个完成之后,我们继续往下走,好,那假如说我们现在已经把这个所谓的eo过程挑选出来了,那完了之后呢。
04:10
对吧,我挑选出这个业务过程来之后,他能够指导我们做什么事。其实很简单,你想一想,我们是不是前面提到过一个事物事实表就对应一个业务过程啊,对吧?那你现在把业务过程选择出来了,那就相当于确定了什么呢?确定了咱们整个维度模型当中到底都有哪张事物实时表了,对吧?比如说我这儿选择出来业务过程有下单,有支付,有退单有退款,对不对?那完了之后我是不是就得对应的去建一个下单的事物实时表,那建一个呃,支付的事物时表,退单的时候表,还有一个退款的实物时表啊,对吧?所以第一步实际上就是在确定我们到底要建哪张表啊,或者说要到底要建哪几张表,诶这个先给它搞清楚行了,那这个完成之后,我们继续往下进行,那下边一个步骤是在干啥呢?我们来看一下第二一个是什么是声明力度,诶这个力度这个概念咱们前面是不是已经提到过了呀,对吧,力度是跟谁相关的来着,跟什么相关,跟行相关的对吧?哎,是跟行相关的啊,那所以说生命力度这一步我们到底是在。
05:15
干什么的?我们来看一下文档,他说业务过程确定之后,我们需要为每个业务过程声明力度,那即干什么呢?即精确的定义每张事物史表的每行数据表示什么?哎,其实你看一看啊,咱们现在已经开始在设计什么东西了,已经开始去设计每张事物时表的表结构了吧,对不对?那前面我们在给大家去,呃复习前面采集项目的时候,对吧?我们说我们去熟悉一张表的时候,我们要熟悉它的表结构,表结构呢,是不是就包含行还有列啊,对吧?那你想想你自己在设计一张表的时候,是不是也得去关注它的表结构,对吧?你得明确它的一行指来的是什么,那它的列到底都有啥没问题吧?OK,那实际上生命力度这个步骤呢,我们就已经开始干啥了,就已经开始去设计我们每张事物实时表的是不是表结构了,对吧,咱们已经开始设计它每行是什么,诶是这个意思啊,好了,那也是生命力度这一步就是在确定我们第一步当中。
06:15
确定下来的每张事实表当中,每行所指代的是什么?诶,这就是确定力度或叫生命力度这一步,咱们干的实际的这个工作啊,好了,那接下来往下走,那我们在生命力度的时候,它有一个要求,什么要求呢?是不是应该选择最小力度或叫做最细力度啊,对吧?这个我已经解释过了,我就不再说明了,OK,那选择最细力度就是用来应对各种细节程度的需求的,这一点咱们要搞清楚好了。那下面呢,有一个小例子啊,他说典型的力度声明如下,对吧?那它以谁为例呢?是不是就以下单为例啊,对吧?下单数十秒当中一行数据,我就得表示的是一个什么,是一个订单里边的一个商品项数才行啊对吧?这是最细力度嘛,诶,这个一定要搞清楚好了,那也就是到现在为止,我们需要怎么样呢?我们需要为第一步所确定的每张事务实施表都去生明的力度,对吧?你下单你得确定一下,你支付得确定一下,你退单得确定,退款也得确定,每一张都要去确定,行了,那这个完成之后,我们继续往下走,咱们进到第三步,你看一下第三步是干啥,确定维度对吧?诶这个确定维度又应该怎么理解呢?哎,实际上很简单,我们来看一下。
07:22
确定维度具体是指确定与每张事物型事实表相关的维度有哪些?哎,这个怎么理解啊,大家都知道,我第一步的时候是不是已经确定下来了,就是我们到底有哪几张数值表了,对吧?OK,那第三步的时候呢,你就需要去确定,比如说与下单这个数值表相关的维度都有谁,那与下单相关的维度咱们都有谁啊,大家能想到的肯定有谁,第一个是不是用户啊,对吧,那第二个呢?商品,第三个地区,第四个时间,这些是不是大家最容易想到的呀?对吧?OK,好,那你就需要按照这样的一个逻辑去确定与每个事物史料相关的维度,好,那这个应该很好理解,对吧?那我现在问一下大家啊,你说做这一步我们实际上是在干啥啊,还是落实到我们设计这个表上面来啊,你实际上是在干啥呀?实际上已经开始确定每张表的列了吧?是,是这个道理吧,那咱们前面是不是就讲过我们每张事物实表,那我的列是包含两部分啊,对吧?一部分是什么来着?维度外建,一部分是度量值,对不对?OK,好,那大家想一想,假如说我现在呢,通过第三步,我已经确定了某一张实时表,它相关的维度有这些了,用户、地区、商品啊,时间等等的,那你想想,你说我这张时表当中是不是得有这几个维度的外建,对吧,你得有U的ID,你得有这个地区ID,你得有时间ID等等等等,是不是得有这些东西啊,对吧?也就是说我们实际上第三步就已经开始。
08:50
确定每张事实表当中的列都有什么了啊,只不过现在我们只确定了一部分列对吧?那OK,最后一部分列是什么时候确定了呢?往下走咱们看这这是不是还有一个确认事实啊,对吧?OK,那确认事实实际上就在确定什么呢?
09:06
哎,对吧,此处的事实意思指的就是每个业务过程的度量值,比如说那个次数、件数、金额等等等等,是不是,那最后一步就是在确定我们每张事物时表当中的另外的一部分字段啊好了,那也就是做完这四个步骤,你想一想,是不是我们这个维度模型当中的事物实表基本上就创建出来了,对吧?首先你第一步你就知道了我们到底有哪些事物实表,那第二步我们确定了什吧,是不是确定了每张事物史表当中每行指代的是什么呀,对不对?OK,那第三步确定的是什么?是每张事物史表当中我的维度外线都有啥对吧?一部分列就确定出来了。好,那最后一步确定的是啥?是每张事物事物表当中的这个什么东西呀?是不是度量值是什么呀?对吧?OK,好,那你看这几个步骤做完之后,那我有哪些表,那我每张表的表结构咱是不是就都确定了,对吧?OK,那这个表我们基本上就设计完了,诶这就是事物时表的这样的一个设计步骤啊,是这样的啊好了,那这个步骤完成之后,那我们继续往下进行,在。
10:06
这呢,我们还有一个小问题需要思考一下,哪个问题呢?就是关于第三步的一个问题,第三步我们是干啥来着,是不是确定维度啊,对吧?我们要确认的是与每张事实表相关的维度,然后呢,这里边有一个要求,咱们来看一眼,他说确定维度时应尽量多的选择与业务过程相关的环境信息,因尽可能多的,比如举个例子,下单,那下单在那儿,我选的时候我应该怎么样呢?尽可能多的去选与下单相关的维度信息,比如说时间、地区啊,商品、用户等等,这些我们能选的尽量都给他选上,为什么要能选的尽量都选上了,后边其实也给出了说明,你看一下,他说,因为维度的丰富程度,就决定了咱们将来这个维度模型能够支持的指标的丰富程度,诶,大家想想这句话能不能体会出来。你好好体会他一回。
11:01
我们选择与这个事实表相关的维度的丰富程度,就决定了它能够支持的指标方程这个能不能体会出来。能提出来吗?应该是能,我还有同学点头呢,啊,OK,那咱这呢,举一个具体的例子,你往上翻,咱就找到这个这个维度模型,你就找到它,对不对?那现在这个中间是不是咱们的一张下单时表,对吧?周围是一圈的与之相关的维度对不对?那假如说我们再去设计这张时表的时候呢,比如说我有个维度我没选,谁没选了,比如说location地区我没选,那location地区要没选的话,你想一想,将,就是之前咱们做那个指标还能不能做,比如说2020年,然后呢,各个国家的订单总额,你说你还能做吗?你做不了了,因为你不知道这个订单是哪个国家的吗?对不对?OK,那再比如我把这个删了,删了之后是不是那个什么各分类的这个订单总额,你是不是也算不了了呀,对吧?OK,从这大家应该就能看出来,我们与这个事实表相关的维度,咱们选的越多越丰富,OK,好,那我能算的指标是不是就越多,你选的维度越少,我能算的指标是不是就越少啊,对吧?那所以这一点大家应该是能够体会得到的啊,所以在这儿咱们必须得明确这样的一个要求,就是在确定维度的时候呢,应当尽可能多。
12:09
的选择与该业务过程相关的环境信息,这个到时候我们真正去选的时候,咱们再去说这个事儿啊好了同学,那截止到现在我们这个就是事物时表的设计流程,这四个步骤咱们就讲完了啊,OK,完成之后视频我停一下。
我来说两句