从给丈母娘榨果汁带你认识Apache Kylin(文末赠书)

一、开篇

二、Apache Kylin是什么?

三、为什么要使用Apache Kylin?

四、Apache Kylin的架构

五、Kylin使用案例

六、Kylin + AI展望

七、总结

一、开篇

我这个人有个习惯,每天早上起床刷牙之后要先喝一杯果汁。我只喜欢吃3种水果:苹果、梨、香蕉,所以我每天早上都在纠结是苹果+梨,还是梨+香蕉,还是苹果+梨+香蕉等等。

刚开始只有我一个人还好,早上早起几分钟榨一下挺方便。后面我女朋友也要喝,我就再早起一点,水果多了,榨的时间也变长。后面我岳父岳母也要喝,但我已经不想再早起,于是又买了台榨汁机。

到后面,我爸我妈也要喝。。我不想早起的同时也不想买榨汁机了,因为我觉得后面家里谁要喝还得继续买,承受不起了。

于是我用前面两台普通榨汁机换购了一台多功能榨汁机,这个多功能机器厉害了,我只需要提前一天放好水果,然后定个时,这样它就会把所有水果的果汁榨出来,我们想喝什么再自己混合就行。

这样除非水果种类增加了,因为放水果的槽有限,花费的时间也需要增加。不然无论多少人喝,都是够喝的。虽然占的面积比较大,但能节省我时间和金钱,值得!

而Apache Kylin与这台多功能榨汁机有异曲同工之妙~

二、Apache Kylin是什么?

1.Apache Kylin是一个大数据分析框架,可以理解为进化版的Hive,同时也是OLAP on Hadoop的一个引擎,常被用于数仓解决方案。

2.中国第一个Apache*开源项目,比阿里的Apache Dubbo、RocketMQ都早。

3.同样的数据量,Mysql可能是小时级别,而Hive是分钟级,而Apache Kylin则是亚秒级

三、为什么要使用Apache Kylin?

1.从传统数据库(Mysql等)到 SQL on Hadoop(Hive、SparkSql)等,都会发现一个问题,查询时间随数据量的增大而增加。

2.查询数据量继续增大,而查询时间不变的话,就得水平拓展机器,让并行计算速率加快。但这样一方面增加了机器资源的经济成本,一方面又增加机器运维的人力成本。

3.Apache Kylin采用预计算方式,以空间换时间的方法,解决上述两个问题。让分析师把更多时间花在业务建模方面,而不是等待查询结果。

四、Apache Kylin的架构

从给丈母娘榨果汁带你认识Apache Kylin(文末赠书)

Apache Kylin权威指南(第二版)

1.首先看图的最左边,有Hadoop、Hive、Kafka等。这边是项目的数据源,可能存储在Hive、或者Mysql,又或者流式的Kafka。

2.将数据源配置好之后,由中间的计算引擎去拉,根据分析师建模配置好的维度,用户可以选择是用MapReduce或Spark进行计算,然后生成Cube。

3.将生成的Cube数据集存储到右边的HBase,等待被查询。

4.最上方的Rest api以及JDBC和ODBC就是查询入口,因为整个预计算以及Cube对用户是隐性的,所以用户只需要按照正常的查询操作就行,不用关心技术实现细节。

五、Kylin使用案例

情况:双11当天有1亿条交易数据

需求:查询双11当天店铺销售最高的商品

1.传统解决方案:扫描所有记录,找到双11的销售记录,然后按商品聚合销售额,最后排序返回。那么统计销售额就得统计1亿条数据,加入双11有5亿条,那么查询时间还得乘以5。

2.Kylin解决方案:分析师提前根据两个维度[销售时间,商品]进行建模,计算SUM(销售商品金额)并进行存储。这样Kylin就会帮我们把所有商品金额以及对应的时间提前统计出来,我们只需要最后排个序就可以。

也就是统计好之后,我们只需要针对双11当天的商品进行排序即可,假设有1000个商品,那么我们只需要排序1000条记录。

Kylin的预计算类似我们初中学的排列组合,所有组合数量 = 2的n次方,这个n就是维度数量。

举个例子:假如有2种水果:苹果、梨。那么可以榨汁出现4种情况:1.苹果 2.梨 3.苹果+梨 4.都不

从给丈母娘榨果汁带你认识Apache Kylin(文末赠书)cube模样

六、Kylin + AI展望

假设Kylin + AI之后,会有这么一个场景。随着数据分析师建模次数的增加,AI能自动分析模型经常使用的几个维度,并能主动推荐给分析师。在分析师建完模,AI也能对该模型进行诊断:维度是否设置合理,优化范围等等。

这个功能或许已经实现,或者正在实现,又或者即将实现,具体可参考《Apache Kylin权威指南:第2版》

七、总结

1.我们可以把Kylin想象成开头讲的多功能榨汁机,随着喝果汁的人越来越多,需要的榨的果汁也越来越高(数据量越来越大),我不想早起了,也不想花钱买榨汁机。(对应为什么要使用Kylin)

2.把水果种类比作建模的维度,只有当维度增加的时候,Kylin的工作时间才会增加。我们通过定时榨汁机,用空间来换时间,这样我就不用早起了。

3.我们也不用管多功能榨汁机是怎么工作的,我们只需要关心我们想吃哪些水果即可。对应Cube生成技术,我们只关心最终查询结果。

4.当我们经常用榨汁机的时候,榨汁机会根据我们每天喝的果汁容量,来判断我们更喜欢哪种水果,放多少合适。这也是Kylin+AI的成果。

锋哥点评:Apache Kylin技术本身集成了多个大数据组件,也涵盖了很多数仓理念和主流技术,可以从学习Apache Kylin切入到各个大数据组件的学习,也可以由它切入数仓的学习。

点击上方连接即可购买
Apache Kylin 核心研发团队精心撰写,基于较新的Apache Kylin 2.5,从架构设计、各模块的使用、与第三方的整合、二次开发以及开源实践等各个方面讲解数仓霸主Apache Kylin,帮你释放大数据生产力。

粉丝福利留言谈谈你对Apache Kylin的理解,留言走心的3名读者可获赠正版图书 ---《Apache Kylin权威指南(第2版)图书一本。
--end--

推荐阅读:

扫描下方二维码
添加好友,备注【交流群】拉你到学习路线和资源丰富的交流群
从给丈母娘榨果汁带你认识Apache Kylin(文末赠书)
上一篇:HBase场景 | 都是HBase上的SQL引擎,Kylin和Phoenix有什么不同?


下一篇:Kylin 架构模块简介