Kylin#KYLIN 聚合组沉淀

随着维度数目的增加,Cuboid 的数量会爆炸式地增长。为了缓解 Cube 的构建压力,Apache Kylin 引入了一系列的高级设置,帮助用户筛选出真正需要的 Cuboid,Aggregation Group就是其中非常重要的设置:用户根据自己关注的维度组合,可以划分出自己关注的组合大类,用户关心的聚合组之间可能包含相同的维度,但是Cuboid不会被重复生成,一份 Cuboid 为这些聚合组所共有

Aggregation Group要基于业务的沉淀,来设计多个Aggregation Group,这是数据治理的内容
在实践中我的做法是短期构建和长期构建,对于短期来说对于同一张表构建1-3个cube来分散Cuboid的构建数量压力,对于长期构建也是不断迭代的,试图使用一个cube来链接所有的业务需求保证较低的膨胀率
对于长期构建我维护了一张关于业务SQL的记录页面,这样可以非常清晰的知道业务需求如何使用这张表的,我维护的内容大致有:table,kylin&port,port(接口),dimension(group by的维度),Compulsory dimension(where中的常用维度,一般设计为强制维度),之后基于这份记录构建我们所需要的cube

对于构建cube中遇到的问题,就是聚合组之间可能包含相同的维度,这里一般我是设计为层次维度的,把一般通用的维度设计为层次维度,虽然这样也会产生多余的Cuboid,但是我暂时没有什么好的方法,还有一个问题是关于强制维度应该设置为多少个恰当,Aggregation Group的设计中心就是业务隔离,但是业务并不能真正的隔离,但是只要比之前的好就是不错的cube了,如果没有满足其他的需求就要进行一些迭代工作

你可能感兴趣的:(Kylin#KYLIN 聚合组沉淀)