成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Apache Kylin優化–高級設置:聚合組(Aggregation Group)原理解析

大數據
“隨著維度數目的增加,Cuboid 的數量會爆炸式地增長。為了緩解 Cube 的構建壓力,Apache Kylin 引入了一系列的高級設置,幫助用戶篩選出真正需要的 Cuboid。這些高級設置包括聚合組(Aggregation Group)、聯合維度(Joint Dimension)、層級維度(Hierachy Dimension)和必要維度(Mandatory Dimension)等。”

[[188106]]

 “隨著維度數目的增加,Cuboid 的數量會爆炸式地增長。為了緩解 Cube 的構建壓力,Apache Kylin 引入了一系列的高級設置,幫助用戶篩選出真正需要的 Cuboid。這些高級設置包括聚合組(Aggregation Group)、聯合維度(Joint Dimension)、層級維度(Hierachy Dimension)和必要維度(Mandatory Dimension)等。”

眾所周知,Apache Kylin 的主要工作就是為源數據構建 N 個維度的 Cube,實現聚合的預計算。理論上而言,構建 N 個維度的 Cube 會生成 2N 個 Cuboid, 如圖 1 所示,構建一個 4 個維度(A,B,C, D)的 Cube,需要生成 16 個Cuboid。

圖1

隨著維度數目的增加 Cuboid 的數量會爆炸式地增長,不僅占用大量的存儲空間還會延長 Cube 的構建時間。為了緩解 Cube 的構建壓力,減少生成的 Cuboid 數目,Apache Kylin 引入了一系列的高級設置,幫助用戶篩選出真正需要的 Cuboid。這些高級設置包括聚合組(Aggregation Group)、聯合維度(Joint Dimension)、層級維度(Hierachy Dimension)和必要維度(Mandatory Dimension)等,本系列將深入講解這些高級設置的含義及其適用的場景。

本文將著重介紹聚合組的實現原理與應用場景實例。

聚合組(Aggregation Group)

用戶根據自己關注的維度組合,可以劃分出自己關注的組合大類,這些大類在 Apache Kylin 里面被稱為聚合組。例如圖 1 中展示的 Cube,如果用戶僅僅關注維度 AB 組合和維度 CD 組合,那么該 Cube 則可以被分化成兩個聚合組,分別是聚合組 AB 和聚合組 CD。如圖 2 所示,生成的 Cuboid 數目從 16 個縮減成了 8 個。

圖2

圖2

用戶關心的聚合組之間可能包含相同的維度,例如聚合組 ABC 和聚合組 BCD 都包含維度 B 和維度 C。這些聚合組之間會衍生出相同的 Cuboid,例如聚合組 ABC 會產生 Cuboid BC,聚合組 BCD 也會產生 Cuboid BC。這些 Cuboid不會被重復生成,一份 Cuboid 為這些聚合組所共有,如圖 3 所示。

圖3

有了聚合組用戶就可以粗粒度地對 Cuboid 進行篩選,獲取自己想要的維度組合。

應用實例

假設創建一個交易數據的 Cube,它包含了以下一些維度:顧客 ID buyer_id 交易日期 cal_dt、付款的方式 pay_type 和買家所在的城市 city。有時候,分析師需要通過分組聚合 city、cal_dt 和 pay_type 來獲知不同消費方式在不同城市的應用情況;有時候,分析師需要通過聚合 city 、cal_dt 和 buyer_id,來查看顧客在不同城市的消費行為。在上述的實例中,推薦建立兩個聚合組,包含的維度和方式如圖 4 :

聚合組 1: [cal_dt, city, pay_type]

聚合組 2: [cal_dt, city, buyer_id]

在不考慮其他干擾因素的情況下,這樣的聚合組將節省不必要的 3 個 Cuboid: [pay_type, buyer_id]、[city, pay_type, buyer_id] 和 [cal_dt, pay_type, buyer_id] 等,節省了存儲資源和構建的執行時間。

Case 1:

SELECT cal_dt, city, pay_type, count(*) FROM table GROUP BY cal_dt, city, pay_type 則將從 Cuboid [cal_dt, city, pay_type] 中獲取數據。

Case2:

SELECT cal_dt, city, buy_id, count(*) FROM table GROUP BY cal_dt, city, buyer_id 則將從 Cuboid [cal_dt, city, pay_type] 中獲取數據。

Case3 如果有一條不常用的查詢:

SELECT pay_type, buyer_id, count(*) FROM table GROUP BY pay_type, buyer_id 則沒有現成的完全匹配的 Cuboid。

此時,Apache Kylin 會通過在線計算的方式,從現有的 Cuboid 中計算出最終結果。

小結

Apache Kylin 作為一種多維分析工具,其采用預計算的方法,利用空間換取時間,提高查詢效率。本文介紹了 Apache Kylin 的高級設置中聚合組的部分,聚合組適用于當分析師粗粒度地關注某些維度去進行分組聚合的場景。

責任編輯:武曉燕 來源: lxw的大數據田地
相關推薦

2017-05-03 08:32:22

Apache KyliCube設置

2018-08-07 16:17:35

JavaMySQL數據庫

2023-02-28 09:07:18

ChatGPTAI

2017-01-15 14:27:32

大數據美團點評技術

2019-12-06 10:59:20

JavaScript運行引擎

2021-07-12 09:45:36

NameServer 核心Conusmer

2021-01-12 14:46:34

Kubernetes開發存儲

2022-05-26 21:38:02

開源分布式Hadoop

2021-07-05 07:51:43

JVM底層Python

2021-12-01 18:36:35

屬性

2023-08-11 07:44:40

TCP滑動窗口數據

2020-05-21 13:25:43

Spring組件架構

2024-06-27 08:26:10

LooperAndroid內存

2016-11-15 09:34:14

Apache Kyli流處理引擎

2015-08-19 10:36:24

Zigbee技術無線通信

2023-11-16 09:01:37

Hadoop數據庫

2015-08-18 09:40:32

OpenStack Neutron虛擬網絡

2010-07-06 10:07:10

jQueryJSON

2015-07-01 13:34:22

Kubernetes應用部署模型

2021-06-16 15:18:03

鴻蒙HarmonyOS應用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品亚洲精品 | 成人亚洲精品 | 性高湖久久久久久久久3小时 | 91视频网 | 国产在线观看免费 | 日韩欧美亚洲 | 亚洲欧美综合 | 亚洲日本欧美日韩高观看 | 午夜爽爽爽男女免费观看影院 | 国产综合精品一区二区三区 | 青青草综合网 | 一级在线观看 | 精品一区二区久久久久久久网站 | 国产精品欧美一区二区三区 | 成人午夜网站 | 日韩午夜影院 | 在线精品观看 | 欧美精品综合在线 | h视频在线免费 | 在线免费观看a级片 | 91看片网址| 黑人一级片视频 | 日韩欧美电影在线 | 777777777亚洲妇女 | 国产视频二区 | 午夜国产 | 欧美一区二区三区四区在线 | 毛片久久久 | 不卡的av在线 | 久久亚洲高清 | 国产精品久久久久久影视 | 成人精品一区二区三区中文字幕 | 国产精品久久久久久久免费观看 | 成人免费观看视频 | 精品国产乱码一区二区三区a | 综合国产 | 中文字幕国产精品 | 欧洲亚洲一区二区三区 | 国产一区二区三区在线视频 | 午夜欧美a级理论片915影院 | 久久久www成人免费无遮挡大片 |