Star-Tree
因此,当group by基数产生的行少于原始表时,多维数据集技术非常有效。
启用和禁用star-tree
启用star-tree:
示例
创建star-tree多维数据集:
CREATE CUBE nation_cube
WITH (AGGREGATIONS=(count(*), count(distinct regionkey), avg(nationkey), max(regionkey)),
format='orc', partitioned_by=ARRAY['nationkey']);
向多维数据集添加数据:
SELECT nationkey, avg(nationkey), max(regionkey) WHERE nationkey > 5 GROUP BY nationkey;
Star-tree聚合规则为迭代优化器,通过将原始聚合子树和原始表扫描替换为预聚合表扫描来优化逻辑计划。
依赖
Star-tree索引依赖于Hetu元存储来存储多维数据集相关的元数据。有关更多信息,请查看。
- Star-tree多维数据集仅在group by基数远低于源表中的行数时有效。
- 维护大型数据集的多维数据集需要大量的用户人力。