00:00
再往下走呢,咱们来看下一个我们的个表演情对吧,这个表演器叫什么?这个表演情啊叫萨米tree啊叫sum tree,其实咱现在呢,你不管选择什么表的引擎对吧,那其实呢都是对吧,在我们这个啊,这个处理的时候啊,它其实都是相当于给我做些优化对吧,比如说我可以分区啊对吧,我可以对吧,这个加索引呢,对吧,我可以排序啊,我可以去重吗?对吧,到这三可以参加什么,那大家注意,如果说啊,你现在呢,把这数据保存到我们这个clean house里边了,对吧,那你保存之后呢,你只关心咱们按照某些维度来进行汇总对吧,而不关心我现在具体明细的情况下啊,比如说现在对吧想统计对吧某一部门对吧,然后呢,他员工的什么什么什么对吧,他的一个合计,对这个时候呢,我们不想显示咱部门的一些信息了,我只想显示诶部门的一些对吧,这个合计对吧,这个值但。
01:00
这个时候呢,你可以选择我们的发tree对吧,这个场景对吧,因为如果说啊,你现在要是普通的一个我墨tree的话,对吧,那他呢,会把咱们先啊这个具体的明细也给查出来,那这样的话呢,对吧,咱们其实我这个开销内存开销存不外开销还是比较大的,对吧?那如果使用我三维模式退的话,那么这时候呢,它可以节省我们现在它的一个存储开销,那具体怎么做的呢?对吧,它这里提供了一个预聚合的功能,那么具体怎么预聚合呢?咱们来看我们的案例啊,来演示一下,首先呢,咱们现在创建我这表,这个表呢叫sum tree,然后接下来在这里引擎改了,这个叫sum tree啊叫3TREE,到目前为止能接受几种引擎了,同学们。Memory monitor tree,然后呢,Replacing,然后对吧,是不是这些对吧?哎,那么咱们现在呢,在这里去把这引擎改一改,然后接下来这里还有一个什么呢?还有一个total amount,这个total amount是时候呢,对吧?来我也不知道,咱们一起来看来做总结,首先呢,那我现在啊,在这里把这个表创建一下,然后接下来向表中呢,去插入一些我测试数据啊,向表里边来插入一些我测试数据,对吧?然后接下来执行第一次查询selecting fromt order,然后呢,SMT来查询一下,那这个呢,其实我们现在是正常的,没有做什么咱们这个汇总对吧?那么如果说我现在想去做咱们这个汇总的话,它有个预聚合,那怎么做呢?把咱们现在呢这个操作指引下,Op啊,Math table key_order as,对吧,然后进来final啊进来final注意看,那么执行完毕之后呢,咱们现在再来查询。
02:44
对吧,来和上边做一个对比对吧,和咱上边呢做一个对比对看一看这个东西有什么不一样的地方对吧。一样的这个的。
03:06
啊,这个分区数据没变,但是呢,咱们现在这个分区是不是有102,还有SQ002,下面这个分区是不是也有啊,说明咱们现在呢,这个汇总啊,它也是以分区为单位的,对吧?它只会处理咱当前的分区的,然后接下来,那么咱们现在呢,在我这里边幺零啊幺,然后102这个102在咱们当前的分区里边,102和SQ002这三个数据是不是重复的,同学们都要重复的,那么如果重复的话,咱们现在呢,要想去统计,那么这个时候大家想一想,我们现在呢,在这里我们原来啊是去虫只以保留其中一个,但是呢,那我现在干什么了?我不是说多少这个驱重了,保留其中一个,我想做什么,我想做汇总,对吧,我想把咱们当前的这个分区中ID是多少多少,他说啊或者说啊,按照ID以及SQID来进行分组,然后求分组之后的一个累加和,那这个时候你看是不是按照咱现在ID和SQID来进行分组分组。
04:07
之后是不是取一个累加呀,对吧?那这里有一个问题对吧,那我现在这里面有三条记录对吧?在他这里边我呀有三条记录,那么你现在做累加的时候呢,你可以把这个ID给我展出来,SQID我展出来,因为这个是你在order y里面给我指定的字段,我要按照你给我指定这个字段来进行一个分组嘛,对吧?那么咱们现在分组之后,这个东西create time,大家想一想,它是不是没有指定啊,对吧?那么咱们现在呢,在咱们分组的时候也用不上它,那你说我现在一共三个这个cur time,我留谁呢?对,留留谁呢?对吧?那么这个时候咱们看一看对吧,它留的是这个11点,那如果留这个11点的话,那说明咱们现在应该不是最后一个吧,对吧?那它的规则什么样的,咱们来看结论。首先第一个对吧,那么咱们呢,对吧,只用它吧,按照指定列作为汇总对吧,那么咱们呢,对吧,在这里以order by它的列对吧作为标准来作为维度列,注意啊,就相当于你现在这里来进行分组了,作为维度列对吧,然后呢,可以填写多个列啊,就咱们现在在这里我的进行分组的时候,我不是创建咱们的表的时候,我指定了一个这个东西吗?对吧,叫sum me tree,我是不是按照咱们现在它的一个total amount来进行汇总量,你可以指定多个列啊,你可以在这里指定多个列,多个列,多个列对吧,但是呢,那么咱们这多个列的,那你必须是对吧,我们的一个可聚合的对吧,是数字列对吧,可预算的对吧,那么如果不填的话,它呢,会以所有的非维度列来进行一个我们的一个费这个汇总什么意思,比如说我现在呢,这里有咱们这个学生他的一个ID,对,然后呢名字,然后还有一个什么,还有一个是我们这个。
05:53
这个班级啊,还有一个班级,然后记得还有一个什么S扣分数的分数,那么这个时候呢,咱们现在在统计的时候,大家想一想,我假如说啊,我想按照咱们这个班级端来进行统计,那么这个时候咱们是不是应该是这样按照班级进行分组,然后取得这个分数啊,对吧?那我们现在呢,我如果使用我这肯定号的存储的话,那一般呢,这个东西,这个东西是我的维度列吗?不是吧,对吧?它是唯一标记的,一般我不写,我不保存的对吧?我不保存的,然后记得这名字呢,对吧,那我现在也不保存了,我只要什么呀,我只留我的维度里,比如只留我的班级对吧?那么咱们现在假如说0523班级这个好多学生分数拿过来了,那么咱们到时候再转,到时候再进行汇总的时候,是不是相当于对我的班级做个分组,然后把这些东西是不是都给展示出来了,做这个汇总展示出来了,然后进下来呢?如果说我现在有0621半径,那么这个时候把0621半径都要给展出来,对吧?所以说呢,咱们现在这里如果要使用我们这个三零模推的话,那大家知道按照谁来进行分组呢,对吧?
06:53
啊,按照咱order外地指定的维度列进行分组,那么咱们分组之后对谁做聚合呢?所有非维度列的数字字段它都会进行聚合,对吧?然后接下来,那么咱们现在呢?在我们这个聚合的时候,对吧?那么它肯定会舍弃一些电,那么它舍弃谁呢?对吧?那么咱们现在它是其他的列,按照插入顺序只保留第一行。
07:17
对吧,咱们把最早的给他保留一下,对吧,然后接下来他也只是在咱们这个分区内聚合,分区间呢,不会聚合对吧,那么开发的时候有一个建议,怎么建议的呢?对吧,说如果说我设计表的话,对吧,像什么唯一建值啊,流水号这些东西都给干掉,咱们保留所有字段全是咱们这个维度字段。啊,所有字段都是咱们一字字段短期我现在在在这里我保留什么呀,我保留全是维度字段对吧,比如说我现在这个是吧,这个班级的短,或者这个是学生的地区的对吧,那这块呢,对吧,这个是是是什么什么什么,咱全是维度字段短位性别对性别对吧,然后进来这里什么汇总值对吧,那么这个时候他会按照我现在这一字段对吧,来进行一个什么呢?来进行统计对吧?来进行统计对吧,那这里呢,说那我如果这样的话,我能不能这样呢?你现在就汇总了,汇总了那我能不能死在total month,然后从咱们这里边把谁呢,把我们现在这个这个汇总的值给查到,注意啊,这个时候你不能这么查,为什么呢?因为我现在要查的话,是不是有可能有些东西还没来得及聚合呀,对,就有可能我现在有些数据呢,还没来得及汇总,没来及聚合,对,还没有执行咱op,对,那这个时候呢,有可能你得不到这数据,对吧,所以说你要想查总和的话,那最好的方式还是什么呀?还是some是吧,还是some啊,这是关于我们这个sum tree啊sum tree这块。
08:40
对吧,把这块呢停一下。
我来说两句