00:00
呃,我们看这个咱的第这个3.5这一节,3.5这一节啊,那这边呢,讲的全是什么麒麟cube的构建优化。对吧,那其实这边讲的主要就是在我们使用这个麒麟去进行计算的时候。我们可以从哪些方面去给他进行一个一个一个优化。主要是这些东西啊,呃,那我们来看看这里边分了这样的几节,嗯,第一节呢是什么?呃,衍生维度。对吧,那这个颜色维度呢,在这我们可能同学啊,呃,就是说诶应该是有有有印象吧,这个dive dimension,这是在在什么时候,咱我们选择那个cube的时候,在构构建cube的时候,咱们选择维度的时候,是不是有一个这个什么衍生维度啊,对吧,是那块的东西,那一会咱们去讲它那下边还有一个聚合组。聚合组,那剧合组这个应该同学要是眼神比较好的话,应该也见过这个聚合组啊,应该也见过那下边诶rie的优化,那这个东西我们一会看看是怎么怎么个东西,然后下面呢,还有一个这个所谓的并发力度优化啊,那这又是什么呢?诶我们一会逐一的解释啊,那我们现在先从一个这个比较简单的地方来吧,先咱们先从3.3.5.2讲,咱们先讲这个聚合组,先讲它啊讲完它我们再去讲这个延伸维度。
01:17
先想去合组啊。OK,那大家来跟我一起看一下这个这个所谓的聚合组指的是什么啊?呃,英文是aggreg group。那聚合组在这呢,他写的是,呃,它是一种强大的减脂工具,那减脂什么意思,减脂减脂大家都知道,这个应该是我们这个,呃,这个园丁园丁干的一件事,对不对,那就是说如果树木有一些杂枝,我可以给他剪掉,就是没用的东西,我可他剪掉就剪枝,对不对?那这边这个麒麟这边这个所谓的剪枝指的是什么呢?其实他减的是啊,减的是咱们那个诶qbo。大家还记得qbo是啥吧?就是一种维度组合,是不是咱管它叫做一个q boy呀,对不对?那这个为什么要去剪掉一部分的qbo呢?为什么要剪它呢?我后续我不是还要用它吗?对吧?你剪了我怎么用对吧?可能同学会有这样的问题,呃,但其实这边呢,大家可能想的比较多,那其实有一些这个qbo我们可能后续根本就不会用到。
02:13
可能有一些根本不会用到啊,是这个,那呃,也就说这个聚合组呢,它是有意义的,它是有意义的啊,那呃,其次其实大家跟我想一想,就是这边咱们为什么要要要去减这个QBY的,你不用我给你算出来怎么了,对不对,刘总可能会这样想,那你想一想啊,咱们那个QBY的呢,它是一个他的那个计算公式什么样呢?是不是跟咱们那个维度是成指数这个增长的呀,对不对,那维度有两个可能二的二次方,咱们你看你算不算零维,如果算零维呢,你就减个一,不算你就不减,那不是咱不算零位啊,那就二的N是不是三个,那三个呢,二的,呃,三次方减一是七个,那我要二的十次方呢。这是多少了对不对,那你三到十看似没涨多少,但是实际上你后边Q8减了多少,二到十到多少,是不是1024啊,减个1023,那这样一下就涨了这么多,它的这个趋势呢,是这样一个指数级的增长的爆炸增长,也就那个爆炸增长是这么去涨的,那所以说你这个维度,那如果说那个20个维度哇,那就多少个了,那是不是它还得再来个平方相当于。
03:13
对不对,那就是八位数了,就八位数了啊,那所以说这个实际上呢,诶不是八位,是这个六位数,六位数应该是百万级了,百万级,那所以说这边呢,是非常非常这个q boy的个数是非常非常多的爆炸增长,那所以说那咱们如果说能够把一些没用的这个q boy给他减掉,那这样一来呢,会让我的这个计算量呢,会小很多,会小很多。对不对,那咱们怎么去把那些没用的这个,呃,这个维度组合给它剪掉呢?我们就可以使用这个聚合组,咱们就可以使用聚合组,那首先我们来看看这个所谓的聚合组到底是哪些,我们来看一下啊,看下边咱们先看这个第一个强制维度。什么叫做强制维度呢?呃,这里边儿有定义,有定义你不用看它,我们直接看下边PPT,你一看就明白了,来,咱们打开。
04:02
诶,我双击一下啊。看看什么叫强制维度,假如说咱们现在呃,定义Q的时候,我们选了三个维度,ABC3个,那这ABC呢,如果说我们这三个维度当中啊,咱们如果说有一个维度是什么呢?是我后期进行查询的时候,一定会选择的一个维度。对不对,我有一个维度,比如说有一个维度我一定会选它。我一定会选到,那这时候呢,你就可以把,比如说把A作为一个强制维度。因为可能有这样的需求啊,就是说如果说没有这个A,那我这个查询是没有意义的。如果有这样的需求,那OK,你就把这个A作为一个强制维度,那它作为强制维度之后有什么效果,来看一下,这是不使用强制维度,那我们三个维度是不是就ABABC,然后ABCAABCCAABC是不是用七种组合呀,对吧?那后边如果是使用A作为强制维度,那也就是说什么叫强制,就是必须得有它,没有它的就不要了,这个时候没不要这个不要,这个也不要,那我就能够把一部分这种没有意义的维度组合给它去掉,那这样一来,我们麒麟再去计算的时候呢,这些东西就不算了。
05:07
就不算了,只算这个有A的,那这个就是所谓的强制维度,就是他能够按照我们的这个意愿去把一些没用的维度组合给你去掉,就不算了,那这样一来能够减少这个计算量,加快这个Q的构建速度,这是呃第一种维度组合,那看下边,下边还有这个第二一个叫做这个层级维度,那层级维度是什么样的呢?我们打开这个PPT啊看一下。那同同理啊先呃这样吧,我先给大家解释一下什么叫做层级维度吧,层级维度什么叫层级维度?其实在我们这个说藏当中,我们其实有很多这种类似于这种的层级维度,比如说以谁为例,以咱们那个时间维度为例,以时间维度,那大家看一看我们时间维度表当中是不是有什么年月日对不对,是不是有这几个字段对吧,那它就是一个典型的层级维度,比如说年,然后杠月杠日对不对,这是层级,那还有什么是层级的呢?还有比如说咱们这个,呃,比如说这可能在咱们这个里边,可能,诶有也有也有啊呃,但是可能在咱们这这个数仓的这个里边体现的不明显啊,比如说咱们这个地区。
06:09
那地区啊,在这呢,我们的地区其实只有一个什么,呃,咱们的地区呢,其实只有一个这个,呃,一个region,还有一个province,对吧?但实际上如果地区要详细一点的话呢,我应该有什么,我应该有省,有市,有区,应该有省市区,它是不是也是一个典型的层级维度啊,也是一个层级维度,那还有什么呢?可能我们还有这个公司的部门有什么高一级部门,二级部门,三级部门,也是一层一层的这种层级的。这都是所谓的层级维度,那层级维度咱们这儿可以怎么去用它呢?来大家可以思考一个问题啊,你说我假如说有一个层级维度是省市区对不对,那我们后期去这个查数据的时候啊,你说我们这个维度组合应该都是什么样的?我应该要么就是诶有省有市有区,我去看一看,诶不同的区,我的这个比如说订单金额是什么样的,对不对,那要么就是什么,要么就是省加市。
07:01
要么就是省家市对不对,因为只有这样,我是不是才能去唯一标识出来你是哪一个省的哪一个市对不对,或者上面呢,你是哪一个省的,哪一个市的哪一个区对不对,是不是才能标注出来啊,因为如果说你要是单拿出来一个区的话,那会出现什么问题,会出现我不知道你这个区它是哪个省份的,那不同的省份,不同的市里是不是有可能会有相同的区名啊,那OK,你就会可能会重复。对不对,所以说只有这样你才能唯一标识一个区,那同理,只有加省加市,你才能唯一的标识一个市。那那那再往后呢,要么就是直接有一个省份,我省份是不可能重的啊,诶省份肯定是一样的,对不对,那所以说诶咱们这边呢,就是说我们对于这种层级维度啊,我们去呃干什么,我们去进行这个查询的时候呢,我们诶要么就是诶诶这个从高到低都有的,要么就是前两级,要么就是最高级,因为咱们应该是这样的一个使用方式。对吧,那我不会说出现一个什么单独的一个这个最低级的那个东西,或者单独出现一个中间级的这种东西,不会的,那所以说那对于这种不会使用的这种维度组合,咱是不是就可以想办法给它去掉啊,对吧?那怎么去掉,那就用这个层级维度去掉就行了。
08:13
来,那不使用层级维度,我们仍然是七种。那使用这个层级维度之后呢,效果是什么样的,大家看一下啊,那这边我们它是以谁作为层级层级了呀,是不是以AB的作为一个层级了呀,那A是高级,B是低级,那也就是说咱们后期会出现的维度组合心是谁?要么就是AB一起出现,要么就是只有A出现,B呢,它是不会单独出现的。对不对,那是这样的,那也就是说咱们这里边儿只要B单独出现了,那我就给它去掉就行了,对不对,那这个哪个里边B是单独出现了呢。哪个是单独出现了,这个是不是单独出现了,对不对,那这个叫不叫单独出现,问大家一下。这叫不叫?再有同学可能觉得他不叫单独路线。他可能会以为,诶,B和C这不一起出现的吗?对不对,那这里边咱们要要考虑一个问题啊,你这个AB是一个层级对比,它跟C有关系吗?跟谁没关系,这个AB单独不单独是跟谁比的,是跟A比的对不对?哎,所以说跟C没关系,所以这个呢,B也叫做单独出现对不对?那所以说这边我们去掉这个没用的组合之后呢,就只剩下这么几个了。
09:19
只下这么几个了,这就是所谓的层级维度,那如果说咱们在这个自己去定义cube的时候呢,有这种层级维度一定要给他指出来,那这样一来,他会把那些没用的那个维度组合他就不算了。是这样的啊,这是层级维度,好,它结束之后我们往下看,还剩下最后一个联合维度,联合维度,那什么叫做联合维度呢?我们往下看啊。来打开。OKABC,然后有什么有有ABC,然后有这个这个三个维度,如果不使用呢,还是七个对吧,不用多说,那如果说使用AB作为联合维度,那使用AB作为联合维度,那什么叫做联合维度呢?所以联合维度啊,就是说把两个或者是多个维度呢,给你联合成一个整体。
10:08
那多个维度我就当一个维度去算对不对,那既然它俩是一个整体了,那也就是说我在这个维度组合当中,要么AB同时出现,要么AB同时不出现,它俩是一个整体对不对?那这就是所谓的哎,联合维度来看一下最终的效果。效果就是这样的,那要么AB一起出现,要么AB都不出现,这就是所谓的联合维度,那联合维度有没有这个使用场景的,其实也有使用场景,那比如说啊,咱们以举一个这个例子吧,咱们举个例子,比如说咱们这有一个什么东西呢。比如说啊,咱们这有一个,我想一想啊,有一个什么东西,呃,以咱们那个订单的品类吧,咱们不是订单,以那个商品的品类为例,那我品类那边,我们比如说是不是有一个品,那个品类ID,还有一个品类名称对不对,那假如说我要把这俩维度都选上之后,那他俩实际上就可以作为一个强制维度。
11:01
他俩就可以作为一个强制维度。对不对,因为它俩呢,我我相当于什么,我相当于是这个,呃,相同的这个力度,也就它俩要么同时出现,要么同时不出现,诶是这样的,那这样一来,我其实就可以把它俩作为一个这个强制维度,是这样,它可以作为一个强制维度,是这样,有这样的这个需求啊,有这样的需求,那呃,这个就是咱们这个所谓的联合维度,不是强制,是联合,联合刚才说错了啊,这是口误,是联合,那也就是说大家把这个记住啊,就是后期如果说有某些维度,诶,我后期查询的时候,我一定会让他诶同时出现。一定会同时出现,那这时候呢,你就把它作为一个这种联合维度就可以了,就可以了啊这就是所谓的这个三种聚合组,三种聚合组,那我们现在呢,呃,讲完这三个聚合组之后呢,那原理很简单,我们已经明白了,那怎么去使用它呢?这个使用其实也比较简单,我们其实使用大部分都是在页面上去操作的啊,那这边咱们怎么使用,来点这个module.mole然后告诉大家咱们这怎么去诶这个使用怎么去使用咱们这个东西啊,怎么去使用,那现在呢,我们来点一下这个action.edit那这边呢,咱们点一下这个呃edit.edit然后我们往后看啊点。
12:08
nest.nest然后呢,再点这个呃,Nextest,再点这个nest。来大家看这个位置这边我们不是就来到了这个advanced setting这个地方了呀,咱们就来到这个位置了,那大家来看一下,在这个里边我们第一栏是不是就是什么aggregations啊。对不对,就是聚合组,那聚合组当中呢,我们,呃,首先这里边第一列这是什么呀?是呃一共有哪些维度,咱们一共选了四个,对不对,那下边呢,就是说mandatory dimensions mandatory就是强制的,那就是说谁是强制维度,你那你就给在里边选就行了。你就在里边选就行了,那后边呢,有一个这个,呃,Hi rocky dimensions hi rocky hiy什么意思,就是层级的意思,就是层级的意思啊,那也就是这边呢,你需要一个层级一个层级去添加,那比如说先添加一个层级,那点完这个之后呢,它会出来一个这个输入框,然后在输入框里边这个层级怎么定义啊,第一个选的是高级的,然后逗号第二一个低级的,然后逗号第下一个。
13:05
是这样的,然后呢,在这一个Q当中,我可以定义多个层级关系,也就下边呢,你还可以再新加一行加克里面呢,你可以加一个别的层级关系,比如什么呢?我这一行是年月日,我这一行呢是省市区,诶是可以加多个层级关系的啊好,这是这个层级关系,那下边呢,还有一个联合维度,联合维度那这个怎么做呢?也是跟层级是一样的啊,你需要先加一行,里边呢,把诶联合到一起的给它写上,那我可能AB需要联合到一起,那下边呢,我可能还要有一个CD要连一起,对不对,那你就再加一个联合关系,然后在里边选上CD就可以了。这就咱们这个所谓的聚合组的使用,诶,以及它的原理,那就就就完事了啊,当然去使用的时候呢,得结合咱们这个具体的业务去使用,就看你后期你查的时候到底怎么查得跟这个有关系啊好,那我现在把视频录一下。
我来说两句