00:00
好了同学们,那我们这个学完这个延伸维度以后呢,我们再来看一下这个聚合组啊,这个聚合组也是咱们这个KLY在构建QB的时候的这么一个优化手段,那我们来看一下它能够优化啥啊,这一大段都是关于聚合组的一个定义,只不过这一块读完之后呢,大家还是不懂,那我就给你标标红了四个字,你给我明白,咱们这个聚合组是一个减值工具就可以了,那光这么讲大家肯定不懂,那我给你举个例子啊,大家看啊,我这一块我给大家写上这么一个数据,你就比如说咱们假设有一个abcd,就我有一个四个维度组合的这么一个Q补,那那你说我这个Q补应该有多少个q point呀,那我的abcd是吧,四个字母随机组合呗,大家看一下啊,首先我有一个abcd啊,这四个组合的,然后呢,我有一个ABC。然后呢,有一个abd,有一个ACD,然后呢,有一个BCD,有这么一个,有这四个三个组合的,然后我还有什么呀,我还有两个的,两个就比较多了,是不是有A啊AC啊,然后ad啊,还有呢,这个BC是吧B呃D最后还有一个CD,我我这个两两组合一共是六个,一共是六个这个这么这么这么这么这么组合,那最后呢,是不是还有这个abcd这么一维的呀,那那我们总共加起来是吧,是四加四。
01:21
然后加六再加一是不是一共15个,大家可以数一下啊,这四个加六个是十个,十个加四个是14个,最后加上这一个,一共15个个avoid,那这个就给他写一下这是什么呀?这个就是咱们这个,嗯。就是四个。啊,四种。维度。的随机组合啊,一共有。15种。啊,应该是一共一共有15个。Qvod。
02:00
Cuboidd是吧,一共有15个qbo的,那如果说你不设置任何的聚合组,那咱们将来这个Q补在构建的时候,它就会构建15个qbo的,这个咱们已经给他证明过了,怎么证明啊,你就比如说咱们这个second cube是吧,咱们这第二个cube,它是不是就是四个正常的维度啊,大家看这啊,大家看这个depends,我有四个正常的维度字段,那因此我最终的我这个plan就是15个qbo。大家通过这个你也能看出来吧,啊,通过这个南丁格尔玫瑰图,大家应该也能看出来,我确实是有四个维度,维度在这随地组合,我们最终得到了,最终得到了咱们这15个维度组合,就是15个,那大家这个时候思考一个问题,什么问题啊。咱们这15个QB,也就是15种随机组合,大家在查询的时候一定都会用得到吗?一定都会用得到吗?大家这个要好好体会体会,也就是也就比你就比如说啊,咱们这个A,你看是什么意思啊,A是job是吧,你这假设啊,假设咱们这个A。
03:07
嗯,假设咱们这样啊,给大家写一下啊。咱们这个A,假设A。A它等于这个就是那个job工作,那那那个维度,呃,B什么呀,B是这个,嗯。上司啊,Manager管理者,然后这个CC是这个dnac是这个DNA,就是那个部门名称啊,最后一个D是啥,D是不是一个这个叫。LC啊,位置啊,LC,你就比如说啊,咱们有这么一种组合假设啊,咱们什么组合,就咱们这个major。跟这个job就是AB这两个组合,他俩永远也不可能查询到,就是我永远也不可能按照你的每个人的工作,又按照你的每个人的上司给你group。那你会发现这个时候有有有这种情况,咱们有一些什么组合,就有有一些时候咱们这种所有的组合,它有一些是用不到的。
04:05
那那现在就明确告诉你们,咱们这个聚合组就可以把你用不到的这些组合给你剔除掉,因此咱们这个聚合组它称之为什么呀,它称之为减脂工具啊,那这样一来,大家应该就能理解咱们这个减脂工具是什么意思了。那你既然能够设置聚合组,那我能够减这个支,那我得总我我总得是不是有有有这么几种原则来减啊,那我得有哪些原则,咱们一共有三个原则。就是你可以通过设置这个维度的类型来控制咱们这些维度的组合,我哪些要,哪些不要,那最简单第一种就最简单一种就是强制维度,那怎么什么叫强制维度啊,就是如果一个维度被定义为了强制维度。那么好,那我就所有的q boy的那个维度,那个q boy的那个组合里边都得包含我这个维度,如果不包含,我得替掉。
05:07
或者剃掉。啊,就这意思,并且还有一一个啊,就是这个强制维度,他自己也不能单独出现,你就比如说。假设咱们有这个ABC3个维度,如果你不设置强制维度,大家知道是吧?二的三次方减一应该是七种,我有ABC,然后ABCBC还有ABC。一共这么七种组合,那如果这个时候我把这个A给你设置成了强制维度,按照第一个原则,什么原则?就是如果,如果这个维度设置成强制维度,那不包含我这个强制维度组合,我就得被踢掉了,你就比如说这个B我掉,这个C我得干掉。能理解吧,然后呢,我的这个BC我得干掉,那那接下来我是不是只剩这个AABCABC啊,那现在我就告诉你,它这个图也不对,因为经过我的测试,我发现一个原原则,什么原则,就是这个强制维度自己也不能单独出现,就是咱们的这个A它也没有了,因此他们最他最后的最后应该只剩下这三个维度组合。
06:18
就只剩下ABCABC了,本来是七个,一下子变成三个,你会发现咱们随便设置一下这个聚合组,它就可以大量的减少咱们这个q boy的个数。啊,那这个强制维度就讲到这儿,那再往下还有什么呀,还有一个层级维度。那什么叫层级维度啊,就给大家简单讲一下啊,就是什么年月日。年月日,什么省市区,省市区,像这些维度它都属于层级维度,就是我这些维度是在另外一个维度的层级之下的。这个能业吧,那这个层级维度它应该是按照什么逻辑来这个剔除啊,我简单设,简单给你讲一下,你假设我有ABC3个维度,如果不使用任何聚合组,那我一定是这七种,那现在呢,我把这个A,然后呢指向这个B,给你设置成了层级维度了,就是我这个B是属于A的下一个层级。
07:15
那就是什么意思啊。就是其实就是一句话来概括,就是有B必然得有A,就是这个B,它不能单独出现A可以你比如说我这个年月日是吧,年年年月日,就比如这个年个这个月。那就比如说你只按照这个月来统计没什么意义,就比如说我统计一下所有的二月没意义,咱们应该统计一下哪一年的二月,这个能理解吧,啊就是那就是我比如说我想统计一下二月下的这个订单金额,这一般一般没有人能统计,我应该统计一下2021年的,哎,二月下的这个订单金额,所以说咱们只要有月必须得有年,那因此按照按照这么一个逻辑是吧,按照这个A指向的B,就是B属于A的一个层级维度,那咱们应该怎么踢啊,首先B干掉。
08:00
然后呢,BC干掉。哎,别的没有了啊,就是咱们这个A能出现,因为我只有年可以,A可以,C也可以,为啥我既没A也没B是可以的,然后呢,AB也可以,ABC也可以,ABC也可以,那这样一来咱们就剩下这么。五个Q播了啊,这个就是层级维度,大家简单体会一下好吧,那最后呢,还有什么呀,还有一个联合维度。这个联合维度比这个层级维度它要求更严格,层级维度什么意思啊,属于这个这这个这个这个这个低层级的不能单独出现,但是我这个高层级的是可以单独出现的,但是一旦你设置成了联合维度,那这个联维度什么呀?就是要么一起出现,要么都不出现,就比如说我跟这个A跟这个B,我设置成一个联合维度。我A跟要有都有,要没有都没有,只他俩只出现任何一个是不允许存在的,那因此是吧,我这个ABCA就是我这七个维度,如果我把这个AB设置成联合维度了,首先我这个A得砍掉,B得砍掉,C可以有,然后AB可以有,AC砍掉,BC砍掉,我只留下一个cab,还有ABC。
09:09
那这个联合维度大家也也也简单了解一下好吧,就是我们可以通过这三种维度的组合来控制咱们这个聚合组,它的一个聚合规则啊,聚合规则,那明白了这个以后,那咱们在哪里来设置这个聚合组啊。就是我去我在哪里设这个规则啊,在咱们这个构建cube的高级设置里边,它第一个第一个选项就是这个orggregation groups这个东西就是聚合组,那我简单以这个什么呀,我简单啊以这个强制维度,咱们给大家演示一下。你就比如说大家看好了。我的这个secretary cube是吧,我没有设置任何聚合组,因此我最终有15个qbo一个,也就是说咱们图上画的这个,咱们这个有15个,那现在看好了同学们。
10:00
那我给大家写一下呗,现在怎么怎么怎么办,我就是把这个A我给你看好了啊,哎,应该是应该在这个位置啊,怎么怎么玩啊,就是。把。把A。啊,设置成。设置成强制维度,那咱们就开始往外剔除了,怎么剔除啊,那A既然成强制维度了,那就说明有A的我才要,没有A的我就不要了,因此啊,这个BCD我就干掉了。然后呢,然后这个ABCAD都要,然后BCBDCD我也干掉了,然后呢,这个BCD我也干掉了,你这么做完之后,是不是还剩几个,是不是还剩咱们这个一,然后四,然后七还剩八个,那现在我就告诉你还有一个原则,就是这个强制维度他自己也不能单独出现。啊,因此咱们下边这个A也就没了啊,把这个也干掉,那因此咱们咱们按照咱们这个理论捋完之后,它是不是如果你把这个A设成强制维度,咱们这个15个q point是不是应该只剩七个,那接下来就给它证明一下这个问题,怎么证明啊,咱们在这个second cube里边,咱们给它点上一个设置,点上这个edit修改怎么修改啊,你直接点点到这个高级设置里边。
11:19
在这个高级设置里边,咱们怎么做啊,看好了啊,这第一个就是聚合组,叫aggregation groups,首先你看一下这个地方就是强制维度,这个地方就是层级维度,这个地方就是联合维度。那现在我只设置一个,就比如说我随便找一个维度吧,我我我我我把这个低内我给您设置成强制维度,那因此也就什么意思啊,咱们必须得包含,就是假设啊,注意啊,我什么是A啊,Job是A好吧,那这样那我就把这个job,我就把这个job给你设置成强制维度。那然后你怎么做,然后你再给他点这个保存,咱们点下一步,然后点next呢,点这个保存,一旦你设置了一个维度为这个强制维度了,你再点开你这个secondary cube,你点开这个planner,你发现它的这个qboard,诶就变成了七个了,本来是15个给它变成了七个,正是因为咱们这个聚合组它生效了,他把那些不包含A的跟那个只有A的都给你干掉了,是吧,就比如说这个A心跟只有这么一个A的全部干掉了,踢走了,那因此我们就剩下这么七个维度了,那你说你说我是怎么发现这个强制维度不能再出现的,我们通过这个南京高尔玫瑰图,你发现他剃完之后,他已经没有最外圈的那个只有一个维度的了。
12:38
他你看第一圈这个最里边这一圈是四个一,就四个维度都有,那我第二圈是什么呀?是三个一,是三个维度的,那我第三圈是两个维度的,它第四圈的一个维度的没有了,因此咱们这个A也干掉了,A也干掉了,好吧,那这个聚合组就给大家讲到这儿,大家啊,在这个公司里边,如果使用K,你可以根据你们的需求来设置合理的聚合组。
13:03
只要这个聚合组设置的好,它能够大大的加快你这个Q5的构建速度,就是这个与与计算的速度会大大加快,好吧啊。
我来说两句