Apache Kylin 優化指南

2021-09-19 11:35:56 字數 2049 閱讀 2618

如果不進行任何維度優化,直接將所有的維度放在乙個聚集組裡,kylin將會計算所有的維度組合(cuboid)。比如,有12個維度,kylin 就計算2的12次方即4096個cuboid,實際查詢可能用不到cuboid 不到1000個,甚至更少。如果進行圍堵優化,會造成集群計算和儲存資源的浪費,也會影響cube的build和查詢效能。

當你儲存的cube時遇到下面的異常資訊時,意味著乙個聚合組已經大於4096,你就必須進行維度優化了。

當有層次維度時,公式如下:

(hierarchy.size()+1) * hierarchydimslist.size() * (1 << jointdimslist.size()) * (1 << normaldims.size())

當沒有層次維度時,公式如下:

(1 << jointdimslist.size()) * (1 << normaldims.size())

確認你設定的cube維度都是你查詢時用到的。

維度優化手段

聚合組聚合組:用來控制那些cuboid 需要計算

適用場景: 不是只需要計算base cuboid 的情況下,都需要聚合組。

注意事項:乙個維度可以出現在多個聚合組中,但是build 期間只會計算一次。

衍生維度

衍生維度:維度中可以由主鍵匯出的維度作為衍生維度。

使用場景:以星型模型接入時。例如使用者維度表可以從userid 推導出使用者的姓名,年齡,性別。

優化效果:維度表的n個維度組合成的cuboid個數會從2的n次方為2

mandatory維度

強制維度: 所有cuboid必須包含的維度,不會計算不包含cuboi。

適用場景:可以將確定在查詢時一定會使用的維度設定為強制維度,例如,時間維度

優化效果:將乙個維度設定為強制維度,則cuboid 個數系那個直接減半。

hierachy維度

層次維度:具有一定的層次關係的維度

使用場景:像 年,月,日;國家,省份,城市 這類具有層次關係的維度。

優化效果: 將n個維度設定為層次維度,則這n個維度組合成的cuboid 個數會從2的n次方減少到n+1。

joint維度

聯合維度:將幾個維度視為乙個維度

使用場景: 1 可以將確定在查詢時一定會同時使用的幾個維度設為乙個聯合維度。

​ 2 可以將基數很小的幾個維度設為乙個聯合維度。

​ 3 可以將查詢時很少使用的幾個維度設為乙個聯合維度。

優化效果:將n個維度設定為聯合維度,則這n個維度組合成的cuboid個數會從2的n次方減少到1。

extended column

在olap分析場景中,經常對某個id 進行過濾,但查詢結果要展示為name的情況,比如user_id 和 user_name。

這類問題的三種解決方式:

a. 將id和name 都設定為維度,查詢語句類似select name, count(*) from table where id = 1 group by id,name。這種方式的問題是會導致維度增多,導致預計算結果膨脹;

b. 將id 和name 都設定為維度,並且將兩者聯合。這種方式的好處是保持維度組合不會增加,但是限制了維度的其他優化,比如id 不能在設定為強制維度活著是層次維度;

c. 將id 設定為維度,name設定為特殊的measure,型別為extended column。這種方式既能保證過濾id且查詢name的需求。

所以此類需求我們推薦使用 extended column。

使用KyBot優化Apache Kylin儲存

spring cloud 實戰 乾貨 mybatis 實戰 乾貨 spring boot 實戰 乾貨 react 入門實戰 乾貨 構建中小型網際網路企業架構 乾貨 python 學習持續更新 elasticsearch 筆記 kafka storm 實戰 乾貨 cube資料 即預計算的結果 預設儲存...

Apache Kylin查詢效能優化

apache kylin 是乙個開源的分布式分析引擎,提供hadoop之上的sql查詢介面及多維分析 olap 能力以支援超大規模資料,最初由ebay inc.開發並貢獻至開源社群,可在亞秒內查詢巨大的hive表。在apache kylin的實際部署過程中,sql查詢有時並不能如預期在很短的時間內完...

APACHE KYLIN簡單介紹

apache kylin 概覽 apache kylin 是乙個開源的分布式分析引擎,提供hadoop之上的sql查詢介面及多維分析 olap 能力以支援超大規模資料,最初由ebay inc.開發並貢獻至開源社群。它能在亞秒內查詢巨大的hive表。kylin是什麼?可擴充套件超快olap引擎 kyl...