最近在研究 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后面)
uj5u.com熱心網友回復:
必要維度:用戶有時會對某一個或幾個維度特別感興趣,所有的查詢請求中都存在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。

所以少年,修改你的定義把
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/47517.html
標籤:Spark
上一篇:[譯]C# 7系列,Part 8: in Parameters in引數
下一篇:虛擬化小白求大神指點!
