00:00
呃,那如果按照文档的顺序的,那现在咱们是不是要去学习这个麒麟这个架构了呀,对吧,但是咱们直接就学这个架构的话,可能有点跳,为什么?因为这里边儿呢,很多概念呢,我们现在并不是很熟悉啊,而且麒麟当中有一些这个比较专业的概念,所以在讲这个架构之前,在学麒麟之前,我们需要先给大家普及一些这个基本的概念啊好打开这个笔记,我的笔记当中呢,我给大家放了一个PPT啊,就这个麒麟前置概念啊,咱们把这个PPT点开。啊,先来简单这个学一些概念啊。这个概念当中呢,其实最重要的就是那个o lap,咱们需要把op呢啊好好理解一下啊好,那我们现在呢,先看一下这个PPT能点开吧,点开啊。嗯,好,那现在第一个概念是是数据仓库是吧,为什么咱们这儿的先介上来之后要介绍数据仓库,因为什么?因为麒麟呢,它对自己的介绍呢,就是一个数据仓库的一个工具啊,他就是服务于咱们这个出仓的啊,富于出仓的,所以说我们首先需要先了解这个出仓,那这个出仓的概念大家现在已经很熟悉了,我们刚做为一个项目对吧?啊,已经很熟悉了,那这边呢,咱们简单看一下它的这个概念就行啊来这个概念什么呀,数仓是一个各种数据的中心存储系统啊,是BI的核心部件啊,那这个之前大家已经熟悉了啊,这个所谓的各种数据啊,在这儿呢,我们简单说一下各种数据包括什么呀。
01:21
对于各种数据呢,我们其实可以从两个角度去观察啊,哪俩角度,一个是我们纵向的去看,你纵向的去看呢,我们可以包括什么呀,包括历史数据,包括当前的数据,也可以横向的去看,横向去看包括什么呀,是不是包括我们公司各个部门的数据啊,对不对,这是所谓的各种数据啊,各种数据啊,那收仓就是一个这样的各种数据中心存储系统啊好,那接下来往下走。这个不多说了啊,咱们已经提过了啊,再往下走,那下边刚才提到的这个是BI的核心部件,对吧?那BI到底是啥呀?来,那BI呢,通常被理解为将企业中现有的数据转化成知识,帮这个企业做出明智的业务经营决策的一个工具啊,这就是BI它的核心价值啊,他就干这个事儿,那咱们现在呢,重点来看一看啊,就是我们将数据转化成知识的手段有哪些啊,就是他怎么样能够将数据转化成所谓的知识啊,你光用两眼看你是看不出来的,对吧?你得分析才行,你得转化才行,那怎么转化呀,那这边我们会有相关的这个手段啊,为了将数据呢转化成知识,那我们需要利用数仓。
02:30
啊,那书仓是肯定得有的,为啥肯定得有啊。如果说你连一个存数据的地方都没有,那你怎么去给它转化成知识啊,对吧?那所以说数仓是必须得用的,这是最基础最核心的一个部件啊,那咱们有数仓了,那有了数仓之后,我们仅仅是不是有了这个基础的数据啊,对吧?要是你想给他分析进行转化,那你得怎么办?是不是借助其他的一些手段呀,那咱们有啥手段呀?哎,联机分析处理o lap,它又一个小括号P对吧,那op其实它全称就是啥online o就是on,呃,这个on,然后L就是online analytical processing是不是就是联机分析处理,那这其实就是它直译过来的这个翻译对吧?直译啊,当然这个直译没啥意义啊,翻译过来之还是不道不知道是啥东西那但大致的知道这个东西好像是跟分析有关系的,对不对,跟分析有关系的啊,那一会呢,我们再重点去说或AP,那在这儿呢,是不是就是一种将数据转化成知识的一种手段呀,对吧?啊,一种手,一种分析手段,一种分析手段,你先这么去定位它啊,然后后边还会有什么技术啊啊,还可能会用到一些数据挖掘的技术啊,那再有呢,比如说什么这个用画像啊,继续学习等等等等,这都是我们将数据转化成知识的一些手段啊,一些手段啊,那在这儿呢,我们重点来学这个o lap啊,那至于这个数据挖掘啊,或去那个机学习这些东西呢,需要呃,有一些这个算法啊,需要用的。
03:55
些算法啊,那op呢,相对来说呢,还是一种比较简单的比较基础的分析手段啊好,那接下来我们重点来学习这个o lap啊来往下走。
04:07
我点这个PPT啊,啊,那这就是olap,它的全称online analytical processing就是联机分析处理啊好,那接下来再往下走,下边有对这个o lap的一个通俗的解释啊,因为你把它解释成什么联机分析处理这个东西太抽象了,不知道啥意思,对吧?那接下来咱们来看一看这个东西怎么做啊,到底什么意思啊,来op,那它就是一种软件技术啊,刚才也说了,什么干什么都是软件技术啊,是不是将数据转换成知识的一种软件技术啊,对吧?啊,那这个这种软件技术它能干什么呀?来往后看,它使分析人员能够迅速的一致的。交互的从各个方面观察信息啊,以达到什么呀,以达到深入理解数据的目的啊,那这呢有几个关键字啊,首先第一个迅速的,迅速是不是要求得响应得快啊,快速响应,那一致的呢,什么意思呢?一致啥意思啊?
05:07
那刚刚才后边说了,我是不是得从各个方面观察信息啊,那我从不同方面观察信息,我得到的结果那应该是什么样的呀,应该是相互统一的,对不对,你不能说我从这个方向观察数据,我得到结果是这样的,我从另一个方向哎,观察结果确实另外一个了,那这俩对不上号,那是不是就不一致了呀,对吧?啊,你应该得保证我从各个方向去观察这个数据的时候呢,我这个结果都是得是前后呼应的,这是一致的才行,能够互相印证,这样才可以,这叫一致的啊一致的那交互的,那交互这个应该能理解,交互是不是就是一种什么样啊,一种查询方式啊,什么叫交互式啊,就好比咱们比如说打开那个买SQ那个客户端对不对,可视化的客户端啊,那你来一条SQL是不是立即响应结果啊,这叫交互式,你给他输入一条请求,他立即给你响应请求响应,请求响应,这叫交互式。
06:01
啊,交互式啊啊,那他通过这样的几个关键字呢,我们大致呢,就能够猜出来op呢,它要求什么呀,是不是得响应得快才可以啊,响应得快啊,然后接下来往下走,除了快,它还提供了一个什么呀,就是从各个方向观察信息这样的一个功能,那什么叫做从各个方面观察信息啊,这个咋理解呀?哎,后边也说了,那从各个方面观察信息呢,也就是说从不同的维度去分析数据啊,那这个维度大家应该比较熟悉,维度维度,我们建维度建模当中是不是有这个维度的概念呀,对吧?那在维度建模当中我们有啥呀?是不是有各种各样的实时表以及维度表啊,这一块这个维度呢,其实指的就是我们维度表当中的维度字段啊,就是我们可以从不同的维度去分析数据,但是你分析分析应该分析哪的数据啊,应该分析啥呀,是不是分析事实表当中的度量值啊,对不对,那其实这块能够跟我们的维度建模是能够对应上的啊,能够对应上的啊,那后续呢,我们会发现,我们使用麒麟的时候呢,对接的正好就是我们的维度模型啊,正好就是维度模型啊好,那接下来呢,我们继续往下走啊,那这块呢,咱们把这块统一的读一下啊,也就是说我们所谓的从各个方面观察信息,就是从不同的维度去。
07:23
分析数据,那所以说呢,O lap,我们通常也称之为多维分析。因为你是不是可以从不同的维度去分析数据啊,那所以说我们也管它叫做多维分析,那这是一个通俗的这个叫法啊,那咱们文档当中前面这个小括号,这是不是就能看明白了呀?呃,多元分析,那通常我们就管它,呃就是叫做op,它俩基本上就是相同的一个概念啊,通俗的理解就这么去理解啊,啊那这个基础的概念咱们现在熟悉了啊,那接下来咱们继续往下走,既往下走啊,那这个所谓的多维分析啊,那到底怎么做呀?啊这儿也提到了要从各个方面观察信息,那到底什么叫做从各个方面观察呀,到底怎么从不同的维度去分析数据啊,对不对?那接下来我们举一个小例子。
08:11
哎,大家看这啊,我这儿呢,有一张这个比较简陋的一张订单表,那这张订单表呢,每行数据就是一个订单,咱们先把这个力度搞清楚啊,每行数据就是一个订单,然后这个订单呢,我里边有哪些字段呀。下单地区,下单品类,下单时间,那这个呢是啥呀?是订单金额,那如果说我们要给这几个字段呢,要分一个类的话啊,咱们按照我们的维度模型啊给它分类,那你说这几个字段分别应该是什么字段呀?西安地区这应该属于啥呀。维度字段对吧,一一瞅这是不是就是描述这个订单地区的呀,对吧,那这个是啥呀,也是维度,这个呢也是维度,那它是啥呀,它是不是应该是属于咱们实时表当中那个度量值啊,对吧?咱们先大致呢对这个东西分个类啊,先分个类啊好,那现在咱们继续往下走啊,那现在呢,我们想分析一下啊,这个订单金额总和的一个规律。
09:02
啊,那这时候呢,我们想从不同的角度去观察,其实所谓这个分析订单金额总和的规律就是啥呀,你就得看一看啊,你的订单金额是不是跟哪些。维度有关系对吧,对不对?哪些维度的变化会影响到我这个订单金额的变化,这是不是就是分析订单的金额总和的一个规律啊,对不对啊,那这边我们需要从不同的角度去分析,不同的维度去分析啊,那现在怎么去分析,咱们不关心,但是现在先考虑一个问题啊,我这个是不是要从不同角度去观察,那咱们所谓的不同角度啊,它一共有几个角度?一有几个角度?有同学脱口而出三个角度啊,没错,123对吧,但是这个对吗?这个对吗?啊,想一想还有没有其他角度。啊,你不就是想找到你的订单金额跟哪个维度相关,或者是跟哪些维度相关吗?对不对,是不是因为有有是不是有可能我这俩维度都会影响到这个订单,这个它俩是一个共同的一个作用,对不对啊,那比如说举个例子啊,咱们这儿你比如说下单地区跟这个时间啊,时间它俩是不是有可能会共同作用于我们某些这个商品的这个这个订单金额呀,比如举例子啊,比如说那东北地区到了冬季,那我羽绒服卖的肯定好。
10:25
对不对,我这个三亚地区啊,我到了冬季,我羽绒服卖的也不好,对不对,它是不是地区和时间可能会共同作用于咱们的某些这个商品的销量啊,对吧?啊是这样的,也就是说我们去分析这个订单金额的时候,这金额的时候呢,你不能说只看分个维度对他的影响啊,是不是口头的某些维度会对它同时造成影响啊,对吧,咱们得去分析这个啊,那现在咱们已经明确这一点了啊,那你说我们在这儿呢,这个不同的角度到底应该有几个呢?能不能数,能不能这个数完呀?啊,是无穷个吗?肯定不是无穷个,对不对啊,到底有几个呀?七个啊,应该是有七个啊,有七个,这个七个怎么来的啊,这七个。
11:11
怎么来的呀?是不是C31加上C32再加啥呀?C33这个CC几几这个还记得吧?什么排列组合那些东西对不对,还记得吧?啊C31相当于什么?是不是从这三个维度当中任选一个,那一共有几种这个方案呀,三种,那C32呢?是不是从这三个里边选两个啊,也是C32是不是也是三个,那这C3呢,从三个里边选三个,是不是就一种,所以加一起呢?是几个呀?是七个啊,是七个,那这边呢,其实是有这个公式的啊,有公式,这公式是什么?假如说我们这个维度的字段个数呢,一共有N个啊,那我们这个不同的角度啊,它的总的个数是多少呢?是二的N次方减一个。这就这个公式,因为咱们这呢是有公式的啊,那这个公式怎么来的,你你要感兴趣的话,你可以自己推一下啊,用什么推就行,用那个咱们中学的时候学的那个二项式定理啊,就能推出来啊,好像不知道啥叫二项式定理了是吧,就就就这个东西没上过初中是吧,A加B的N次方。
12:17
等于啥?等于不是等于什么,CN级A的N次,B的N减一次啊,CN级A的什么N2次,什么BN减二次,还记得吧,啊就那东西你就怎么替换就行了呀,你把A和B都用一替换。啊,一加一的N次方,那等于什么呀,等于CN0加CN1加CN2加到CN对不对啊,你就这么去算啊,然后呢,你就得到这个结果了啊很简单,你就得到CN1加CN2加CN3啊一直加加加加到CNN等于几你就得到了,能理解吧?啊这个很简单啊,这个我就不给你推了,你要感兴趣自己推一下啊这边咱们,呃,不是在我不是在修我这个数学啊,我是想告诉大家什么呢?告诉大家啊,就是咱们这个总的这个角度,它是不是有一个公式的呀?啊而且通过这个公式我们得到一个这样的结论,只要你的维度个数是有限额。
13:06
维度个是不是肯定是有限额呀,那你的这个角度是不是就是有限个对不对,那换句话说,也就是说你这个不同的角度的个数呢,是能够穷举出来的。对不对,你这个所有的组合,你看咱们这是不是已经全部给你列出来了,对不对,只要我知道你有几个维度,那你的维度的这个组合的种类数我是能够穷举出来的,把这点呢得明确啊,记住这个是能够穷举出来的,这点很关键啊,对于我们理解七点是很关键的啊,是能够穷举出来的啊啊,那这点明确了,行,那这面这个所有的角度的个数,我们到这了,已经自己能搞明白了,怎么来怎么算都知道了啊,然后现在咱们接下来继续分析下一个问题啊,那接下来咱们已经知道我有这么多角度了,对不对,那我现在我就想从这些角度去看一看咱们订单金额的规律怎么去看呀,也就是说你需要落地了,你需要真正的去分析了,对不对,怎么分析啊。
14:00
怎么去得到地区品类和咱们金额的这个一个规律,他们俩有什么关系,怎么能得到啊?什么能耐啊?怎么得到?这怎么这怎么看。啊,这咋看。很简单啊,其实很简单啊,你要想得到你的订单金额啊,和地区品类之间的关系对不对啊,你要想他们这有什么规律,你最终得到结果应该是啥样的呀,结果应该是不同地区不同品类我的金额是多少,不同地区不同品类我的金额多少,是不是这样你就能看到。金额和地区品类之间的关系,这就是你想要的结果呗,对不对,那这个怎么得到这个结果呀,很简单,你就把这个东西看成一张我们的表啊,就看成一张咱们那个关系数据库里边的一张表,或者have里边一张表,对不对,那你只要得到它和它之间的关系怎么写就行,写circle呗,是不是写circle分析就行,那这边这个circle,而且还是固定的写法,怎么写呀,Select。
15:03
什么东西?地区品类,呃,继续跟谁跟品类是吧,然后呢萨因为咱们要求总和的规律对吧?那就是sum订单集合呗,From这张表,然后呢,需要怎么做,可如何buy地区和品类,是不是就得到了地区品类和订单集合之间的关系,那就这么做呗,啊那这就是咱们最简单的一种这个所谓的多维分析的一种方式啊,我想得到这个地区这这个角度呢,这个角度和咱们这个订单经营的规律呢?那是不是就按照他们仨分组就行了呀,然后对它求和,是不是就这样一种一种模式啊,就这个写法是固定的写法啊,固定的写法啊,那基本上都是怎么写呀,是不是就是对维度字段进行分组,然后呢,对度量值进行聚合,是不是这样一种固定的分析模式啊,对不对,那这就是一种o lap的分析模式,这只是一种啊,那当然我们这儿呢,还有其他的这个平,还有其他的方式,其他方式还有什么方式呢?接下来我们看这页PPT啊,Olap的类型,那一种类型呢,我们管它。
16:05
叫做RO molap,那全称呢,就是relational olap,那还有一种呢,叫做op,叫做multi dimensional o lap啊relational指的是什么呢?是关系型的啊,那multi dimensional呢,是多维的意思对吧?多维的意思,其实这个OIP类型呢,我们还有第三种啊,第三种,第三种呢,其实相当于是这两种的一种混合的一个状态啊,一种混合的状态啊,那我们现在重点理解这两种基础类型啊,基础类型啊好,我们现在呢,重点分别解释一下啊,这个什么叫RP,什么叫rap,来我们先看左边这个relation呢,其实就是咱们那个关系型的意思对吧?关型的意思,那所以说RO lap这种多维分析类型呢,它是基于关系型数据库的。什么叫关机关系数据数据库呢?也就是说你要想做lap呢?哎,我会有一张类似于关型数据库的表及你的明细数据是不是就存储在这张表啊,比如说订单数据,那我一条一条的订单是不是就原封不动的存在这张所谓的表里边呀,对吧?那我们要写,要想分析这个数据,咱们怎么写怎么做就可以了呀,就像刚才我们那样就行,怎么做呀,写circle进行分析查询对不对?你对数据呢,进行分组,进行聚合,你就能做这个所谓的多维分析了。
17:27
能理解吧,哎,那这个就是基于关型数据库的意思,也就是你的数据呢,是存储在这种,诶关型数据库就是类似于关系数据库的这种表里边的啊,你分析的时候写circle啊好,那这种分析呢,你会发现它有一个特点就是不需要一计算。啊,不需要计算,首先我先问一下大家啊,大家明白这个预计算是什么意思吗?明白这个预计算什么意思吗?什么叫预计算呀?对,预算肯定是提前计算,对不对,那这个提前提前是在什么之前。
18:00
在什么之前计算叫做预计算呀,什么之前呀。在你发出那个circle请求之前计算,我就叫预计算,在你发出发出那个circleq请求之后计算,那就不叫计算了,能理解吧,咱举例子啊,你比如说以have为例,那have咱们是怎么样的一个工作流程啊,我打开have客户端,我这是不是写了一个circle circle写完之后以回车,回车之后是不是相当于这个请求发出去了呀?那它是不是进行计算了呀?那这种计算叫预计算吗?那不叫,那如果说在我发出这条circle请求之前,我这个计算已经完成了。那这就是啥呀,这就叫做预计算,能理解吧,这就是所谓的预计算啊,这个预计算这个概念咱们需要搞清楚啊,那lo AP呢,那它是不需要一计算的,因为什么,因为你的数据呢,明细数据是不是存在了一张所谓的表里边啊,对不对,那你要想分析,你就写circle,等你circleql写写完了,你一回车请请求发出去,然后呢,它读数据给你计算,给你返回结果。
19:00
诶,那这不叫预计算,它没有进行预算啊,这是rop,那这种就是我们常我们大家理解那种,比如说have的这种分析方式,是不是就是所谓的rop啊,只不过have的延迟是比较高的,对吧?啊是比较高的,好那就往下走。还有一种方式呢,叫做Mo lap啊,它是多维的op对吧,那这个多维体现在什么地方,看下边它是基于多维数据集的,基于多维数据集。啊,那什么叫做多维数据集呢?这个呢,也是我们这个Mo lap当中啊,尤其是Mo lap当中的一个比较重要的概念啊,大家现在肯定不知道什么叫多维数据集啊,所以一会呢,我们会重点呢,先去讲一下什么叫做多维数据集啊好,那接下来往下看,那LMRP呢,它有一个这样的特点,他说他他他能干什么呀,他需要进行预计算啊,他需要进行预计算啊,所谓预计算就是什么?刚才也说了,就是在你写这个circleq之前,他是不是就给你把结果计算好了,对不对,在你写SQL发送SQL请求之前计算好了,那其实你查询的是最明细的原始数据吗?不是而是什么,而是它计算完之后的聚合之后的结果,能理解吧?啊是这样的啊,是这样的。
20:15
啊啊,那其实咱们的麒麟就是哪种啊。后边这种麒麟就是一个这个Mo mop分析引擎,它就是基于这个预计算的,基于计算,也就是它也是基于多维数据集的啊好,那现在呢,我们先去学一下啊啊什么叫做多维数据集,其实你把这个什么叫做多维数据集搞明白了之后,那你也就明白了为什么它需要一计算。你就明白了啊,那现在我们去看多维数据集啊,来往下走啊,那咱们本来要学多维数据集对吧?那结果这样的这个标题是OLAPq吧?啊,那个概念还没搞清楚呢,又来一个新概念是吧?啊,那现在我们来看一看这个OLAPq吧,跟多维数据集之间的关系是什么啊,来看一下。Rap基于多元数据集,这个大家已经知道了,对不对,那一个多元数据集呢,我们通常称之为一个o lapq吧,啊,那也就是它俩是不是应该是大致相同的一个概念呀,对吧?那所以说我们接下来就学这个RAPQ就行了啊,那cub是啥意思啊cub。
21:21
在英文当中,它翻译成中文是啥意思啊,立方体吧,立方体是不是就是Q呗,对吧,那这个Q到底什么东西啊,咱们接下来往下看啊,那这个东西还是我刚才给大家看的那个一个简陋的订单表对吧?啊,那接下来我在右边呢,对应着画了一个跟它对应的一个OLPQ,那这就是一个多余数据机。啊,是不是很形象啊,就是一个方块对吧,就是一个方块啊,那这个方块大家看能不能看明白啊。这是不是好像一个这个就是那种三维坐标系对吧?那咱们有这个X轴地区,那个Y轴时间,还有Z轴是品类对吧?XYZZ,那这三个轴分别对应于咱们左边这张表是啥呀?是不是三个维度对不对?地区品类,时间能看懂对吧?啊好,那接下来我现在问一下大家啊,我看大家是不是真正的对这个图理解了。
22:14
啊,问一下啊,你比如说我右边这张图里边这一个小方块,我是不是有多个小方块组成啊,对吧,我这一个小方块儿啊,它对应的对应到左边这张表里啊,那它应该是对应一条数据还是对应多条数据。你你仔细分析一下,再回答这个问题啊,慎重啊三思啊三思。不要着急,你这个细细品啊细品。啊,这一个小块对应于左边这张表的几条数据,应该是一条还是多条。还是一条。嗯。还有一条。几条?到底还几条?还是一条执迷不悟啊几条啊,应该是,那肯定是多条啊,对吧,这个多条怎么对应上的,你得你得搞清楚啊,这几个小块它是不是对应一个坐标对不对,它对应坐标是什么?是东北地区居家品类,然后二月份的,二月份的啥呀,你得看左边这张表是啥,咱们左边是不是订单表,那我这儿是不是就是东北地区居家品类二月份的所有订单对不对,因为你东北地区二月份儿的这个,呃,这个居家品类的订单是不是可能有很多呀,对不对,有很多,所以说这个肯定是对应这边的多条数据,那当然了,我这个表的数据量很少啊,你东北地区。
23:38
东北没有没有这样数据是吧,大家是不是只就是去找这个数据了,发现一条也没找着是吧?啊,一条都不对应啊,咱不能这样去看啊,这边假如说我这里边订单有很多很多,那你的东北地区居家品类二月份的订单是不是应该有很多个呀,对不对,肯定是对应多条了,也就是说你这个小方块儿里存的应该是一个啥呀,应该是一个聚合值,聚合值谁的聚合值啊。
24:02
肯定是你度量值的聚合值吧。没错吧,你聚合是不是聚合的就是度量值啊,那所以说呢,大家要搞清楚啊,这就是一个度,这个多维数据集,这这就是一个Q吧啊,这一个Q吧啊,那所以大家现在去理解一下啊,我要想往这个多维数据集当中存数据,那你得干啥?是不是得对,得对你这个对原始的明细数据进行聚合呀,对不对,那你往这里边儿放的时候,你需要考虑你后续的需求是什么吗。需要考虑,不需要考虑,我就按照你这个坐标是不是往里边给你聚合就行了呀,对不对,那所以说你这个聚合是在什么时候聚合的呀,是不是在我们写circleq查询,发送circleql查询这个请求之前,是不是就能给你聚合了呀,所以这个过程它就是哪个过程,这就是预计算的过程啊,就是当你把数据最原始的明细数据放到你的多维数据集的过程,这就是在进行所谓的预计算,因为你的多维数据当中,你存放的不是明细数据是啥呀,是聚合结果。
25:06
啊,是聚合之后的结果啊,那这个过程就是预计算啊,那后续我们数据是不是已经存到了多维数据集里边,那后续咱们再写SQL查询,你还需要从明细数据里边查吗?那不需要了,从哪查呀,从多维数据集当中直接查结果啊,那我们麒麟它利用到呢,就是这样的一个特点。啊,就是这样的一个特点啊。好,那现在呢,我们继续往下进行啊,继续往下进行啊,咱们往下进行什么呀,思考一个这样的问题啊。你说我这个多维数据集啊,那它所对应的应该是咱们前面讲过的那七个角度的几个角度。咱们前面是不是讲过了这样的,呃,说对它进行多维分析应该有七个角度对吧,那你说这里边存的结果应该是哪个角度的结果。是都包括呀,还是只包括里边一个,还是包括多个呀。
26:00
几个呀,都包含。确定都包含吗?确定。啊,真的确定吗?其实不是啊,几个其实几个角度啊,其实只是直接存储了这个角度。只是直接存储了这个角度的结果。能能力直接啊,直接存储啊,你你当然确实是你从你你以它为基础,你想得到哪个角度的结果,是不是都都能得到啊,是不只只不过你再对它进行聚合,是不是就得到了呀,在咱们这要要求的是直接存储结果啊,直接存储啊,直接直接存储是不是就是它啊没错吧,因为你多维这个这个这个MMRP它这个特点是什么呀,特点是不是基于它这个多维多维多维数据集,然后呢,基于多维数据集呢,之后呢,我就可以怎么样呢?我是不是可以直接拿结果呀,对不对,哎你就不要再计算了,直接拿结果啊,所以它的存储的直接的结果就是这个角度七的结果啊,角度七的结果,那我是不是还有其他六个角度啊,那其他六个角度的这个结果应该是什么样的呀?
27:04
应该什么样的呀。哎,比如说这是我们角度456,那角度456呢,我们是只有两个维度的,对吧?那两个维度的呢,我们是不是你那个数据集它就不是三维的了呀,那就是两维的了呗,对不对,就是两维的了啊那当然呢,我们这儿呢,只画了一个,我这应该是哪个角度,品类加地区,品类加地区是不是应该是角度四啊对吧?那角度五角度六是不是也应该各自有一个这样的二维的一个Q吧,对不对啊,那接下来我们再看角度一的,那这是不是就呃角度一一个维度的啊,这就角度123啊,那这个呢,我画的是地区,那品类和时间也应该各自是不是有一个这样的Q呀,对不对,没错吧,啊,是这样的啊好,那讲到这一步了,我们大家应该就已经对这个所谓的多维数据集应该已经明明白了吧,应该已经明白了啊。啊,也明白了啊好,那所以说大家来思考一个这样的问题啊。我们大家在往这个多维数据集当中存放数据的时候呢,你是根据什么往里边放的呀。
28:07
你往里边放,是不是得对原始数据进行聚合,对不对,那你聚合的时候,你是按照什么去聚合的呢?是不是就是按照咱们这些角度聚合。没错吧,对不对,那你比如说这个Q吧,我就是按照这三个维度进行分组进行聚合,那这这几个呢,我是按照两个维度进行聚合呀,那它是按照一个维度聚合,没错吧,对不对,也就是说你往这个多维数据集当中放数据的时候呢,你就是按照你这个角度去往里边聚合的啊,那前面咱们已分析过了,那这个角度咱们是可以怎么样的?可以怎么样呢?是可以穷举出来的,对不对啊,也就是说我不管你后边的分析需求是什么,我提前呢,我能够把你所有可能的情况是不是都给你穷举出来,都能穷举出来,我就能能怎么做,就都能够给你计算出来,计算出来之后呢,我把结果存到你这个多元数据集里,那你后续再做这种多维分析的时候,我不管你的角度是哪个,我提前是不是都给你算好了,因为我能穷举出来吗?我提前就能知道你所有的角度都有什么,我都给你算出来,那你后续做什么需求,我都能直接拿结果。
29:14
对不对啊,那这个呢,就是mop它的这个核心的思想,那也是咱们麒麟这个预计算的核心思想啊,一个核心思想啊,就是他能把所有的角度穷举出来,穷举出来都给你算出来,那你后续不管有什么样的这个多维分析的需求,我都能提前直接拿结果,注意是直接拿结果啊,直接,那这个速度是不是就很快了呀,对不对?那所以说这时候呢,大家再来跟我思考一个问题啊,什么问题啊,咱们前面提到了我的麒麟呢,有一个这样的特点啊,不管你的原始数据集有多大,那我是不是都能保证我这个查询时间是比较低的呀,它怎么做到的呀,是不是就基于这个预算呀,就得益于预计算,因为不管你原始数据集有多大,那我都是怎么做的,都是预计算,我查的时候呢,都是什么呀。
30:00
都是直接拿结果对不对,因为预计算是在你发送查询之前,是不是就已经把这个结果算出来的呀?啊,这叫预计算嘛,你查的时候其实不会在现场计算了,我直接拿结果啊,所以说它会很快啊很快啊,那这就是麒麟的核心思想吧,大家把这块能搞清楚就可以了,好,那这个多维数据集OLAPq吧,我们也搞清楚了。然后现在需要给大家纠正一下这个概念啊,咱们刚才讲的概念呢,有点误差,有点偏差,刚才我们提到了,说这个东西就是一个OPq吧,对吧,那这个也是一个OOPq吧,对吧,但其实不对啊,这个概念呢,有点偏差,咱们纠正一下。啊,大家来看啊,咱这其实有俩概念啊,一个叫做cube,一个呢叫做这不是cube ID看清楚啊,这是CU boy的是q Boyd啊,那cube和qbod它俩分别是啥意思呢?Cube其实就是咱们常说的正方体立方体啊,当然这块呢,我们呃大家得那个就是脑筋要灵活一点啊,虽然我们这个正方体立方体在我们这个理解来看,它就是三维的对吧,三维的这个叫立方体,叫正方体,但其实不是这样的啊,在这块这个Q吧呢,我们不管它是几维啊,你是十位也好,你是这个20位也好,那我们也管它叫Q,能理解吧,啊是这样的啊,然后还有一个呢,叫做qbo,那qboard的这个翻译成咱们中文应该是啥呢?
31:22
啊,就长方体啊,就长方体啊俩概念咱们大致理解一下啊,那这个Q和Q的概念分别指的是什么呢?其实我们每个角度所对应的这个数据集,它叫做一个啥呀。T boy。啊,这是一个q boy的,那这个呢也是一个q boy的,这个呢也是一个q boy的,能理解吧,那谁叫Q呀,所有的qvod加在一块儿组成了一个完整的Q吧?啊,这个才是他们俩这个真正的一个概念,咱们需要把这个概念纠正一下啊,最开始的时候是为了方便大家理解啊,我们所以说直接就上来就把这个Q说了,但其实真正的这个概念的应该是每一个角度所对应的数据集,我们称之为一个q boy,所有的qbo加一起组成一个Q啊,啊,那接下来咱们简单总结一下啊,你以我们现在这张订单表为例啊,那他要放到多维数据集当中,应该有几个qbo呀?
32:16
几个呀,七个q boy的对不对,那几个cube呢,一个Q吧,哎,大家把这个搞清楚啊,好,那讲到这儿呢,我们这个cube的概念就比较清楚了啊好,那现在我再来问一下大家啊,因为咱们这个多元数据集需要进行预计算对吧,那预计算的话呢,那麒麟底层的计算引擎是啥呀。预计算是不是也得计算,预计算也要计算的,那那它的计算引擎是啥呀?哎,就是咱们前面提到那个海do或者是Spark,海do就是MR,那Spark就是R对不对啊,那这时候大家能不能理解咱们刚才呃,最开始文档上那个那那句话的那个定义了呀,什么叫做提基于提供了什么呀,基于海do或者s Spark之上的这个所有查询接口,也就它其实它预计算引擎是用海do的MR或者s Spark,当然现在flink也支持了,也支持flink了啊,最新版。
33:06
啊,4.0支持弗Li格了啊,是这样的啊好,那接下来咱们分析分析啊,它这个也要进行计算对不对,那你说要让你去设计它这个计算的算法的话,你觉得你会怎么去安排这个计算顺序,你会让他怎么计算,你要计算的话,是不是就得到这样的几个qbo就完事了呀,对不对,那你让你去设计,你觉得你会怎么设计?啊,是分别计算吗?一个角度一个角度去算,还是怎么去算。这个效率啊会高一些啊,自己考虑考虑啊。让我们自己算,你其实你要想得到这样的几个角度的数据集,其实很简单,对不对,是不是你分别对这仨字段进行分组,对这两个分组,这对这一个是不是分别对分组进行聚合,是不是就得到了,对不对啊,那这种啊,这个粗暴的简单的一个计算方式,有没有什么不好的地方,有没有什么可以优化的地方?
34:03
啊,让你设计,你可以怎么设计啊,让你优化一下。其实你可以安排一下这个计算顺序怎么安排呀,我上来先算谁先算他先算最高维的这个q boy的得到它之后怎么办,我在以它为基础进行聚合,去得到这个较低维度的qbo。啊,什么意思啊,你比如说我现在是不是已经得到这个三维的数据集了,那我现在是不是想得到这个两维的,想要两位怎么得到就可以了,以它为基础对时间进行。降维其实就相当于把时间这个维度给它压缩,对不对,那是不是最终得到的就是谁,就是咱们这个数据集了呀,对不对?那也就是说你去计算它的时候,有必要从最原始的明细数据去计算吗?没必要啊,我从它这就可以了,那因为这个数据量肯定要比明细数据要少了,对吧?啊,那同样的道理,我要选择到一维的这个结果,我从二维聚合而来是不是就可以对吧?那所以让我们自己去设计这个计算这个思想的话呢,我们也肯定是怎么做呀,先算最高维,在依次的进行所谓的降维,对不对?那我们就得到了一个完整的cube了,是这样的啊,那其实麒麟底层的计算逻辑呢,人家就是这么做的,先算最高维,然后呢,再逐次降维啊好,那这就是这俩概念咱们就搞清楚了啊好,那搞清楚这俩概念之后呢,我们,呃,其实多维分析这个概念咱们其实也已经比较熟悉了啊,也已经比较熟悉了,那接下来呢,咱们做一个总结啊,做一个总结啊好,那你要想做多维分析。
35:39
比如说我这有一张表,对不对,一张表,那张表呢,你要想做多维分析,你需要给它划分一个分类啊,分什么类啊,字段怎么分类啊,分两类,一类是我们的维度字段,一类呢是我们的度量字段,对不对?那你所谓的多维分析就是干啥?那基本上就是对我们的维度字段进行分组,对我们的啥呀,度量值进行聚合。
36:05
是不是基本就是这种操作呀,那就是这种操作啊好,那接下来咱们再往后看,往后看。这边呢,有一个概念叫轻型模型,轻型模型是不是我们呃维度模型当中的一种啊,对吧?那这边大家应该已经很熟悉了啊,模型当中我们分为实时表和维度表啊,时表维度表,那为什么在这儿呢?我们要呃强调这个东西啊,因为麒麟大家后续使用的过程当中就会发现啊,麒麟对接的就是我们的维度模型啊,能够对接星星模型,也能够对接雪花模型,雪花模型啊,当然这个概念咱们已经很熟悉了,就不再多说了啊,不再多说,然后这个实值表维度表啊,咱接着往下走。很熟悉了啊,不再多看了啊,往后边走,那接下来呢,就是这个,呃,维度和度量值哎,这俩字段啊,那以我们的星型模型为例啊,那你说我们的维度字段位于哪儿啊。维度位于哪儿啊,维度字段是不是位于我们的维度表里啊,对不对,也可能位于哪儿。
37:03
也可能为实时表,因为我们实时表当中是不是也可以有维度字段,因为咱们前面讲过一个维度退化的概念,对吧?如果说某个维度表我的字段很少一两个,没必要再保留一张表了,我就可以直接把这一两个字段呢,直接退化到实时表当中,作为事时表当中是不是也可能包含我们这个纬度字段呀,对不对啊,那是维度维度,那度量的度量来自于哪儿,肯定来自于我们数仓当中事时表的的事实表当中,对不对,那就是谁,就是那个度量值呗,对不对,那度量值肯定来自于哪儿,肯定来事实表,它能来自于维度维度表吗?不能啊,所以这块儿呢,大家搞清楚这俩概念我们搞清楚就可以啊,好,这个不再多说。行,那维度呢,就是咱们分析数据这个角度啊,就是我们分组的字段,那度量值呢,就是被分析的指标,也就是聚合的字段啊啊,那这个就说完了啊啊,那基础概念咱们讲完了啊,在这里边我们重点啊去理解什么叫多维分析,叫什么叫做olp,然后呢,重点理解一下它这个所谓的数据集,多维数据集是什么东西啊啊这块应该大家已经没有啥疑问了啊,那我把视频录一下。
38:06
来,我把视频录一下。
我来说两句