Apache Kylin作为支持大数据分析的一款重要框架,在现有的大数据生态体系当中,还是占有相应的地位的。在学习阶段,对于Apache Kylin也可以做一些相应地学习和掌握。今天的大数据学习分享,我们来讲讲Apache Kylin基础入门。
Apache Kylin的使命是实现超高速的大数据OLAP分析,也就是要让大数据分析像使用数据库一样简单迅速,用户的查询请求可以在秒级返回,交互式数据分析以前所未有的速度释放大数据里潜藏的知识和信息,以使我们在面对未来的挑战时占得先机。
Apache Kylin工作原理
Apache Kylin工作原理本质上是MOLAP(Multidimensional Online Analytical Processing)Cube,也就是多维立方体分析。
①关于维度和度量
在说明MOLAP Cube之前,需要先介绍一下维度(dimension)和度量(measure)这两个概念。
维度就是观察数据的角度,比如电商的销售数据,可以从时间的维度来观察(如图1的左图所示),也可以进一步细化从时间和地区的维度来观察(如图1的右图所示)。维度一般是一组离散的值,比如时间维度上的每一个独立的日期,或者商品维度上的每一件独立的商品。因此,统计时可以把维度值相同的记录聚合起来,应用聚合函数做累加、平均、去重复计数等聚合计算。
图1维度和度量
度量就是被聚合的统计值,也是聚合运算的结果,它一般是连续值,如图1中的销售额,抑或是销售商品的总件数。通过比较和测算度量,分析师可以对数据进行评估,比如今年的销售额相比去年有多大的增长、增长的速度是否达到预期、不同商品类别的增长比例是否合理等。
②Cube和Cuboid
了解了维度和度量,就可以对数据表或者数据模型上的所有字段进行分类了,它们要么是维度,要么是度量(可以被聚合)。于是就有了根据维度、度量做预计算的Cube理论。
给定一个数据模型,我们可以对其上所有维度进行组合。对于N个维度来说,所有组合的可能性有2N种。对每一种维度的组合,将度量做聚合运算,运算的结果保存为一个物化视图,称为Cuboid。将所有维度组合的Cuboid作为一个整体,被称为Cube。所以简单来说,一个Cube就是许多按维度聚合的物化视图的集合。
计算Cuboid,就是按维度来聚合销售额(GMV)。如果用SQL来表达计算Cuboid[Time,Location],那就是:
select Time,Location,Sum(GMV)as GMV from Sales group by Time,Location
图2四维Cube
将计算的结果保存为物化视图,所有Cuboid物化视图的总称就是Cube了。
③Apache Kylin工作原理
Apache Kylin的工作原理就是对数据模型做Cube预计算,并利用计算的结果加速查询。过程如下:
1.指定数据模型,定义维度和度量。
2.预计算Cube,计算所有Cuboid并将其保存为物化视图。
3.执行查询时,读取Cuboid,进行加工运算产生查询结果。
由于Kylin的查询过程不会扫描原始记录,而是通过预计算预先完成表的关联、聚合等复杂运算,并利用预计算的结果来执行查询,因此其速度相比非预计算的查询技术一般要快一个到两个数量级。并且在超大数据集上其优势更明显。当数据集达到千亿乃至万亿级别时,Kylin的速度甚至可以超越其他非预计算技术1000倍以上。
关于大数据学习,Apache Kylin基础入门,以上就为大家做了基本的介绍了。Kylin在大规模数据分析上,还是有其优势所在的,学习阶段可以花些心思去学一学。成都加米谷大数据,专业
大数据培训机构,大数据开发、数据分析与挖掘,零基础班本月正在招生中,课程大纲及试学视频,可联系客服获取!