Apache Kylin入門必讀:怎么創(chuàng)建一個(gè)好Cube黍析?

作者|張逸凡

編輯| Sammi

對Apache Kylin的用戶而言,如何設(shè)計(jì)并構(gòu)建滿足業(yè)務(wù)分析場景的Cube键思,是使用Kylin的基本要求础爬。KyBot作為在線診斷、優(yōu)化及服務(wù)的平臺(tái)吼鳞,通過分析整合Kylin的日志等信息看蚜,為用戶提供可視化儀表盤、系統(tǒng)優(yōu)化赔桌、故障排查供炎、技術(shù)支持等服務(wù),大大降低了Kylin的維護(hù)成本疾党。

本文將介紹KyBot的評分系統(tǒng)音诫,幫助用戶調(diào)優(yōu)出一個(gè)建立高效可用的Kylin Cube

Cube是OLAP系統(tǒng)用于數(shù)據(jù)索引雪位、預(yù)計(jì)算的關(guān)鍵概念竭钝。對Apache Kylin的用戶而言,如何設(shè)計(jì)并構(gòu)建滿足業(yè)務(wù)分析場景的Cube雹洗,是使用Kylin的基本要求香罐。隨著業(yè)務(wù)場景和數(shù)據(jù)特征的演變,用戶可能發(fā)現(xiàn)最初設(shè)計(jì)的Cube在查詢性能方面開始降低队伟;或者在一些建模場景下穴吹,由于復(fù)雜查詢業(yè)務(wù)的需要,使得Cube的膨脹率變得很大嗜侮,而這些問題港令,都可以通過對Cube調(diào)優(yōu)來解決啥容。

對Kylin進(jìn)行深度調(diào)優(yōu),不僅需要對Kylin的運(yùn)行機(jī)制有深入的了解顷霹,更需要多種系統(tǒng)運(yùn)行狀態(tài)統(tǒng)計(jì)特征配合分析Cuboid和RowKey的使用情況咪惠,從歷史查詢模式中找到系統(tǒng)的瓶頸和優(yōu)化的方向。Kyligence公司為解決Kylin的有效運(yùn)維問題淋淀,設(shè)計(jì)了KyBot在線服務(wù)遥昧,提供了相關(guān)分析工具,這些工具將極大簡化上述問題朵纷。KyBot作為在線診斷炭臭、優(yōu)化及服務(wù)的平臺(tái),通過分析整合Kylin的日志等信息袍辞,為用戶提供可視化儀表盤鞋仍、系統(tǒng)優(yōu)化、故障排查搅吁、技術(shù)支持等服務(wù)威创,大大降低了Kylin的維護(hù)成本。

本文將介紹KyBot的評分系統(tǒng)谎懦,幫助用戶調(diào)優(yōu)出一個(gè)建立高效可用的Kylin Cube肚豺。

進(jìn)入KyBot的Cube調(diào)優(yōu)頁面,首先是Cube診斷報(bào)告界拦,評分欄中的5維雷達(dá)圖及各個(gè)評分項(xiàng)為Cube健康度給出了打分吸申, 通常來說分?jǐn)?shù)越高,Cube越“健康”享甸。

如圖所示呛谜,五個(gè)維指標(biāo)分別對應(yīng)為:

查詢性能:評價(jià)當(dāng)前Cube的查詢效率,用戶需求的重要參考因素之一枪萄,主要因子為查詢時(shí)間中間數(shù)等。

使用率:評價(jià)當(dāng)前Cube的訪問熱度猫妙,基于用戶的查詢行為統(tǒng)計(jì)瓷翻,主要因子為訪問此Cube 的查詢占總查詢訪問數(shù)量的比重。

膨脹倍數(shù):評價(jià)當(dāng)前Cube的膨脹率割坠,存儲(chǔ)和構(gòu)建方面需要關(guān)注的因素齐帚,主要因子為Cube數(shù)據(jù)存儲(chǔ)空間。

構(gòu)建性能:評價(jià)Cube的構(gòu)建時(shí)間彼哼,也從側(cè)面體現(xiàn)了設(shè)計(jì)的合理性对妄,有時(shí)構(gòu)建時(shí)間過長也是用戶的痛點(diǎn)之一。

模型設(shè)計(jì):評價(jià)使用角度下的Cube設(shè)計(jì)敢朱,結(jié)合查詢使用記錄的綜合指標(biāo)剪菱,主要因子為Row Key使用情況摩瞎、Cuboid重合率,Cuboid匹配率等指標(biāo)孝常。

例如旗们,圖中的Cube“模型設(shè)計(jì)”得分較低,同時(shí)下方也提供了優(yōu)化建議來提醒用戶“模型設(shè)計(jì):? Cube設(shè)計(jì)不合理构灸,會(huì)對構(gòu)建和查詢都造成影響上渴,建議進(jìn)行調(diào)優(yōu)”。這樣我們便從前文介紹的影響因素入手喜颁。

我們在Cube詳細(xì)頁面中瀏覽層級信息稠氮,展開查看Cuboid樹下第一層級的8個(gè)子結(jié)點(diǎn)凫乖,發(fā)現(xiàn)有6個(gè)結(jié)點(diǎn)的重合率超過了98%秩仆,比如第一個(gè)Cuboid (id=7679,二進(jìn)制表達(dá)為“1 1101 1111 1111”)援岩,和父節(jié)點(diǎn)相差YYYY和YYYYMM兩列稿茉,但重合率達(dá)98%锹锰,且行數(shù)超過了1千萬條。 這樣的結(jié)果便是Cube的膨脹率偏高漓库,同時(shí)查詢效率也會(huì)偏慢恃慧。

通過查看各個(gè)維度的詳細(xì)信息, 不難發(fā)現(xiàn)渺蒿,該Cuboid排除的維度基數(shù)非常的低痢士,YYYY和YYYYMM兩列雖然已是層級維度,但兩個(gè)維度的基數(shù)都很低茂装,即使設(shè)成層級維度也會(huì)帶來很大的Cuboid重合度怠蹂。

同樣的情況也出現(xiàn)在CATA1_ID和CATA2_ID組合中,這里可以考慮將他們(YYYY, YYYYMM, CATA1_ID和CATA2_ID)合并為一個(gè)聯(lián)合維度少态。

還有多個(gè)低基數(shù)列(LOCATION, TYPE和PIPE_ID)也有重合率高的問題城侧,且沒有也沒有任何聚合組設(shè)置,同樣地彼妻,也應(yīng)進(jìn)行聯(lián)合維度合并嫌佑。

這樣在大大減少Cube復(fù)雜度(28=>25)的前提下,有效地降低重合率侨歉,同時(shí)每個(gè)Cuboid本身也不會(huì)變得太臃腫屋摇,保證了查詢性能。

同時(shí)幽邓,還有一個(gè)高基數(shù)列WORKER_ID被作為了必要維度炮温,導(dǎo)致所有Cuboid都很大,可能造成不包含這一維度的查詢性能較差牵舵,所以設(shè)置必要維度時(shí)必須要謹(jǐn)慎柒啤。

基于以上發(fā)現(xiàn)倦挂,我們就能很快地找到影響評價(jià)的原因。

那么是否每個(gè)cube的調(diào)優(yōu)目標(biāo)就是將評分雷達(dá)圖上的5維提高作為最終目標(biāo)呢白修。其實(shí)不然妒峦,首先,每個(gè)因素看似獨(dú)立兵睛,但是實(shí)際上相互影響著肯骇,比如提高查詢效率可能伴隨著構(gòu)建Cube成本的提高。

優(yōu)化的目的也是取決于用戶真正的需求祖很,比如上文中的必要維度設(shè)置會(huì)對部分查詢性能有影響笛丙,在用戶的查詢需求中很少遇到這些查詢 ,而且最需要的訴求是降低膨脹率假颇,大可以保留這個(gè)必要維度胚鸯。Cube優(yōu)化的策略應(yīng)該隨實(shí)際需求傾斜,比如在Cube構(gòu)建速度可以接受的情況下笨鸡,希望更多地提高查詢效率姜钳,相應(yīng)地以稍高的膨脹率為代價(jià)有時(shí)也能被接受。

反過來說形耗,即使是“滿分”的Cube哥桥,也并不是表示優(yōu)化已經(jīng)到了極致,打分項(xiàng)也均為參考值激涤,高分項(xiàng)也只是說明目前優(yōu)化的余地相對少一些拟糕,如果仍然有調(diào)整的需求,繼續(xù)優(yōu)化也是可行的倦踢。

Cube的評分雖然會(huì)隨業(yè)務(wù)發(fā)展而變動(dòng)送滞,而Cube調(diào)優(yōu)就是不斷保證Cube性能的有效手段。真正完美的Cube并不存在辱挥,設(shè)置該評分系統(tǒng)也是為了給用戶提供直觀的優(yōu)化建議和參考思路犁嗅。

作者:

Yifan Zhang(張逸凡)高級軟件工程師@Kyligence,專注于大數(shù)據(jù)平臺(tái)晤碘,物聯(lián)網(wǎng)和實(shí)時(shí)數(shù)據(jù)分析愧哟。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市哼蛆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌霞赫,老刑警劉巖腮介,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異端衰,居然都是意外死亡叠洗,警方通過查閱死者的電腦和手機(jī)甘改,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來灭抑,“玉大人十艾,你說我怎么就攤上這事√诮冢” “怎么了忘嫉?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長案腺。 經(jīng)常有香客問我庆冕,道長,這世上最難降的妖魔是什么劈榨? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任访递,我火速辦了婚禮,結(jié)果婚禮上同辣,老公的妹妹穿的比我還像新娘拷姿。我一直安慰自己,他們只是感情好旱函,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布响巢。 她就那樣靜靜地躺著,像睡著了一般陡舅。 火紅的嫁衣襯著肌膚如雪抵乓。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天靶衍,我揣著相機(jī)與錄音灾炭,去河邊找鬼。 笑死颅眶,一個(gè)胖子當(dāng)著我的面吹牛蜈出,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播涛酗,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼铡原,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了商叹?” 一聲冷哼從身側(cè)響起燕刻,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎剖笙,沒想到半個(gè)月后卵洗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡弥咪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年过蹂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了十绑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,567評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡酷勺,死狀恐怖本橙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情脆诉,我是刑警寧澤甚亭,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站库说,受9級特大地震影響狂鞋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜潜的,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一骚揍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧啰挪,春花似錦信不、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至锰什,卻和暖如春下硕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背汁胆。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工梭姓, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人嫩码。 一個(gè)月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓誉尖,卻偏偏與公主長得像,于是被迫代替她去往敵國和親铸题。 傳聞我的和親對象是個(gè)殘疾皇子铡恕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 前言 Apache Kylin采用“預(yù)計(jì)算”的模式,用戶只需要提前定義好查詢維度丢间,Kylin將幫助我們進(jìn)行計(jì)算探熔,并...
    叫我不矜持閱讀 2,884評論 0 7
  • KYLIN是什么? 上古神獸烘挫,直接上圖 - 可擴(kuò)展超快OLAP引擎: Kylin是為減少在Hadoop上百億規(guī)模數(shù)...
    老鯧魚閱讀 2,576評論 0 3
  • 用戶視角 你是否面對海量數(shù)據(jù)查詢緩慢而備受煎熬 祭刚?受限于查詢速度而只能屈服于數(shù)據(jù)量?想在同一個(gè)分析工具下分析不同來...
    云大數(shù)據(jù)社區(qū)閱讀 2,110評論 0 1
  • “麒麟出沒,必有祥瑞涡驮。”—— 中國古諺語 前言 隨著移動(dòng)互聯(lián)網(wǎng)喜滨、物聯(lián)網(wǎng)等技術(shù)的發(fā)展捉捅,近些年人類所積累的數(shù)據(jù)正在呈爆...
    柴詩雨閱讀 32,758評論 12 86
  • 一、設(shè)備 在Linux中虽风,一切皆“文件”棒口。 設(shè)備分為:塊設(shè)備(b):block,塊文件存儲(chǔ)辜膝,例如磁盤;字符設(shè)備(c...
    AmenSun閱讀 386評論 0 0