00:00
啊,好了,各位同学,那我们接下来呢,就正式进入到数据仓库的DWS层了,那首先先回忆一下啊,大家还记不记得这个DWS层的职责是什么?还记得吗?首先DWS层这个名字的含义是什么呀?是data warehouse,是summary,对吧?Summary是不是就是汇总的意思啊,对吧?所以我们管DWS层的叫做汇总数据层,对吧?这个汇总数据层当中存放的是什么东西来着?是对,就是咱们当时是这么说的啊,我们说它存储的是我们将来要做的各个需求的一些公用的中间的计算结果,没问题吧?OK,好,那我们存这些所谓的公共的中间结果,它的主要目的是什么呀?为什么要存这些东西,是不是就是为了减少重复计算对不对,然后呢,提高我这个中间结果的一个复用性,对不对啊,主要是这样的一个目的,这就是DWS的职责,咱们得先回忆起来才行,那所以说从刚才咱们这个职责的描述上来看,大家应该就能够意识到DWS层的设计呢,实际上是依于谁的呢?是依托于我们将来的那些需求的。
01:06
是这个道理吧,OK,你要是不知道需求是什么,那你怎么能知道我这些中间结果都有啥的,嗯嗯嗯嗯,没问题吧,对吧,是这样的,所以它是需求驱动的,这一点咱先回忆起来啊好,那接下来呢,我们就进入到这个设计要点这一小节,看一看这块有哪些所谓的设计要点,先看第一点,他说DWS层的设计呢,是需要去参考这个指标体系的,OK,好,那大家现在呢,还能回忆起来指标体系当中有哪些基本概念吗?指标体系里边有什么概念对不对,什么原子指标,派生指标,衍生指标对不对,OK,那再然后呢,就是指标体系,它对于我们的数据仓库的建模,尤其是DWS层的建模,对吧,有哪些意义,大家还记得不?啊,然后再有一个呢,就是我们到底怎样一步一步的根据这个指标体系去把DWS层的表给它设计出来,那这些大家还能想起来吗?呃,可能有同学这个能想起来,可能有的同学这个全忘了是吧?那接下来呢,咱们得必须得花一点时间把这些东西呢,再稍微的复习一下啊,复习完之后咱再趁热打铁去用它去设计咱们DW目标啊,OK,那首先第一点我们要回顾的就是我们这个指标体系当中的几个基本的概念,就是那个原子指标,派生指标和衍生指标,稍微的回忆一下啊来我们回到之前的这个建板理论的这个章节,呃,应该是在哪儿,应该是在5.2.4明确统计指标这一节,对吧?呃,然后里边呢,三个概念咱们诶重点回顾一下,第一个就是原子指标,OK,那大家还记不记得原子指标它的作用是什么呀?
02:38
原子指标他说了,它只是用来辅助我们去定义一个完整指标的一个概念,对吧?啊,大家知道,就是一个原子指标,它不会对应一个完整的统计指标,因为它不是明确的,对吧?诶,它的信息不够丰富,对不对,也就是我给你一个原子指标,你根本就不明确我到底要算什么,所以说原子指标只是用来辅助定义一个完整指标的概念,诶这一点大家搞清楚,OK,好,那这个原子指标它能够辅助我们去定义哪些内容呢?它是不是能帮我们定义三个哎重要的信息啊,对吧?哪三个来着,分别是业务过程哎,还有度量值,还有聚合逻辑,对吧?这个我们也称之为是原子指标的三要素啊,OK啊好,完成之后,咱们这举一个具体的例子,咱们再稍微的体会一下啊,比如说举个例子,订单总额,这就是一个非常典型的原子指标对吧,那通过呃这四个字,我们实际上呢,就能够拿到这三个信息对吧?OK,首先我们先看业务过程,既然你要算的是订单总额,那我对应的业务过程是不是应该是下单呀,对吧?诶,这。
03:38
应该是很明确的,OK,接下来往下走,总额,这里边提到了一个额度,对吧,这个额肯定是金额的意思,对不对,OK,那所以说我们的度量值是不是也就相当于明确下来了,对吧?然后再往下,再往下是不是还有一个所谓的聚合逻辑,这个聚合逻辑从哪能体现出来呢?就是总,对吧,总是不是肯定是萨求和呀,对不对,OK,那所以说通过这样四个字,我们就能够拿到这样的三方面的信息,OK,这就是原子指标的这个这样的一个概念,它就是用来辅助定义完成指标的,OK,好,那接下来呢,我们继续往下看,第二个概念呢,称之为派生指标,对吧?那派生指标到底又是怎么一回事儿的,就说完了,派生指标呢,它是基于原子指标的,对吧?它是由原子指标再加上另外的几个,呃,这个内容是不是组成组合而成的家对吧,这就是所谓的派生指标,好,那接下来呢,我们去看一下这个具体的,呃,一个案例啊来那这儿呢,有一个典型的派生指标,大家来看他让我们算的是什么。
04:30
什么最近一天,然后呢,各省份手机品牌订单总额,这是咱之前看过的一个例子,对吧?这就是一个非常典型的派生指标,只要是派生指标,那它理论上就是可以按照这样的一个标准的公式去定义的,这个公式是什么?我们再回忆一下啊,公式是派生指标等于原子指标加统计周期加业务限定加统计力度,呃,原子指标的概念我们刚刚也说过了,那统计周期指的是什么?大家还记得吗?统计周期是不是往往对应的是一个时间限定条件呀,对吧?这个时间它限定的是什么的时间?
05:07
这个我之前提过啊,这个必须得明确,它限定的是什么时间,限定的是这个派生指标对不对,所对应的那个业务过程当中的那个是不是那个业务时间呀,对吧?举个例子啊,假如说我这儿呢,业务过程是下单,OK,那我这个统计周期我就得用来限定什么呢?就得用限定下单时间对不对?那如果这是支付,那就支限定,就是支付时间能理解吧,它限定的是那个业务过程的业务时间,这一点要搞清楚,OK,那这个完成之后,我们继续往下看,统计周期完成之后呢,就是业务限定,业务限定它也是一个什么呢?它也是一个限定条件对不对,只不过呢,它跟统计周期是有所区别的,他俩其实都叫都叫限定条件对不对?那统计周期特指时间对吧,而而这个业务限定的我可以是。任意的限定条件,那限定条件往往都是用什么去限定?是用维度吧,对不对?限定条件是不是往往是用一个维度属性或多个维度属性去限定对不对?你比如说举个例子啊,你看咱这儿,咱这儿是不是就是用品类为首机去作为限定条件了,对不对?这个品类是不是显然就是商品维度当中的一个属性啊,对不对?限定条件往往都是维度属性,这一点咱们要给它搞清楚,那接下来继续往下走,最后一个概念就是统计力度,这个统计力度指的是什么来着?
06:26
指的是这个指标的计算结果的力度,对吧?力度往往跟行相关,没错吧?OK,那其实很简单,你看这个指标它算完之后,我们得到的结果的结构是什么样的呢?一行肯定是一个省份,对吧?我们要算的是各省份的什么什么东西吧,对吧?所以一行肯定是一个省,所以咱这个指标的统计力度那就是省份,OK啊,那这实际上呢,就是派生指标这样一个概念,我们必须得明确,就是组成派生指标的这个计算公式当中的每部分的含义,诶,这儿必须得理解到位才行啊OK,再深入的理解一下之后呢,你就会发现,只要我们把这个派生指标这个公式列出来了,那这个派生指标的计算逻辑咱基本上也就捋顺了,对吧?啊,是这样的啊,OK,为什么呢?很简单,因为原则指标,它能够帮我们定义我到底应该用哪张实施表,没问题吧,OK,那后边的图,这个业务限定后边的统计力度是不是能够帮助我们去确定我用哪些维度啊,对吧?因为你想啊,业务限定条件和所谓的统计力度,他们对应的是不是往往都是维度?
07:26
对不对,这是不是就应了我们之前那句话了呀,对吧,就是我们的维度属性是不是就通常会用在我们将来那个统计S尔索当中的外尔过滤条件当中和分组自段当中啊,对吧?那这个对应的实际上就是外过滤,那这个对应实际就是分组啊,是这样的啊OK,好,那完了之后呢,我们现在已经知道用哪些事实用哪些维度了,它俩进行相应的关联之后,咱就可以怎么做呢?是不是用我们这个统计周期加业务限定对数据进行过滤对不对,然后呢,再按照统计力度这个字段是不是进行分组对不对,再再按照谁呢?再按照我们原子指标当中的聚合逻辑和这个度量值是不是进行聚合,那最终结果是不是就出来了,对不对,也就是你只要把这个公式定义出来,那计算逻辑也就明确了。好,派生指标这个概念咱就回忆完了。紧接着我们继续往下看,还有一个概念叫做衍生指标,我们之前是怎么定义衍生指标的来着?
08:15
咱们说衍生指标是在一个或多个派生指标的基础之上,再进一步的,是不是计算得到的呀,对吧?啊,实际上也就是说可能有一些指标相对比较复杂,他不能简单的用这样的一个派生指标给它表达出来,对不对,他可能计算逻辑很复杂,对吧?诶我可能需要用到多个实施表等等等,OK,那你一个派升指标就搞不定了,那这时候呢,我们诶就会引出一个新的概念和衍生指标,这样的指标呢,它可能会对应一个或者是多个派生指标,这一点咱稍微的理解一下就行了,好了,这个案例呢,我们就不再去回忆了啊好了,那这样一来,我们原则指标,派生指标,还有衍生指标这三个概念,咱基本上就诶回忆起来了,这里边非常重要的一个,呃,概念就是谁呢?其实就是派生指标,这个是非常关键的,好了,那基本概念咱们回顾起来了,那接下来咱继续往下进行啊,那下边我们要呃思考的问题是什么呢?就是咱得回忆一下,就是这个所谓的呃,这个派生指标对吧?那咱们建出来之后到底涨,呃,不是派生指标,就是这个这个指标体系。
09:15
啊,所谓的指标体系咱们建出来之后到底长什么样啊,什么叫做指标体系啊,说了半天了对吧,这只是指标体系当中的三个概念,那我们建完指标体系到底是长什么样呢?其实之前给大家看过,其实说白了,咱这个指标解就是是不是就是这个所谓的一个脑图啊,对吧?OK,那咱们打点开可以简单的看一看啊来我给他打开。我们来看一下。这其实就是咱们所谓的一个最终的指标体系,这个指标体系怎么来的啊,指标体系是不是肯定是跟我们后续的指标相关的呀,对吧?所以指标体系就是我们需要拿到咱们企业当中现有的指标,然后呢,我们对每一个指标进行深入的分析啊,我们要深入到他的这个计算逻辑这个层面上,对吧?咱得知道这个指标怎样一步一步去算,对吧,得深入到这个程度,OK,好,那你拿到它之后,分析完之后呢,你需要明确一下它到底是哪种类型的指标,延生指标还是派生指标,对不对?那如果是派生指标,那派生指标是不是应该是能够通过,呃,这个原则,指标统计周期,统计力度啊,还有这个业务限定去给它表达出来的呀,对吧?如果是派生指标,那我们就要用这样的四个呃部分给它定义出来,那如果是衍生指标呢,那咱需要干啥?
10:29
如果是衍生指标,那咱是不是得找到它依赖的那个派生指标是谁呀?对吧?啊,OK,那所以说我们需要找到它依赖的派生指标,找到依赖的派生指标之后呢,我们还得把它依赖的这个派生指标是不是也用这个标准的公式定义出来才可以,没错吧?OK,那这实际上呢,就是我们去构建这个指标体系的时候要做的具体工作,说白了就是分解需求,对不对,就是分解需求,你需要把一个一个最终的具体的需求是不是分解成这样的四个部分啊,对吧?是这样,说白了就是拆需求,就是分解需或叫分析需求,OK,啊,是这样的,这就是我们最终构建出来的指标体系。好了,OK,那接下来咱们继续往下进行,那咱们这个知道什么叫做指标体系了,对吧,那接下来我们再往下,那指标体系对于我们数据仓库当中DWS层的建管到底有什么意义呢?
11:18
这个我们怎么去理解呢?诶,其实文档当中是不是有一个,呃,专门一小节,是不是在讲这个指标体系对于书仓建板的意义啊,对吧?来咱把这句话好好的理解一下,再回忆一下啊,他说通过我们刚刚的案例呢,能够看出就是绝大多数的统计需求都可以用原子指标,派生指标,衍生指标这套标准去定义,对不对?那咱们通过实践确实也是这样的,这是我们将来要做的所有的指标,对吧?每个指标我们都能找到,是不是跟他相对应的这些衍生指标啊,或者是排生指标的一些定义啊,对吧?都能找到,OK,那接下来继续往下进行,同时咱们能够发现一个非常重要的一点啊,哪一点呢,你能够发现就是这些需求呢,它最终都会直接的或间接的对应一个或者是多个派生指标,对不对,这个重点在哪?重点在派生指标上,对吧,每个具体的需求,我最终最终都能找到一个或者是多个跟他相对应的派生指标啊,有的指标有的需求可能比较简单,我直接本身就是一个派生指标,对吧,有的需求呢,可能比较复杂,对不对,我可能需要依赖。
12:18
再一个或多个派生指标,但是总之他们都会有相对的派生指标,对吧?哎,都会有这样的,OK,好,那这一点咱们先明确下来,我们再继续往下看。所以说呢,当咱们做的需求足够多的时候,就必然会出现是不是部分需求对应的派生指标相同的情况啊,对不对,这个咱们怎么理解啊?OK,假如说我这儿呢,有一个需求好,他需要用到两个派生指标,OK,那我这个呢,也对应一个需求,他也需要两个派生指标,然后呢,你会发现OK,他他俩会用到同样的一个派生指标,这就是共用的一个现象嘛,对吧?OK,那实际上这个所谓的共用的派生指标就是我们要找的什么东西。这其实说白了就是我们要找的那些是不是需求的一些公用的中间计算结果对不对,OK,就是这些东西嘛,那我们就可以怎么样,是不是可以直接把这些公用的派生指标给它放到我们的DWS层啊,对吧?诶其实就这么个逻辑,这其实就是诶这个所谓的指标体系对于数据仓库建模的意义也是啥意思啊,说白了我们用这个指标体系这样的三个概念,对吧?原子指标,派人指标,衍生指标对吧?把我们所有的需求都给它标准化的定义出来,你标准化的定义出来之后,我们再去找这些指标的中间的计算结果,是不是就好找了呀,对吧,是不是更清晰一点的呀,对吧?这就是指标体系对于我们数据仓库DWS层建管的一个主要的意义,好,那它咱们得先回忆起来行了啊,那意义咱们明确下来了,那接下来呢,我们再来回忆一下啊,就是我们到底如何,就是从零到一的去设计DWS层的汇总面对吧,因为我们光讲理论不行,最终最终咱们得实践,对吧,我真正去落地的时候,真正去做的时候到底怎么。
13:58
做呢啊,那咱们应该怎么做呀。
14:01
首先比如说我现在到公司了,对吧,我需要从零到一的去设计一下咱们这个数据仓库,对吧?现在涉及到DWS了,那我应该怎么做呢?应该怎么,第一步咱们应该干啥,现在到第咱们来一层呢,首先就得干啥,是不是就得去分析咱们现有的指标啊,对吧,就是咱们在设计这个书仓的时候,我们肯定公司里边会有一些有的指标,OK,那这时候呢,我们需要先对现有的每个指标进行分析,OK好,那分析分析你分析到什么程度就行了呢?是不是分析到咱们这个脑图这种程度就行了,对吧,你需要明确每一个指标对不对,它所依赖的那个派生指标是什么,把重点是一定要落,落到哪呢?落到这个派生指标上面对吧?诶一定要落到派生指标上面,OK好,你就要一个指标一个指标去分析,那当然这个工作,诶显然是这个工作量是比较大的,是这样的啊,而且这个说实话也是有一点难度的,为什么有难度呢?因为你想啊,你要能够把这些指标,它所依赖的这个派生指标什么的都找到,那前提是什么呢?前提是我们必须得知道这个指标怎么算,你得知道怎么计算才行,对吧?诶是这样,所以这个有难度,而且工作量也比较大,诶这是我们要做的第一件事,这就是咱们所谓的构建指标体系的一个工作。
15:11
好,那假如说咱们现在这一步已经做完了,那接下来咱干啥呢?接下来干啥呢?接下来咱是不是就得从这一大堆的需求所依赖的这些派生指标里边去找,找什么,找那些所谓的公用的派生指标啊,对吧?OK,好,那这些公用的派生指标,咱们这么看的话,是不是比较乱,不好找对吧?那我们所以说就可以怎么做呢?咱们可以说是重点的把这个派生指标单拎出来去看呀,对吧?那所以说在这儿了,诶咱们可以比如说再来一个这个Excel文件对吧?把它打开,打开之后呢,我们简单的看一看,那这实际上呢,就是我刚刚从呃,咱们这个脑图当中提取出来的,或者叫做抽取出来的这些所有的派生指标啊,是这样的啊,这个图咱们之前已经介绍过了,大家也能看懂,对吧?先看一下这个表表头,表头这儿呢,是不是原子指标统计周期,业务限定统计力度,这就是什么东西?
16:02
这其实就是派生指标的那四个定义的,四定义的那四个部分啊,对吧?诶这个应该是能看懂的,所以说我下边呢,每行所代表的就是一个派生指标,OK,好,那完之后呢,这里边具体怎么理解呢?我这儿有一行就意味着什么呢?意味着什么?脑图当中的一个需求会依赖这样的一个派生指标,对吧?说白了我就是把这个东西给它,诶复制到这边来了,是这样的一个过程啊好了,那现在所有的派升指标咱都拿出来了,那接下来我要干什么呢?是不是就得根据这些派生指标去设计DWS层的表呀,对吧?那首先我们要明确的一个问题,就是我们拿到这些派生指标之后,我到底在DWS层建几张表?对不对,或者说首先要明确一个问题,就是派生指标跟我们DWS层表的对应关系是什么,对不对啊,还记不记得这个对应关系是什么?就是大家最容易想到的一种方案,可能是什么呢?就是一个派生指标,我就对应是不是DWS的一张汇总表,对吧?这是大家最容易想到的啊,但是之前我们分析过,如果咱真这样去设计的话呢,就可能会导致DWS层的模型就会极其的复杂,这个表的数量会非常的多,对不对,表多了,模型复杂了,这个易用性就不是那么的好了,是这样的啊,所以说我们最终并没有采用这种方案,咱们最终咱们采用的是哪种方案来着?
17:19
最终采用的是哪种方案来,我们最终采用的是一个汇总表,是不是对应多个派生指标啊,对吧,就是我会把一些是不是就是比较相近的派生指标放在同一张汇总表,对吧?这个所谓的一些比较相近的派生指标是怎么定义的呀?咱们把什么样的派生指标最终放在了一个汇总表里?我们是把业务过程相同,且统计周期相同,统计力度相同的派生指标,最终是不是放到了同样的一张汇总表里呀,对吧?哎,大家还记不记得我们为什么诶是这么去设计的,为什么他们仨相同,我就给它放在一张表里呢?
18:01
这个大家还记得吗?稍微回忆一下啊,当时咱们是这么说的,我说首先第一点,只要那这些派升指标我的统计力度是相同的,那就意味着什么呢?对我这个计算的结果的结构是相同的,对不对?OK,你要知道这些排行指标,它统计利率都是会画,对吧?那那完之后,我这些每个排行指标,我接下来算完之后,每行是不是都是一个绘画对不对?OK,既然是都是一个绘画,那我就可以想办法去设计一张这样的表,把它们放在同一张表里,这张表咱怎么设计呢?比较合适呢?首先你至少得先有一个什么,呃,就是明确每行每列呗,对吧,首先行就是一个绘画,这个不多说,对吧?那完了之后呢,列咱们怎么确定呢?首先肯定会有一个这个力度的标识,也就是绘画的标识,比如说来一个30ID,用来表示我一行是一个绘画,这个没得说,对吧?那么这后边的字段怎么确定呢?很简单,我是不是一个派生指标,其实最终你算完之后就是一个值啊,对吧?没问题吧?OK,那也就是我一个派生指标,我就对应后边的一个字段能理解吧,比如说什么各绘画的时长,各绘画的页面数对不对等等等等,我是不是这样的一个排成指标,诶,我就给它作为一个字段啊,对吧?那这样一来,我实际上是能够放到同一张表里的,诶,因为它的结构相同。
19:10
好,那完之后为什么前面两个也要保证一致呢?诶,这个其实就得从哪儿去考虑的呢,是不是得从我的这个数据装载的角度去考虑了呀,对不对,OK,那为什么呢?来咱们琢磨琢磨,你只要保证啊,我的业务过程是相同的,那就能保证什么。我这些所有的派生指标。在做计算的时候,他们是取自于同一张实时表的,因为业务过程相同,是不是对应的实表就相同,对吧?它们从同一张把这取数好,那只要统计周期相同,那就意味着什么呢?我从表里边去取数的时候,我过滤出来的实际上就应该是什么呀,分区是不是应该是相同的对吧?因为我们大多数的实值表都是事物时表,那事物时表呢,我们是不都是按天分区,都是增量分啊对吧?你要是拿算最近一天的,那是不是就拿一个分区,所最近七天是不拿七个分区啊对吧?那只要我的统计周期相同,那我拿的分区就是相同的,也就是说只要保证他俩一样,那就能保证我们是不是需要用到的原始数据是相同的呀,对吧,那相同的,那我就可以怎么做呢?先把数据我是不是拿出来一份就够了,对吧,那一份之后呢,是不是按照啊这个统计周期是不是进行下同样的一个过滤,对吧?那之后呢,再按照是不是同样的统计力度这个字段进行分组吧,对吧?那分完组之后,那我再聚合,我是不是可以一次性的写一串聚合函数,把这些东西全部都一块算出来。
20:29
对吧?诶,那这样一来,我相当于是能够只读一遍数据,是不是就同时把这些指标全部都计算出来了,对吧?这在某种意义上来讲,是不是也能减少这个重复的计算呀,对吧?也能提高计算性能啊,是这样的啊好,那都算完之后,我是不是就可以直接把这些指标一同放到这个最终的汇总表,对吧,对不对,这实际上是我们这儿的一个主要的原因,这个一定要回忆起来,最终咱们明确一下啊,就是我们最终这个汇总表跟派生指标的一个对应关系是什么来着。是什么?是一对多的一个关系啊,OK,一个汇总表里边是有多个派生指标的,是业务过程相同,统计力度相同,呃,统计周期相同,还有统计力度相同的派指标都在这一个汇总表当中,诶这一点大家一定要回忆了,好了,那截止到现在呢,我们大概就已经梳理完了,我到底如何从零到一去设计这个汇总表对不对?大家觉得我们这几个步步骤里边最难的应该是哪一点?咱们其实总总体来说应该可以有三步,对吧?第一步就是干啥呢?就是分析指标,构建那个所谓的指标体系,对应的就是那个脑图对吧?那第二步是干啥呢?是把这个脑图当中那些所有的派生指标咱们都给它提出来啊,对吧?放在这个,比如说一个电子表当中,当然这个形式不限啊,你只要方便查看就行,诶这是第二步,那第三步是干啥的,是不是根据这些派生指标去设计一张一张的DWS的表,对吧?但实际上这里边最有难度的一点应该在哪呢?
21:48
就是第一步就是分析指标,那一步说实话是比较难比较麻烦的,对吧?诶是这样的啊,这个大家理解一下就行了,好,那后续呢,我们就会严格的按照这样的一个步骤啊,去设计DWS的表,到时候咱们再说啊,行了,那截止到现在呢,我们这个就是呃,怎样从零到一去设计DWS的表,咱们也就回顾完了,OK,那截止到现在就是我们与DWS层设计相关的理论,咱们基本上就回顾完了,其实我们一共回顾的内容有这样的三点啊,有三点,第一点呢,就是到底什么是派生,呃,到底什么是那个指标体系,对吧?指标体系里边的原子指标啊,派生指标,还有研生里边这些基本概念,我们回顾了一下,这是第一点,那我们又回顾了一点,就是什么呢?就是诶这个所谓的指标体系,对于我们数据仓库DWS层建玩的一个意义,对吧,咱们回顾了一下,然后最后一步呢,我们又回顾了一下,到底如何从零到一去设计这个DW,对吧?诶,咱们回顾了这三个知识点,这三个知识点还是比较重要的,诶大家一定要重视起来啊好了,那。
22:48
那这个呃,设计要点当中的第一点,这个相关的设计理论,咱们就算是回顾完了啊,完事之后视频我给他停一下啊。呃,来各位同学,那现在呢,我们看一下,呃,咱们下边两个设计要点,下边两个就相对简单一点了啊,先看第二一个,第二一个呢,其实他没什么,没说什么重要的内容,只是给我们,呃就是呃就是提了一下要求,对吧?什么要求啊,是不是关于这一层的数据存储格式的一个要求啊,对吧?那我们应该采用哪种存储格式,还是orc列存储加上内皮压缩,这个跟DWDDW,呃DDM层是不都是一样的呀?对吧?这个我们就不再多说了,我们重点看一下第三点,第三点呢,实际上说的是表的命名规范,大家看啊,这个表的命名规范是不是看起来一糊点。
23:30
有点长啊对吧,对吧,这个大表,这个表表面太长了啊,有好几个部分组成,那咱接下来呢,需要重点的看一看,这几个部分代表的都是什么,先看第一部分DWS,这就是层,这个不多说,对吧?第二部分呢,数据域,诶数据域诶这个数据域我们在DWS层应该怎么确定呢。应该根据谁确定,实际上应该根据DWD层确定吧,为什么这么说啊,实实之前咱们就回忆过,我们说DWS层当中的每张汇总表跟DWD层的这个事实表他们是有强度关系的,对吧?你应该能够知道,就是DWS层的一张表,它一定是由DWD层的一张明细表是不是聚合而来的呀,对吧?那DWD层我们每个表是不是对应一个业务过程,一个业务过程是不是会属于一个数据域啊,对不对?那所以说呢,我们DWS层这的数据域是不是就可以从DWD层那边继承过来呀,对不对,你是由哪张事实表聚合而来的,那你所属的数据域就跟你那张实值表所属的数据域是不是一样的?
24:35
对不对,是这样的,这就是咱们DWS层这个数据域的确定的方式,这一点大家理解一下,好接下来我们往后看,那后边呢,是不是还有三个部分呀,对吧,那这三个部分那正好就对应什么,你看一下统计力度,业务过程统计周期,哎,这仨东西大家熟悉不熟悉。呃,这三东西大家应该很熟悉对吧?什么时候咱们提到这三个点来着,我们说从这些派生指标对吧?去设计DWS的表的时候,是不是用到了这三个概念了,我们说说的是什么?我们说这个业务过程相同,且业统计周期相同,且业统计力度相同的派生指标,我放在同一张汇总表里没问题吧?OK,那我现在是不是相当于直接把这几个,呃概念,业务过程、统计周期还有统计力度直接声明在这个表明上面了,对吧?那这样一来,我们是不是一看到这个表明,我大概就知道这个表当中存储了哪些派生指标啊,对吧?OK,统计力度我在这儿了,业务过程在这儿了,统计周期也在这儿了,是不是就能看出来了,对吧?这就是咱们这个表的三个组成部分,然后呢,给大家简单的说一下啊,这个首先统计力度这个概念不用多说对吧?啊,准确的来说呢,这个统计力度应该指的是什么啊,准确的说你得这么说,准确的说它指的是这个表下边的那些派生指标的统计力度吧,是不应该是这么说呀,对吧?OK,那接着往下走,业务过程也是一样的道理,准确的来说呢,应该是这个表下。
25:55
片的或者表里边的那些派生指标的这个业务过程应该是这个意思啊好,那当然统计力度,统计周期也是这个含义,然后统计周期这边呢,咱们需要特意的强调一下啊,统计周期这个呢,我们呃不能随便的去写,那在这儿呢,咱们是有特定的这个什么呀,特定的这个标记的,对吧,那这写的是什么呢?
26:13
ED不是LD啊,是ED啊,是ND,还有一个是TD,还有几个固定的写法啊,OK,那这几个固定的写法都是什么含义,咱们一会再说啊,实际上不光有这个统计周期,它是有固定的写法,实际上我们前面的这个统计力度,包括这个,呃,业务过程其实也有这个相应的要求,就是业务过程呢,咱们必须得明确的把咱们那个对应的那张那个业务过程得表表达出来,对吧,比如说我是由下单是料区和哪的,那你这必须得把那个下单,比如说order体现出来才行啊,对吧,那我这个统计力度我通常怎么去,怎么去标注呢?这个我通常怎么写。统一力其实通常就是一个什么,大家想想。就是一个什么东西,统计力度对应的是什么来着,是我们那个派生指标当中的统计力度,对不对,这个通常我们用什么表示啊。
27:01
应该用什么表示,用维度表示吧,对不对,因为统计力度本身它是不是就是一个或者是多个维度啊,对吧?啊是这样的,OK,那举个例子,比如说我这儿呢,是绘画的一个力度,对不对?那我这儿是不是就得写上一个塞呀,对吧?比如说我这是一个商品的力度,那我这不是得写个SKU,就这通常它是一个什么,是一个维度啊,是这样,这1.1定要搞清楚好了,那这俩呢,相对来说要灵活一些啊,统计力度和一果相对来要灵活一些,OK,那我们后边的统计周期你就不能随便写了,我们必须得按照这样一个固定的标准去写,那EDND和TD,那这几个图,这个所谓的EDNDTD到底是啥意思呢?现在我们重点的来看一下,那下边其实有标注,他说ED表示的是最近一日。ND呢表示的是最近N日,然后TD表示的是什么呢?是历史至今啊,就是我们为什么会有这样的三个标准呢?实际上是因为我们真正去做的这些统计指标,他们的统计周期几乎都是这样的,你要么就是算最低一天的。
28:02
当然这个座近一天不是说只算一次啊,就是我们算最近一天,肯定也是怎么算,每天都会算一个最近一天吧,因为离线数仓,我们是不是这个数据任务是每天重复执行的呀,对吧,那这个一天是我们每天都要算一个,就是当天的最近一天,OK,那还有一种呢,就是比较常见的就是算最近N天,这个最近N天呢,也不是说只算一次就完事了,你也是得每天都算一个最佳天,哎,包括后边这个历史至今也是每天都会算一个历史当天的啊,是这样的,OK,因为我们算的派这个指标确实都是这样的一些统计周期,所以说在这儿呢,我们就可以给他进行一个标准化的定义,我们就分为这样的三部分。这一点大家要给他搞清楚好了,那既然我们现在看到这个统计周期了,那大家应该就能够想到啊,我们既然会分成这样的三种,那就意味着什么呢?意味着我们会把最近一日的这个统计周期,呃呃,就是统计周期为最近一日的所有的派生指标,我是不是都放在一张单独的表里?没问题吧,因为我现在是不是,呃,这个统计周期是位于这个表明当中的,对吧?那所以说呃,我这个统计周期不同,我是不是肯定是位于不同的表里的,这一点大家应该是能想明白的,对吧?OK,我会把最近一日的排生指标放在单独的一张表里,我会把最近ND的那这样的排生指标放在一张单独的表里,我会把历史之今的排指标也放在一张单独表里,也就是我们把它们分开去放了,对吧?OK,好,那同学有没有想过,我这为什么会把这个分开去放了,我能不能给它放在一张表里呢?
29:30
啊啥意思,比如说我们这举个具体的例子啊,我们以这为例。咱们就以这几个派生指标为例,大家来看啊,就是咱们这儿的统计周期呢,我是不是有最近一天的,最近七天,最近30了,对不对?好,那你想一想,我能不能去设计一张表对不对,然后呢,我把他的一七三十,我都给它设计在同一张汇总表里。我能不能那么去设计。就是哎,我想给他放在一张表里,我这个表结构能不能设计出来。可不可以设计出来,应该是理论上可以设计出来的,对吧?你这要想设计,你怎么设计就行了,首先我们明确一下这张表的行和列啊,每行是不是仍然是一个绘画对吧?你统计周期不同,但是你统计力度相同啊,对不对?一行仍然是一个绘画啊,这个不多说好,那字段应该怎么确定呢?首先第一个字段仍然应该是绘画一个ID才行,对吧?OK,那字段怎么设计?
30:20
是不是最近一日的一部分字段,呃,这这最近一日的一部分,这个这个这个派生指标,我用一部分字段去存储,对不对?最近七日的一些派生指标,我用一部分字的去存储,最近三十日的我也用一部分字的去存储,你说我能不能给它存储到一张表里。完全没问题,这个结构肯定是合理的,对不对?好,但是我们这为什么一定要把它们分开呢?为什么会把一天的哎给它单独的放,N天的给它单独放,历史资金呢,也给它单独的放,这是为什么?既然我们能放在一张表里对不对,那放在一张表里边,那我们是不是这个表的数量会更少,这个模型会更简单呀,对吧?哎,那我们为什么没没把它放在一起呢?我为什么还要给它拆开放?
31:04
诶,这个其实也是跟什么有关系啊,跟数据装载有关系,跟做数据装载有关系,为什么咱咱分析分析啊,假如我现在就不分开,对不对,我把这个业务过程相同的,统计力度相同的,哎,这样的所有的排指标我都放在一起,就是像咱们这边设计吧,对吧,里边有多个统计周期啊好,那你往这张板里装载数据的时候,你得从哪取出。在想你得从哪取出?你得从DWD层取分呗,这个没得选对不对?肯定得从DWD层的明细表里取分啊,好,那咱们这里边是不是既有最近一天的,也有最近N天的,是不是也可能会有历史至今的呀,对吧?你要想算历史至今,你肯定得拿什么数据,得拿全表数据吧,什么叫历史至今对吧?就是把所有人的,比如说下单记录我都汇总到一起,这是不是才叫历史之金呀,对不对?OK,那你每次往这张表里装载数据,我都要去拿全表的数据,而且是明细层的全表数据,这个性能它肯定高不了,对不对,没,没问题吧,所以说你这么设计不太合适,那我这怎么做就好一点了呢?诶,咱们可以这样做,我给他分开,对吧,我一地的我单独的设计一张表。
32:12
那那刚才咱们提到了啊,就是ED指的是最近一天,但是这个最近一天不是只算一次就行了,我们是不是每天的最近一天都要算啊,对吧?所以说最终咱们建出来的这个最近一天的表啊,它时间应是一个什么样的呢?哎,理论上也应该是一个分区表,对不对,每天的分区里放的其实就是什么。就是每天的最近一天的这个汇总结果啊,是这个道理吧,OK,也就是它里边会有每天的这个明细的汇总结果,没问题吧,好,你有了它之后,我后边我再算,再去算谁再算ND的汇总结果,或者是历史资金的汇总结果,大家说你会,你说我该怎么算,对,我还需要再从明细表里面去拿吗?就不需要了,对吧,我已经有了一个做过,就是按天汇总的这样一个数据了,对吧,我就直接从这里边去拿分,是不是就会更好一些啊,对吧?也就是说我们用明细只用一次对吧?只有往一地表里装载数据的时候,我才会汇总一次明细,之后再汇总,我就基于它再汇总就完事了,你在基于一地的表汇总,那数据量是不是要比明细少很多呀,对吧?诶,那这样一来计算性能好一些,那所以主要是呃,因为这个数据装载的原因,我们才把ED还有ND的给它区分开的,诶这1.1定要明确一下啊,那所以说实际上啊。
33:22
就咱们这对应的这几个派生指标,我们到到底最终会给他建几张表。其实就是两张啊两张啊,1D的我是不是放在一个单独的表里,NDND里边包括七包括30,对吧,那他们我给它放在哎统计张表里,那这儿有历史资金吗?没有历史资金,没历史资金是不是咱就不用去建那个TD的来对吧?OK,在这儿呢,我们其实这这些排量指标最终会对应我们DWS层的两张表,这个大家稍微的理解一下啊好了,截止到现在呢,那我们这个DWS层的表的命名规范,咱们就算是啊,说完了最终明确一下啊,就是DWS层的表的命名规范由这样的几部分组成,前面这个不用多说,呃,这个数据强调一下,它应该是从DWD层与这个汇总表相对的事实表继承过来的,对吧?这个很简单,接着往下走,统计力度,那这个往往用一个什么表示来着。
34:13
维度,当然也不一定是一个维度,我有没有可能是多个维度呢?有对不对,我因为我这个,呃,说白了,统计力度对应的就是分组字段对吧?那我在统计指标的候,我分组的时候,我可能不是只按照一个字段分组,对吧?我有可能会按俩字段分组,你按俩分字段分组,那我的统计力度不就是俩字段嘛,对吧?俩字段,那咱们这儿呢,就得写上俩字段,就好比啥意思呢?你比如说我看一下我们下边的第一张表,你看咱们这个统计力度就是什么力度呢?用户商品力度对不对?OK user SKU,这就是一个力度啊好,那接下来往下走,那下面呢,是一个业务过程,这个一定要明确,必须得表明你这个到底对应的是哪个,哎,这个业务操作是下单还是支付,还是退单还是退款,得明确出来,好接着往下走,最后一个统计周期E还有TD对吧?EDNTD这三个的含义咱们必须得搞清楚,这个我就不再多说了啊,好了,命名规范咱们到现在为止也就完事了,视频我给它停一下啊。
我来说两句