APACHE KYLIN
Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。
- 可扩展超快OLAP引擎:
- Hadoop ANSI SQL 接口:
- 交互式查询能力:
- 多维立方体(MOLAP Cube):
- 与BI工具无缝整合:
- 其他特性:
- 压缩与编码
- 增量更新
- 利用HBase Coprocessor
- 基于HyperLogLog的Dinstinc Count近似算法
- 友好的web界面以管理,监控和使用立方体
- 项目及立方体级别的访问控制安全
- 支持LDAP
Kylin 核心: Kylin OLAP引擎基础框架,包括元数据(Metadata)引擎,查询引擎,Job引擎及存储引擎等,同时包括REST服务器以响应客户端请求
扩展: 支持额外功能和特性的插件
整合: 与调度系统,ETL,监控等生命周期管理系统的整合
用户界面: 在Kylin核心之上扩展的第三方用户界面
驱动: ODBC 和 JDBC 驱动以支持不同的工具和产品,比如Tableau
在现在的大数据时代,越来越多的企业开始使用Hadoop管理数据,但是现有的业务分析工具(如Tableau,Microstrategy等)往往存在很大的局限,如难以水平扩展、无法处理超大规模数据、缺少对Hadoop的支持;而利用Hadoop做数据分析依然存在诸多障碍,例如大多数分析师只习惯使用SQL,Hadoop难以实现快速交互式查询等等。神兽Apache Kylin就是为了解决这些问题而设计的。
Apache Kylin,中文名麒(shen)麟(shou) 是Hadoop动物园的重要成员。Apache Kylin是一个开源的分布式分析引擎,最初由eBay开发贡献至开源社区。它提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持大规模数据,能够处理TB乃至PB级别的分析任务,能够在亚秒级查询巨大的Hive表,并支持高并发。
Apache Kylin于2014年10月在github开源,并很快在2014年11月加入Apache孵化器,于2015年11月正式毕业成为Apache顶级项目,也成为首个完全由中国团队设计开发的Apache顶级项目。于2016年3月,Apache Kylin核心开发成员创建了Kyligence公司,力求更好地推动项目和社区的快速发展。

2.Kylin的基本原理和架构
下面开始聊一聊Kylin的基本原理和架构。简单来说,Kylin的核心思想是预计算,即对多维分析可能用到的度量进行预计算,将计算好的结果保存成Cube,供查询时直接访问。把高复杂度的聚合运算、多表连接等操作转换成对预计算结果的查询,这决定了Kylin能够拥有很好的快速查询和高并发能力。
上图所示就是一个Cube的例子,假设我们有4个dimension,这个Cube中每个节点(称作Cuboid)都是这4个dimension的不同组合,每个组合定义了一组分析的dimension(如group by),measure的聚合结果就保存在这每个Cuboid上。查询时根据SQL找到对应的Cuboid,读取measure的值,即可返回。
为了更好的适应大数据环境,Kylin从数据仓库中最常用的Hive中读取源数据,使用 MapReduce作为Cube构建的引擎,并把预计算结果保存在HBase中,对外暴露Rest API/JDBC/ODBC的查询接口。因为Kylin支持标准的ANSI SQL,所以可以和常用分析工具(如Tableau、Excel等)进行无缝对接。下面是Kylin的架构图。




根据公开数据显示,Kylin的查询性能不只是针对个别SQL,而是对上万种SQL 的平均表现,生产环境下90%ile查询能够在在3s内返回。在上个月举办的Apache Kylin Meetup中,来自美团、京东、百度等互联网公司分享了他们的使用情况。例如,在京东云海的案例中,单个Cube最大有8个维度,最大数据条数4亿,最大存储空间800G,30个Cube共占存储空间4T左右。查询性能上,当QPS在50左右,所有查询平均在200ms以内,当QPS在200左右,平均响应时间在1s以内。


3.Kylin的最新特性
Kylin的最新版本1.5.x引入了不少让人期待的新功能,可扩展架构将Kylin的三大依赖(数据源、Cube引擎、存储引擎)彻底解耦。Kylin将不再直接依赖于Hadoop/HBase/Hive,而是把Kylin作为一个可扩展的平台暴露抽象接口,具体的实现以插件的方式指定所用的数据源、引擎和存储。



目前,社区正在着手准备Apache Kylin 1.5.2版本的发布,目前正处于Apache Mailing list投票阶段,预计将会在本周在Kylin官网发布正式下载。
在本次的1.5.2版本中,Kylin带来了总计 36个缺陷修复、33个功能改进、6个新功能。一些主要的功能改进包括对HyperLogLog计算效率的提升、在Cube构建时对Convert data to hfile步骤的提速、UI上对功能提示的体验优化、支持hive view作为lookup表等等。
另一个新消息是Kylin将支持MapR和CDH的Hadoop发行版,具体信息可见KYLIN-1515和KYLIN-1672。相应的测试版本是MapR5.1和CDH5.7。
UI上提供了一个重要更新,即允许用户在Cube级别进行自定义配置,以覆盖kylin.properties中的全局配置。如在cube中定义kylin.hbase.region.count.max 可以设置该cube在hbase中region切分的最大数量。

当用户遇到查询、Cube/Model管理的问题,单击System页面的Diagnosis按钮,系统会自动抓取当前Project相关的信息并打包成zip文件下载到用户本地。这个包会包含相关的Metadata、日志、HBase配置等。当用户需要在mailing list求助,也可以附上这个包。
我是本次Kylin1.5.2版本发布的release manager,欢迎大家到apache kylin邮件列表积极参与release投票。
如果有朋友想更加系统地学习如何高效使用Kylin和进行二次开发,欢迎大家报名Kyligence正在推出的《Apache Kylin开发者认证培训》,可以登录http://kyligence.io/training了解相关信息 。
http://kylin.apache.org/cn/
http://kylin.apache.org/
http://www.tuicool.com/articles/Yjm6bq7
本文转自茄子_2008博客园博客,原文链接:http://www.cnblogs.com/xd502djj/p/6728214.html,如需转载请自行联系原作者。







