最近在研究 KYlin 优化的问题,想问个问题,Kylin中建Cube时使用了Mandatory Dimensions,Joint Dimensions时,比如有维度A、B、C、D,E 我建的维度是   Mandatory Dimensions 为 A,B,
Joint Dimensions 为C,D,E,我查询的sql是
1, select C, count(C) from tableinfo where A=1 AND B= 2 group by c
2, select D, count(D) from tableinfo where A=1 AND B= 2 group by D
2, select E, count(E) from tableinfo where A=1 AND B= 2 group by E这样能命中相应cuboid吗?或者有更好的推荐吗?(A,B一般都是写在where条件里,不放在group by后面)

解决方案 »

  1.   

    必要维度:
    用户有时会对某一个或几个维度特别感兴趣,所有的查询请求中都存在group by这个维度,那么这个维度就被称为必要维度,只有包含此维度的Cuboid会被生成(如图10)。假设维度A是必要维度,那么生成的Cube则如图所示,维度数目从16变为9。联合维度用户有时并不关心维度之间各种细节的组合方式,例如用户的查询语句中仅仅会出现group by A, B, C,而不会出现group by A, B或者group by C等等这些细化的维度组合。这一类问题就是联合维度所解决的问题。例如将维度A、B和C定义为联合维度,Kylin就仅仅会构建Cuboid ABC,而Cuboid AB、BC、A等等Cuboid都不会被生成。最终的Cube结果如图5所示,Cuboid数目从16减少到4。
    所以少年,修改你的定义把