00:00
那好,那接下来我们看dim层和DWD层,那之前我们在第一章讲数仓分层概念的时候呢,应该提到过啊,就是DWD层,我们存放的是什么,是业务事实。没错吧,那DM层呢,存放的是对业务事实的描述信息啊,那我们现在已经学完了维度建模的概念了啊,那大家是不是应该能够把这两层和我们之前讲过的维度模型对应起来啊,啊,我们前面提到过,维度模型当中的表分为两类,一类叫做事实表,一类叫做维度表,没错吧,那事实表当中存放的是不是就是业务事实,那维度表当中存放的是不是恰好就是对业务事实的描述信息啊,那所以说其实DWD层当中啊,它存放的就是谁,就是我们维度模型当中的事实表。啊,而DM层当中存放的就应该是维度模型当中的维度表啊,这层关系大家必须哎先确立起来啊,OK,那所以说这两层啊,咱们要学习的建模思想,其实就是维度建模的思想啊,没错吧,那我们通常进行维度建模的时候呢,是有固定的这个呃步骤的啊哪哪几步呢,我们先来看一下,一共有这样的四步啊,那分别是选择业务过程,那声明力度啊,确认维度啊,最后一步呢,是确认事实啊,那这几个步骤看似简单,那要想记住的话呢,也很容易对吧?但是在这儿呢,我们不能死记硬背啊,那咱们必须得把这个四个步骤当中的每一步啊,这得得得能够理解才可以啊,是这样的啊,那OK,那现在我们呃分步去看一下,我们先看第一步啊。
01:44
第一步叫做选择业务过程,那这一步我们要做的具体工作是什么呢?来看一下,那我们要做的具体工作就是在业务系统当中挑选我们感兴趣的业务线啊,那比如说下单业务,支付业务,退款业务,物流业务等等等等啊,把这些我们所感兴趣的业务线挑选出来之后,我们后续需要怎么做呢?啊,每条业务线需要对应一张事实表。
02:11
啊,那其实说白了,咱们第一步其实在做什么事。第一步其实就是在确定我们需要建哪些事实表,没错吧,业务线确定了,那我们的实时表也就确定了,OK,这是第一步,那接下来我们再来看第二步。第二步叫声明力度啊,那什么叫做声明力度呢?那这时候我们首先得先搞清楚一个概念,就是力度的概念啊,那力度是什么呢?下边有一个定义,那数据的力度是指数据仓库当中每张表所保存的数据的细化程度,或者是综合程度的级别。啊,那这个东西怎么理解啊?呃,咱举一个例子啊,我们以呃数仓分层当中的两层为例,哪两层呢,分别是DWD和DWS,那DWD全称是date warehouse detail对吧?那DWS呢,是date warehouse summary,一个是明细,一个是汇总,完了这时候我们其实就可以用力度这个概念去描述一下这两层的数据,那我们呃,因为DWD层我的数据呢,是更加细化的,对吧?啊那所以说我们就可以说DWD层的数据,它的度呢,是比较细比较小的啊,那DWS层呢,呃,它因为是汇总数据,所以说它的综合度要更高一些啊对吧?那所以说我们就说DS层,那它的数它的度呢,是比较比较大的啊,就是所谓的力度啊,那也就是说数据越明细啊,那我的这个力度呢,就越小,那数据越汇总或越综合,那我的数据呢,它的。
03:49
力度就越大或者越粗啊,其实就是这个意思啊,好,那我们在声明力度的时候,我们做的具体的工作是什么呢?来看下一句,其实咱声明力度的时候呢,就是精确定义,呃,我们事实表当中的一行数据所表示的是什么?
04:08
啊,因为在第一步当中,我们已经确定下来了,我们需要创建哪些事实表了,对吧?那第二步我们要去确定,就是每张事实表当中,它的每行数据是什么啊,那当然我们在去声明力度的时候呢,是有一个特定的要求呢,什么要求应该尽可能的选择最小力度,也就是说DWD层我们的事实表当中应该保存最明细的数据啊,为什么要保存最明细的数据呢?这个道理很简单,因为只有我们保存了最明细的数据,我们才能够应对各种各样的需求。啊,这就是第二步我们要做的工作,哎,声明力度好,那接下来我们再往下看啊,那第三步呢,是确认维度啊,确认维度啊,那确认维度这一步我们怎么去理解啊,在这儿我们确认维度实际上确认的是与每张事实表相关的维度有哪些啊?举个简单例子啊,呃,比如说我们这儿呢,会有呃订单业务对吧?那订单业务是不是会对应一个订单市值表啊,对吧?那与订单相关的维度有哪些呢?那显然会有用户维度啊,时间维度,地区维度,商品维度等等等等,诶我们需要把这些呃与事实表相关的维度确定下来。
05:26
啊,是这样的啊,那当然确定下来之后,我们实际上呃,最终确定的是什么呢?实际上最终确定的啊,就是每张事实表当中的维度外建有哪些。啊,因为你想一想啊,那是不是只要我们这个事实表跟这个维度有关系,那我在事实表当中就应该有一个与之对应的维度外建呀,对吧?那现在我们实际上这一步最终确定的就是每张事实表当中的维度外建有哪些,那其实确定的就是它的一部分字段,对吧?我们前面提到过事实表一共有两类字段,一类呢是维度外键,还有一类呢是度量值,那在第三步我们已经把维度外键确定下来了啊,OK,那接下来我们看第四步。
06:12
呃,第四步我们称之为确认事实,大家要注意一下啊,此处的这个事实一词指的是我们每个业务当中的度量值啊,是度量值,那其实这一步我们就能够确定什么啊,就能够确定每张事实表它剩余的字段是什么了。啊,前面咱们提到过啊,就是每张实时表它当中的字段呢,我们分为两类,一类是维度外键,一类是度量值,对吧?那在第三步的时候呢,我们已经把每张实时表的维度外建确定下来了啊,那最后一步呢,呃,我们要做的就是确认每张事实表的度量值。啊,那通过第三步和第四步呢,我们就能够把每张事实表的字段给它确定下来。啊,那其实大家可以思考一下啊,我们经历了这样的四个步骤之后,那其实我们就已经解决了,或者已经解答了我们之前呃提到的那个建表的时候需要解决的两个问题,哪俩问题来着?第一个就是需要建什么表,那第二个呢,就是表结构对吧?那建什么表是不是由第一个呃过程或者第一个步骤帮我们解决,选择一个过程对吧?选什么过程我们就建什么表呗,没错吧,那第二一个声明力度,那声明力度是不是能够帮我们去确定表结构当中,也就是他的每行数据是什么呀。
07:32
没错吧,那下一步第三步确认维度,还有第四步确认事实,是不是能够帮我们去确定我们表结构当中的这个字段呀,对吧?那当然呢,呃,我们这个表结构还有一部分内容就是这个分区,因为在数仓当中,我们所有的表都是分区表啊,那这个分区啊,我们暂时呢先不说,等后续我们去实际的去搭建数仓的时候呢,再去说我们这个事实表和维度表的分区如何去规划,那OK,那现在呃,我们这个维度建模的四个步骤就讲完了。
我来说两句