Kylin:基于Hadoop的开源数据仓库OLAP分析引擎
Kylin是一个开源、分布式的OLAP分析引擎,它由eBay公司开发,并且基于Hadoop提供了SQL接口和OLAP接口,能够支持TB到PB级别的数据量。OLAP即联机分析处理,它能够帮助分析人员、管理人员或执行人员从多角度快速、一致、交互地存取信息和更加深入的了解信息。OLAP的目标是满足决策支持或者满足在多维环境下特定的查询和报表需求。目前,比较著名的开源OLAP分析引擎还有 Lemur和 Mondrian。Lemur是用C++编写的面向混合型联机分析处理(HOLAP)的引擎,它能够被其他语言的程序所调用,支持切片、切块和旋转等基本操作。Mondrian是用JAVA编写的面向关系型联机分析处理(ROLAP)引擎,它符合XML和XMLA协议,可以完成异构平台下的数据通信。Mondrian被设计运行在关系数据库上,提供基于JAVA 的API供应用程序调用展示结果。
从Kylin官网得知,它具有以下特性:
- 超级快的OLAP分析引擎,并具备较强的可伸缩性。Kylin旨在减少Hadoop在10亿行以上数据级别的情况下的查询延迟。
- 为Hadoop 提供 ANSI-SQL 接口。Kylin为Hadoop提供了ANSI-SQL接口,并且支持大多数的ANSI-SQL的函数。
- 交互式查询能力。用户能够通过Kylin在秒级别的延迟状况下同Hadoop进行交互,并且对于相同的数据。集效果优于Hive的查询
- 多维联机分析处理数据仓库(MOLAP Cube)。用户能够定义数据模型,并且通过Kylin能够预建超过10多亿行原始数据记录的数据模型。
- 数据模型可与其他 BI 工具无缝集成。目前,Kylin提供了同BI工具无缝集成的功能,如Tableau。
- 其他值得关注的特性。具有作业管理和监控的功能、具有简单易用的 Web操作界面、支持数据压缩和编码、支持 LDAP 集成、能够利用HBase的Coprocessor降低查询延迟等。
作为一套旨在对Hadoop环境下分析流程进行加速,而且能够与SQL兼容性工具顺利协作的解决方案,Kylin成功将SQL接口与多维分析机制(OLAP)引入Hadoop,旨在对规模极为庞大的数据集加以支持。Kylin的高层架构,如下所示:
支持Kylin能够良好运行的生态系统包括以下组成部分:
- Kylin的核心部分。Kylin的OLAP引擎框架包括元数据引擎、查询引擎、作业引擎、存储引擎以及用来处理客户端请求的REST服务器
- 可扩展的组件部分。包括支持更多功能的插件,如HBase的Coprocessor、Hive等。
- 集成的组件部分。生命周期管理器支持集成作业调度器、ETL工具、监控和报警系统。
- 用户界面部分。允许第三方用户基于Kylin 核心组件定制自己的用户界面。
- 驱动部分。ODBC和JDBC 驱动能够支持不同的工具和产品,如Tableau。
eBay在2014年10月20日的一篇博客上 分享了Kylin的细节,包括REST API、ANSI-SQL兼容性、连接分析工具Tableau和Excel,以及在一些查询上低于秒级的延迟。然而,Kylin最独特的特性是它如何处理scale。eBay表示,它可以查询数十亿行数据——在高达14TB的数据集上,速度比使用传统的Apache Hive工具快得多。
下面是eBay分享的Kylin如何在公司内部的使用情况:
开放Kylin的时候,我们已经有一些eBay业务单元在生产中使用它。我们最大的用例是120+亿源记录生成的14 +TB cube。它的90%查询延迟小于5秒。现在,我们的用例瞄准分析师和业务用户,他们可以轻松的通过Tableau分析并且得到结果——不再需要Hive查询,shell命令等等。
想要知道Kylin在与下一版本的Hive、Spark SQL以及Hadoop SQL分析的其他选项较量中谁会胜出,将是一件非常有趣的事情,Kylin作为YARN资源管理器一部分可以在Apache Hadoop的最新版本上获得。我猜它会慢一点,但比内存选项或那些不需要MapReduce处理的更具扩展性,不过这对于那些仍然在运行更早软件版本的用户可能是一个可靠的选
- 官方网站: http://www.kylin.io/
- 参考资料: http://www.ebaytechblog.com/2014/10/20/announcing-kylin-extreme-olap-engine-for-big-data/
Related posts: