从给丈母娘榨果汁带你认识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权威指南(第二版)
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.都不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--
推荐阅读:
扫描下方二维码
添加好友,备注【交流群】拉你到学习路线和资源丰富的交流群
标签:赠书,AI,查询,维度,榨汁机,Apache,Kylin,文末 来源: https://blog.csdn.net/a934079371/article/details/102774291