自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

[[188106]]

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

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

圖1

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

本文將著重介紹聚合組的實(shí)現(xiàn)原理與應(yīng)用場景實(shí)例。

聚合組(Aggregation Group)

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

圖2

圖2

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

圖3

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

應(yīng)用實(shí)例

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

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

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

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

Case 1:

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

Case2:

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

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

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

此時(shí),Apache Kylin 會通過在線計(jì)算的方式,從現(xiàn)有的 Cuboid 中計(jì)算出最終結(jié)果。

小結(jié)

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

責(zé)任編輯:武曉燕 來源: lxw的大數(shù)據(jù)田地
相關(guān)推薦

2017-05-03 08:32:22

Apache KyliCube設(shè)置

2018-08-07 16:17:35

JavaMySQL數(shù)據(jù)庫

2023-02-28 09:07:18

ChatGPTAI

2017-01-15 14:27:32

大數(shù)據(jù)美團(tuán)點(diǎn)評技術(shù)

2022-05-26 21:38:02

開源分布式Hadoop

2021-01-12 14:46:34

Kubernetes開發(fā)存儲

2019-12-06 10:59:20

JavaScript運(yùn)行引擎

2021-07-12 09:45:36

NameServer 核心Conusmer

2021-07-05 07:51:43

JVM底層Python

2023-08-11 07:44:40

TCP滑動窗口數(shù)據(jù)

2021-12-01 18:36:35

屬性

2020-05-21 13:25:43

Spring組件架構(gòu)

2016-11-15 09:34:14

Apache Kyli流處理引擎

2024-06-27 08:26:10

LooperAndroid內(nèi)存

2015-08-18 09:40:32

OpenStack Neutron虛擬網(wǎng)絡(luò)

2023-11-16 09:01:37

Hadoop數(shù)據(jù)庫

2015-08-19 10:36:24

Zigbee技術(shù)無線通信

2010-07-06 10:07:10

jQueryJSON

2015-07-01 13:34:22

Kubernetes應(yīng)用部署模型

2021-06-16 15:18:03

鴻蒙HarmonyOS應(yīng)用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號