今天,大数据领域的发展如火如荼。TB、PB级的数据量已经不是什么稀罕的事情了。作为大数据领域最重要的技术Hadoop及其强大的生态圈,虽然如今已经能够在实时分析、多维分析、交互分析、机器学习、人工智能上展现强大实力。但应用在需求日益增强的BI平台时,高效分析成了挑战。
Hadoop的诞生使得大数据的存储和批处理得到妥善解决,SQL on hadoop即是为了加速大数据分析查询出现的。以Hive为代表,Presto、Phonenix、Drill就是这样的代表。它们的主要技术是MPP(大规模并行处理)和CS(列式存储),MPP即调动多台计算机一直并行计算,用线性的资源来换取计算时间的线性下滑。列式存储即将计算以按列存放(NoSQL),这两种技术将SQL从小时级的查询锐减到了分钟级别。然而要想再进一步提高,技术也到了瓶颈。因为BI分析师在查询大数据时,或者需要输入一个查询,然后去喝个coffee或者是玩会手机,才能等待出查询结果,如果要分析的项目非常多或者分析是逐步依赖的话,这就是一个耗不起的用时。
这时候你就可以考虑Apache kylin(麒麟)了,它的工作原理本质上是MOLAP(多维立方体在线分体),将常用的耗时多的计算通过建立cube方式进行“预先计算”,当真正的查询来时,只要利用提前计算好的结果再通过简单的查询过滤即可得到结果。其速度比一般的查询会快一到两个数量级。传统大规模并行计算和列式存储的查询速度的时间复杂度为O(N),而kylin为O(1),随着数据的海量增加,这一优势会更明显,甚至可以超越其他技术1000倍以上。
离线构建(预计算)过程。数据源是Hadoop和Hive,保存着等待分析的用户数据,根据元数据定义,正文构建引擎从数据源中抽取数据,并构建cube,数据以关系表形式输入。构建后的cube保存在右侧的存储引擎中,目前开源使用的Hbase。
在线查询。用户使用标准SQL查询分析,Kylin支持目前主流的Restful API以用于web、移动端数据服务。jdbc、odbc给BI工具使用。SQL的书写和传统我们查询hadoop数据的格式一模一样,对于查询用户而言,完全无学习成本。而对于分析师而言,只需要关注cube的构建规则。目前kylin还支持在线智能cube分析,能够帮助分析师更好地优化cube。
作为第一个由中国人主导的Apache顶级开源项目( 相当于加入了hadoop、spark高级玩家俱乐部),希望更多大数据爱好者加入,一起把它做得更好。欢迎关注百家号。
举报/反馈

阿呆说科技

1.6万获赞 1.1万粉丝
科技达人,为您带来客观专业的科技分析
数码领域创作者
关注
0
0
收藏
分享