00:02
啊,那接下来呢,我们开始进入到这个第二一小节,关系建模和维度建模,呃,在这里边我们重点讲的是维度建模啊,关系建模呢,我们还是以了解为主啊好,那在讲这个关系建模和维度建模之前,我们先看两张图,咱们先看两张图啊,然后呢,呃,通过这两张图呢,我们先去,呃,对这个两种模型先有一个第一印象啊来,我们看2.2.1。这张表就是一个关系模型。这就一个关系模型啊,然后呢,咱们紧接着看下边维度模型。哎,这是一个维度模型啊,那现在就不看字啊,就看图啊,就字不重要看图对吧?啊,咱们看图,那这个光看图,咱们其实大致自己应该就有一个啊这一个想法对吧?咱们的关系模型它的给我们的这个印象就是什么呀,就是表示多啊,其实可以这样跟大家说啊,就是这个模型跟咱们下边这个模型啊,其实我所描述的东西是一样的,我存储的数据是一样的东西啊,只不过就是两种不同的建模方式啊,你会发现这种方式关系建模这个表多,那下边这个维度模型呢,表比较少,对不对,然后呢,再有一个特点,关系建模呀,这个表与表之间的关系。
01:18
比较复杂对不对,你看我一张表,我跟他关联,跟他关联这块呢,要关联出了一大串对吧?啊,那假如说我现在呢,要想知道这个信息和这个信息之间的一个关系,那你是不是要关联好多表啊,一大串啊叭,较麻烦,比较乱啊,这是关系模型给咱们的一个特点啊,就是表多啊,且关系复杂,那接下来下边唯独建模呢啊哎,你看啊。这层关系是不是就比较简单了呀,咱们这儿呢,其实很容易发现,我这里边啊,是不是有一个中心表,然后周围是不是围了一圈啊,你看啊,咱们虽然也有这个照,也有关联,但是什么?但是我不会像咱们关系模型那样啊,往外关联一大串对不对,我最多是不是就关联一层啊,对不对,这是咱们这个维度模型,咱们看到的一个特点啊啊所以说咱们通过这两张图呢,大致能够有一个这样的感受,关系建模啊,它的这个表多,关系复杂,维度建面呢表少,那这个相对来说呀,我这个关系比较简单。
02:18
好好,那咱们先认识到这一点就行了,一会儿这两种建模方式到底有什么优缺点呢?咱们再具体的去分析啊,那咱接下来看什么啊,接下来看一下咱们这个,呃,这一节前面的一个小概念啊。或者叫做两个小概念,哪俩概念呢?啊,OLPP和o lap。啊,这俩概念,这俩概念以后大家应该工作的时候,应该经常会这个遇到,尤其是o lap遇到的啊,这个概率是比较大的,所以咱们这儿呢,把这俩东西呢,给大家普及一下啊来看一下。他俩跟我们现在讲的这个建模方式呢,也是有关系的啊。来,我们现在先看一下,呃,这俩东西是什么啊?来首先我们看一下这个第一个啊,当今的这个数据处理可以分为两类啊,数据处理啊分为两类,那哪两类呢?一个就是所谓的连接事务处理,这个连接事务处理其实就是这个东西的一个职译transaction processing,呃,这个玩意翻译过来之后啊,是不是感觉跟没翻译没啥区别啊,翻译过来还是不知道啥意思对吧?啊呃,确实这样,咱们一会再解释啊,然后呢,简称一般就是or TP啊然后下边呢,还有一种叫做哎,Online alytical processing,叫做连接分析处理,叫做or lap啊是这样的啊啊,那这也说了,这个orp和TP它俩到底什么呀?是两种数据的处理方式,对吧?啊,处理数据的两种方式,一个orp,一个or TP啊,或者说我们这俩概念也可以怎么去理解啊,也可以把它,呃,就是这样去理解,这是两种数据处理的系统。
03:55
啊,那一种系统咱们可以给它归类为OLAPB系统啊,那一类系统呢,也可以归类为这个op系统啊,也可以这样去理解这俩概念啊,啊其实总总归就是跟数据有关系的,对吧,跟数据处理有关系的啊好,那咱们接下来往下走。
04:12
来那看一下OL t pop分别哎应语什么样的场景啊,来OLTP,那我处理数据,处理的什么数据啊,处理的是传统的这个关型数据库里边的数据,那我主要应用到的技术是什么呀?就是一些这个啊,随机的增删改查,以及一些这个事物的处理啊,这是OLTP他所做的事。那orp是什么呢?Orp啊是我们这个数据仓库系统的一个,呃主要的呃数据数据处理的类型啊,那它支持的是什么呀?支持的复杂的分析操作,那侧重这个决策知识啊,并且提供易懂直观的这个查询结果啊,其实大致咱们应该能够呃这样去区分这两种分析方式了啊,那or TP我主要指的是什么呀?只是咱们关系型数据库里边这个常见的一些随机的增删改查,然后呢,还有一些事物的处理对不对?那还有一个or指的是什么呀?指的是咱们呃数仓或者是其他的一些分析型系统当中的这个大批量的这个数据的分析来处理啊,分析处理咱们叫做olap啊,是这样的,这是两个概念,咱们要搞清楚啊,那接下来往下翻啊。
05:23
那下边呢,我们从以下几个场景,对咱们这两种数据分析的这个类型呢,做了一个对比,咱把这个对比看完就下课休息啊来先看第一个对比属性是毒的特性啊,那从毒这个特点,咱们去分析对对比这两种这个处理方式啊,咱们得到什么样的结果呢?看一下啊来啊OLTP啊,这是不是关于数据库啊,对吧?那我们读的时候呢,我们每次查询只返回少量记录啊,咱这个怎么理解啊。每次查询只返回少量记录,你想一想啊,咱们业务系统,比如说电商一个业务系统,那它是不是就是一个oltp系统啊,对不对,那你说什么时候你才会从数据库里边读数据啊,什么时候还会读啊。
06:07
你像咱们日常的使用什么时候才能读啊。嗯,我写我我下单是不是这个肯定是不需要读的,对吧,我注册是不是也是不读啊,这都是往里写对不对,那什么时候读啊。比如说我查取的商品,我搜索商品对不对,我这输了一个手机,你是不是得搜索,搜索是不是得把这个,呃,手机的信息从咱们后台的数据库里边查出来呀,对不对,但是你你你想想啊,你这种查询它每次会返回大批量的数据吗?不会的,对不?它只会给你返回一页数据对不对,一样呢,可能有十几条20几条,是不是这样的呀,每次查询只返回少量记录啊,这是读,那接下来我们看这个o lap op,我去读的时候呢,那都是什么呀。是不是就是咱们去查询啊,都是大量记录进行汇总啊,你看啊,我这个呃数据库啊,这个不是数据库啊,就是呃出仓里边的表我放在那儿了,那我要想进行这个查呃汇总的话呢,我肯定是咱们要批处理,是不是就是一天的数据我统一计算啊,或者说我这个什么一周的数据统一计算,一年的数据统一计算啊,是这样的啊,那所以说这块呢,相当相对来说呀啊就是读的时候都是大量数据进行汇总啊,这是第一个区别,那第二一个特点呢,从企业这个来看啊,写那RPP啊,咱们每次写都是随机的啊,然后呢,低延时的写入用户的输入。
07:29
啊,首先咱们得明确用户,用户是谁,用户是不是就是我们呀,这是一个电商系统,然后呢,我们所有人是不是都可以使用这个电商对不对,指的是哎,咱们是咱们往这里边写数据啊,咱们往里边写,那你写的时候,你首先第一个随机写啊,什么叫随机写呀,比如说我是不是任意一个用户,我什么时候要写数据啊,啊比如说我什么下单呀,哎,或者说我还有什么呀,还有比如说我这个修改个人信息对不对,那他修改个人信息,你是不是也不知道到底是哪个用户会修改啊,随便来个用户,OK,我要修改,那你首先得干啥?是不是得先得找到那个用户的信息,然后再进行修改啊,这都是随机的一些写,这都是随机写啊,然后呢,得要求延迟,得低,就是咱们用户往里边写数据呢,得低才行,你不能说我这个注册一个用户,你让我等一个钟头啊,那等一小时谁谁还注册呀,对吧?啊所以说要求哎是随机写,而且得保证递延时啊,那如果是orp系统呢,那我写,那我就不是一条一条写啊,啊那我都是怎么写呀,批量导入。
08:29
啊,你看咱们现在还是以数仓为例,你看我们这个数据是怎么进入到数据仓库的表里的,是不是直接漏过去的一批数据统一的往里边漏的,对吧?这是批量的导入啊,应该也比较好理解,然后再往下看看使用场景。使用场景呢,首先我们第一个呃点是什么呀?就是咱们面向的用户是谁啊,你看啊or TP,咱们面向的是谁是还是用户,用户就咱们C端,相当于是就是我们诶咱们诶consumer啊,咱们这个每个消费者啊,或者每个客户端啊,是C端啊,是咱们的普通用户,那这种分析型系统,Rap系统,那我所面向的是谁呀?啊你说咱们出仓我打好之后,我会对咱们外边的用户开放吗?
09:10
会吗?肯定不会的,那给谁用的呀?是给咱们公司内部的分析人员去使用的,对不对啊,所以说面向的用户首先就不一样啊,那再一个呢,我应用的这个场景也不同啊,那我这个orp头,那一般应用在加V意向啊,那咱们的orp呢,一般指的是咱们的数仓啊,是为这个决策提供支持的啊,是有区别的啊好,那接下来看下边数据的表征啊,所谓数据表征呢,指的是我们这个数据的表面的一些状态,表示状态,那如果是OLTP系统,也就是关型数据库当中,咱们的数据只保留什么呀?最新状态。啊,这个咋理解啊啊,也就是说说说说实话就是什么呀,就比如说这呢,有一张这个表啊,一张MYSQL当中的表,对吧,那我这个数据是不是有可能会修改呀啊用户信息可能会改,那我要改的话,是不是原来那个状态就直接覆盖掉了,原来状态就没了,对吧,就不会再保存了,哎,然后呢,我只保留用户啊,或者是其他东西的最新状态啊,只保留最新状态啊,那但是呢,我们数仓它就不一样了啊,数仓里边啊,我们会保留随时间变化的历史状态。
10:21
这个是非常关键的一个这个区别啊,就是跟关型数据库比起来,非常关键的一个区别啊,那他为什么要保留历史数据呢。啊,为什么呀。其实很简单啊,你想一想啊,我们书仓里边,如果说我保留下来的历史数据对不对,那相当于我就得到了一个这样的一个数据集啊,什么数据集啊,相当于我得到了一个随时间变化的一个数据集。对不对啊,那我不同的时间是不是我的这个数据是不一样的呀,那相当于我无形之中我就多了一个分析问题的一个角度,什么角度啊,时间啊,就是我可以去沿着时间这条线去观察这个数据的变化了啊,去找数据跟时间之间的这个变化规律了,对不对啊,那也就是说我们数据仓库当中呢,会保留历史数据,这个是很重要的啊,很重要的啊啊那这个玩意之后咱们往下看最后一点啊,就这个数据规模,那一般情况下咱们关于数据库啊,啊,那我一张表啊,就是最多就是GB级别啊,那咱们一张这个,呃,就是我们数据仓库当中啊,咱们这个数据规模是什么呀?是TB到PB级别啊,数据量呢,肯定呃,要比这个咱们的这个关系数据库要大多了啊,这是呃,咱们这个从这几个属性去对比了一下,咱们的两种数据的分析方式啊,那咱们的业务系统说白了就就采用的哪种啊。
11:44
其实就是哪种数据的处理方式啊。Op,那咱们的数仓就是那种就是op啊,是这样的啊,然后呢,咱们在这儿呢,本来要讲的是关系建模和维度建模,对不对,那咱们怎么又说了一下这两个概念呢?啊,其实有对应关系的,一般情况下啊,咱们的OLTP系统,那它里边这个组局数组织数据的这个,呃,模型呢,就是啥呀,关系建模啊,那一般情况下,那我们这种啊,这种分析型系统啊,那咱们采用哪种采用维度建模啊,实际上是有这样的一个对比关系的啊啊那这俩概念呢,我们大家呃,因为以后可能会接触到,所以在这呢,我们需要了解一下,了解一下啊好,那完了之后,我们一会下节课呀,再去讲这个关系建模和纬度建模,它们具体的这个区别啊,咱们现在先下课休息会吧啊。
我来说两句