Sorted streaming aggregate
数据库常见的聚合方法有 Hash 聚合和排序聚合。
从 2.5 版本开始,StarRocks 支持了有序的排序聚合 (Sorted streaming aggregate)。
原理
聚合节点主要处理 GROUP BY 分组和聚合函数计算。
Sorted streaming aggregate 可以根据输入 key 的有序性,通过直接比较 GROUP BY 列的方式直接进行分组,不需要构建 hash 表,可以有效的减少聚合计算中的内存使用。在聚合基数比较高的情况下,可以提升聚合性能,降低内存使用。
您可以通过设置变量来开启 Sorted streaming aggregate:
set enable_sort_aggregate=true;
使用限制
- StarRocks 存算分离集群不支持 sorted streaming aggregate。
- GROUP BY 里的 key 需要是做好排序的:
比如表的排序列是
k1,k2,k3