kylin介绍 (3)

依赖模式。维度间通过依赖关系来决定构建cube的组合关系,只有父维度存在,子维度才会有效。常见的有国家,省份,城市这类字段。在做分析的时候,一般场景为:

group by 国家;

group by 国家,省份;

group by 国家,省份,城市;

例子:假设有维度A,B,C 其中B依赖于A,C依赖于B,那么构建的cube如图4。

 

kylin介绍

图4

 

Derived

衍生模式。衍生模式的使用场景为,一个或多个维度可以由另一个维度生成。这是什么意思呢,假设在事实表中有外键列A, lookup表中B,C列,其中B为主键,列A和列B是映射关系,那么在查询事实表中的列A同时,kylin会自动的查询到lookup表中的B列。从维度数量的角度来看,Normal模式下有ABC,AB,AC,BC,A,B,C这几种组合情况,而在Derived模式下,cube的构建组合只有AC,A,C。

那么当请求的sql为`select count(*) from lookup group by B`的时候,由于没有对B列做预处理,所以kylin先查询A列的count,然后再实时计算出对应的B列的count 。

如图5,ID列为已知的某个维度列,A,C,B为ID列的衍生列,那么最终cube构建组合只有ID列。

 

kylin介绍

图5

 

Joint

联合模式。在很多分析场景中,有些维度单独分析是没有意义的,要么同时出现,要么不出现。

例如维度A,B,C 当维度B和A是Joint关系,那么在构建cube的时候,kylin只会组合出ABC,AB,C三种。

 

Aggregation Group

聚合组

Max Dimension Combination最大的维度组合数量。

例如维度A,B,C 那么Max Dimension Combination设置为2时,kylin只会构建AB,AC,BC,A,B,C这几种组合,ABC这种组合会被省略。

 

参考

《Apache Kylin权威指南》

 

// 官网对术语的介绍

 

事实表和维度表详细介绍

 

// 事实表和维度表定义 案例分析

https://blog.csdn.net/y3177530/article/details/51121652

 

// 星型模式&雪花模式

https://blog.csdn.net/nisjlvhudy/article/details/7889422

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwpzsp.html