00:00
好,那接下来呢,我们看第二一个这个优化的手段啊,叫做聚合组aggregation group,其实这个aggregation group呢,我们之前也见过了啊,大家还记得在哪见过吗?切,在哪见过呀,我们在这个advance s这个位置是不是见过呀,来看这是不是就有这个聚合组啊,对不对,那什么叫聚合组呢?在这里边也是有一大堆的这个也是有一大堆的这个,呃,文字描述,那在这呢,我们也不看啊,我们就其实可以只看一句啊,来看一下这句就行了,什么意思啊,聚合组是一种强大的减脂工具。哎,减脂,什么叫减脂。那剪枝如如果说我们按它的本意去理解的话,那是不是就是比如说园丁对吧,去把那个呃,花花草草那个没用的枝干给它剪掉,是不是就剪枝啊,对吧?啊就这个意思啊,那对于我们这个麒麟来说,你说这个减枝减的是什么呀?剪的是什么呀?哎,他这个对这个减脂呢,它减掉的是那些没有意义的维度组合。
01:01
啊,是没有意义的维度组合啊,什么意思啊,就是按照麒麟的这个原理来看啊,那他为了保证我们后续查询的时候,不管查什么我都能查到结果,对吧?他会怎么做呀,他是不是会穷举所有的情况去进行聚合计算,对不对,去穷举所有的维度组合进行计算,但其实哎,真实的这个环境下呢,有些维度组合根本就没有意义,我根本就不会去按照这个维度组合进去进行分组统计,那这样一来,这些计算是不是就白白浪费了呀,对吧?那咱们这个聚合组呢,就是为了把这些没有意义的维度组合去给它减掉,就这个意思啊,这就是聚合组啊,OK,那从这个呃,它的作用上来看,我们应该能想到它优化的应该是什么,优化的不是也是计算对不对,是不是也是计算呀?啊OK,那接着往下走啊,那这个聚合组呢,一共有三种啊,分别是强制维度啊,再往下走层级维度,还有这个联合维度,哎,那我们一个一个看啊,先看第一个,第一个呢叫做强制维度,强制维度怎么理解呢?我们来看一下。
02:01
好,那假如现在呢,我们构建的cub当中有ABC3个维度,假如有三个维度啊,OK,我们往下走,假如说我们现在不使用强制维度,你说不使用强制维度,我们这应该一共有几种维度组合呀,2.3次风险一等于七,对吧,应该是,呃,什么呀,分别是AB CA CA CAC,没错吧,是这种,那假如说我现在使用A作为强制维度,那什么叫做强制维度啊?就是说维度组合当中必须得包含A这个维度才行啊,不包含它就没有意义,对不对,那这时候呢,我我是不是会把某些维度组合给它去掉啊,对吧,留下的是不是只有这几个啊,是这样的啊,OK,那这就是所谓的强制维度,OK啊,那什么情况下咱们使用强制维度呢?假如说诶,我后续会有一个分析,那这个分析当中,我不管是按谁分组,都必须会按照这个A字段进行分组,那这时候咱是不是就会将A作为一个强制维度啊,就这个意思,OK啊,那当然这个呢得是具体的业务而定了啊啊,这就是强制维度,那接下来再往下走下一个层级维度。
03:07
来看这个层级维度啊,那同样的道理啊,假如说还是有ABC3个维度,如果不使用层级维度,那是不是还是有七种组合,就是这七种对不对啊,那OK,那如果使用AB作为层级维度,那这个层级维度怎么理解?啊,在这儿呢,我先给大家把这个层级维度的概念说一下啊,那我举一个大家那个生活当中比较常见的一个例子啊,比如说我们时间时间啊,时间是不是有年月日有十分表对不对?那现在呢,我们重点说一个年月日啊,年日,假如说我们的时间维度表当中就有年月日这样的三个字段,那咱们是不是就有啊,对吧?啊年月日,比如说Y,然后M,然后D啊那你说这三个维度字段,我进行这个随机的组合,你说我能有几种情况啊,是不是理论上应该是七种。是,是这个道理吧,但你说这七个组合它全是有意义的吗?
04:00
对于年月日来说,是不是是不是全都有意义的,不是啊,只有什么样的是有意义的,比如说咱们捋一下啊,比如说我现在想精确到某一天,想精确到某一天,你应该怎么精确,只有一个地购吗?显然是不够,你得有谁,你得有Y,得有M,你得告诉我你是哪一年哪一个月哪一天才行,这是不是才能精确的指明某一天对不对,那同理月份呢?你比如说月份,那月份是不是也得精确到什么呀?诶哪一年的哪个月才行,对不对,你光有一个月,你也不知道到底是哪一年的,对不对啊这个诶得注意一下,那同理,年年当然就只需要一个年,是不是就够了呀,对吧,是这样的啊,那也就是说对于这三个字来说,其实只有这三个组合它是有意义的。啊,对吧,你比如说我单拿出来一个啊,比如说拿一个Y拿一个D,这是不是也是一个组合呀,这个组合有意义吗?没意义,比如说2020年五日,这个听起来就很尴尬,就就会滑稽,对吧?所以这个呢,没有啥没有啥没有啥意义啊是这样的,那对于这种没有意义的维度组合,我们就可以不去不去计算了,反正你计算了之后我也不会去查的啊所以说呢,诶,这就是咱们所谓的层级维度啊,那当然呢,类似的层级维度还有很多啊,你比如说呃,咱们的地区省市区,这是不是也是层级维度啊,对吧?啊,那再比如说咱们这个公司里边的部门,一级部门,二级部门,三级部门,这是不是都是典型的层级维度啊,是这样的啊OK啊那OK,那现在呢,我们再回到咱们这个PPT上面啊,他说使用AB作为层级维度,使用AB层作为层级维度,那你说我们最终的结果当中,对于AB来说应该只有哪些组合?
05:34
是不是应该是只有AB或者是A呀,对吧,是这样的吧,这个B是不能单独出现的吧,啊就好比什么,就好比我们刚才说到的这个,哎,年月日里边这个,比如说D是不能单独出现的,对不对,这种层级维度只能怎么出现?是不是只能从从高从高级到低级这样逐次的递减才可以,对吧,你不能跳啊,能理解吧,这个要理解一下啊,那所以对于AB这个层级来说啊,能出现的只有AB或者是A啊,OK啊,那所以说我们最终的结果里边应该包含谁啊。
06:07
是不是这几个。看看是不是这么回事啊,首先这个B为什么不能要,B是不是单独出现了呀,对吧,这个不能要啊,那会说这个,诶这个为什么也不能要。这个B,刚才咱们说的B是不能单独出现的,对不对,但这个B它这个也没有单独出现,是不是还有一个C,但在我刚才说的这个B不能单独出现,是针对于谁来说的,是针于A来说的,对不对啊,实际上C属于这个层级吗?C是不属于的,所以C无所谓啊,对吧?啊,这个大家理解一下,所以最终呢,我们去掉的维度组合了,就这两个,哎,这就是所谓的层级维度啊好,那现在我们再要看看啊,下一个呢,是这个联合维度啊,联合维度我们来看一下联合维度。点开这个PPT啊,那还是假定有三个维度,如果不使用聚合组啊,那咱们得到的是不是还是这七个组合对吧?那现在如果我们将AB作为联合维度啊,AB作为联合维度啥意思?什么叫联合维度?这其实很简单,所谓的联合维度呢,就是将这两个维度视作一个整体啊,要么同时出现,要么同时不出现啊这个大家应该能理解的对吧?OK,好,那所以说我们最终的结果当中,哎,是不是就只剩下这样的几个维度了呀,对吧?啊,OK,那这就是所谓的联合维度啊,那这个什么时候使用联合维度呢?啊,这个当然也得是具体的业务而定了啊,得看咱们具体的需求了,是这样的啊OK,好,那这就是联合维度啊,啊,那三个聚合组我们就都讲完了啊,那现在我们总结一下这个聚合组它的意义是什么?聚合组的意义就是通过我们是不是构建cube的时候一个定义去干啥,去把那些没有意义的维度组合给它去掉,对吧,去掉。
07:47
之后呢,我我是不是就不会再计算了,对吧?啊是这样的,这样一来就能够减少计算量,加快计算速度啊OK,那咱们讲了这么多啊,这个聚合组到底怎么配呢?到底怎么用啊,啊怎么用是不是就是打开咱们的外B界面,然后呢,你在构建cube的时候的第五步对吧?也就这个advance setting里边的第一条就是这个聚合组对吧?在这儿去配置聚合组,那具体怎么配啊,咱们简单看一下。
08:11
来咱们看一下,那这里边是不是一共有四行对吧?第一行啥是include include就包含对吧,后边是它包含的所有维度,诶大家注意观察啊,你看咱们现在这个Q包含的所有维度都是啥。是不是都是事实表当中的这个维度外界啊,对吧,哎,这是咋回事。诶,这个cube是哪个cube,这个cube是我们刚刚创建的那个使用衍生维度的cube吧,对不对啊,那这是不是正好验证验证了我们刚才那个说法对吧?使用衍生维度最终参与计算的维度是哪?是事实表当中的那些维度外建对吧?啊,这个大家理解一下就行了啊啊,那当然咱们现在的重点不是这个,我们重点应该是啥?哎,是这个聚合组怎么用对吧?那我们来看一下,哎,看第二行,第二行叫什么,是不是mandatory dimension啊对吧?这个mandator是不是就是强制维度的意思,这是强制的意思啊,OK,那怎么去选,很简单,你就点就行了啊,比如说它是一个强制维度,那我就给他选过来啊,那比如说这个呢,也是一个强制维度,我也给他选过来,那这样一来是不是咱们就有多个强制维度了呀,对吧?OK啊,那这个理解一下,好,我们再请下头,那再往下这这儿啊是不是hi rocky dimension呀,对吧?这是不是就是衍生维度,呃这呃呃不是衍生维度,这这什么来着,那个层级维度对吧?层级维度,那层级维度怎么添加。
09:27
很简单,后边是不是有一个新建,新建一个层级对不对,那注意啊,我下面是不还可以再点对不对,那你说这块我应该怎么填。假如说我现在呢,有一个年月日,你说我这应该怎么选,我是在同一行里边去选这个年,这个月,还有这个日,我还是说怎么办,还是说在这个下边呢,第一行选年,第二行选月,第三行选日,应该怎么选呀,应该在同一行里边选啊,同一行里边选年月日,OK,诶那同学可能会纳闷了,你下面为什么还有一个按钮呢,为什么还能点呢?这是啥意思啊?
10:00
就是我可以有多个层级关系,对吧,我是不是可以有年月日,我还可以再来一个十分秒啊呃,这个省市区啊,对吧,能能理解吧,那所以说我一行就是一个层级关系,这个大家理解一下啊好,我们再往下走,下面是不是有个所谓的joint dimension啊对吧,这就啥,是不是这个联合维度对不对,那这个怎么填同样啊,那我比如说他俩哎是一个联合维度,OK,那我我是不是还可以再建一个联合关系,就这就这个意思啊,OK啊好,那现在呢,这个聚合组怎么用啊,就给大家说完了,OK啊,那我现在问一下大家,来咱们区分一下这个和这个。你说它俩有啥区别,Mandatory dimension是什么来着,是强制维度对不对,那我在这选两个,哎,维度之后啊,那你说它会呃,有什么样的一个效果呀。是必须得有这两个对吧,那我下面这个呢。呃,下边这个呢,是可以同时出现,也可以怎么样同时不出现对吧,这俩是有区别的对吧?啊这个大家要体会一下啊,要体会一下OK啊好,那这就是咱们这个聚合组的全部内容,咱就讲完了啊好,那现在呢,我把这个视频呢给他听一下。
我来说两句