kylin思维导图
2023-09-27 11:26:14 0 举报
AI智能生成
没有安装部分
作者其他创作
大纲/内容
业务需求
维度与度量
维度就是观察数据的角度。比如电商的销售数据,可以从时间的维度来观察,也可以进一步细化从时间和地区的维度来观察。
度量就是被聚合的统计值,也是聚合运算的结果
给定一个数据模型,我们可以对其上所有维度进行组合。对于N个维度来说,所有组合的可能性有2N种。对每一种维度的组合,将度量做聚合运算,运算的结果保存为一个物化视图,称为Cuboid。将所有维度组合的Cuboid作为一个整体,被称为Cube。所以简单来说,一个Cube就是许多按维度聚合的物化视图的集合。
Cube模型
Cube模型是以多维数组的方式,物化到存储系统中,加快后续的查询。
它是一个数据立方体,类似魔方的形状。不管从哪个维度查询都很快,而且查询时各个维度可以灵活进行组合。
因为提前做好了聚合运算,所以性能上非常优秀。但生成CUBE需要大量的时间、空间。维度的预处理也可能会导致数据的膨胀。
一个多维数据集称为一个OLAP Cube,Cuboid是其中的一个组合数据集,例如城市、品类、月份这三个维度,形成共八种组合的数据集。
Cube 优化
衍生维度
如果从维度表主键到某个维度表维度所需要的聚合工作量非常大,则不建议使用衍生
维度。
维度。
缺点:
衍生维度用于在有效维度内将维度表上的非主键维度排除掉,并使用维度表的主键(其
实是事实表上相应的外键)来替代它们
实是事实表上相应的外键)来替代它们
使用聚合组
强制维度(Mandatory)
强制维度自己只能出现和自己有关的如A,AB,AC,ABC
层级维度(Hierarchy)
使用A->B作为层级维度 :A ,C,AB ,AC, ABC
联合维度(Joint)
使用[AB]作为联合维度:C ,AB,ABC
Cube 构建参数调优
Kylin 根据 Cube 情况自动设置 Spark 参数
根据实际情况手动设置 Spark 参数
工作原理
Apache Kylin的工作原理本质上是MOLAP Cube,也就是多维立方体分析
指定数据模型,定义维度和度量
预计算cube,计算所有Cuboid并保存为物化视图。执行查询时,读取Cuboid,运算,产生查询结果。
由于Kylin的查询过程不会扫描原始记录,而是通过预计算预先完成表的关联、聚合等复杂运算,并利用预计算的结果来执行查询,因此相比非预计算的查询技术,其速度一般要快一到两个数量级,并且这点在超大的数据集上优势更明显。当数据集达到千亿乃至万亿级别时,Kylin的速度甚至可以超越其他非预计算技术1000倍以上。
总结
总结一Kylin的核心思想是Cube预计算,理论基础是空间换时间,把高复杂度的聚合运算、多表连接等操作转换成对预计算结果的查询。
数据分析模型
星型模型
由一个或多个引用任意数量维度表的事实表组成
雪花模型
由连接到多个维度的集中式事实表表示。
0 条评论
下一页
为你推荐
查看更多