2.5 Kylin
Kylin 来自 eBay 的中国人韩卿 @lukehq 领导的团队开发的一个 OLAP 分析引擎,这是 ebay 历史上第一次开源并贡献给 apache 基金会的项目。Kylin 于 2014 年 10 月在 github 开源,并很快在 2014 年 11 月加入 Apache 孵化器,于 2015 年 11 月正式毕业成为 Apache 顶级项目,也成为首个完全由中国团队设计开发的 Apache 顶级项目。
2016 年 3 月,Apache Kylin 核心开发成员在上海创建 Kyligence 公司,力求更好地推动项目和社区的快速发展。2016 年 4 月,大数据公司 Kyligence 跬智科技宣布获得了数百万美元的天使轮投资。
2.5.1 架构
Apache Kylin™是一个开源的分布式分析引擎,提供 Hadoop/Spark 之上的 SQL 查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由 eBay Inc. 开发并贡献至开源社区。它能在亚秒内查询巨大的 Hive 表。
图 30 kylin 部署架构
说明:数据源有 hive/kafka;cube 存储引擎缺省为 hbase;cube 构建引擎使用 spark/MR;kylin 元数据缺省存储在 hbase,也可选 mysql 等。
图 31 Kylin 应用架构之组件(插件化)
说明:
REST Server:提供一些 restful 接口,例如创建 cube、构建 cube、刷新 cube、合并 cube 等 cube 的操作,project、 table、cube 等元数据管理、用户访问权限、系统配置动态修改等。除此之外还可以通过该接口实现 SQL 的查询,这些接口一方面可以通过第三方程序的 调用,另一方也被 kylin 的 web 界面使用。
jdbc/odbc 接口:kylin 提供了 jdbc 的驱动,驱动的 classname 为 org.apache.kylin.jdbc.Driver,使用的 url 的前缀 jdbc:kylin:,使用 jdbc 接口的查询走的流程和使用 RESTFul 接口查询走的内部流程是相同的。这类接口也使得 kylin 很好的兼容 tebleau 甚至 mondrian。
Query 引擎:kylin 使用一个开源的 Calcite 框架实现 SQL 的解析,相当于 SQL 引擎层。
Routing:该模块负责将解析 SQL 生成的执行计划转换成 cube 缓存的查询,cube 是通过预计算缓存在 hbase 中,这部分查询是可以再秒级甚至毫秒级完成,而还有一些操作使用过查询原始数据(存储在 hadoop 上通过 hive 上查询),这部分查询的延迟比较高。
Metadata:kylin 中有大量的元数据信息,包括 cube 的定义,星状模型的定义、job 的信息、job 的输出信息、维度的 directory 信息等等,元数据和 cube 都存储在 hbase 中,存储的格式是 json 字符串,除此之外,还可以选择将元数据存储在本地文件系统。
Cube 构建引擎:这个模块是所有模块的基础,它负责预计算创建 cube,创建的过程是通过 hive 读取原始数据然后通过一些 mapreduce 计算生成 Htable 然后 load 到 hbase 中。
图 32 Kylin 生态圈
说明:
- Kylin 核心: Kylin OLAP 引擎基础框架,包括元数据(Metadata)引擎,查询引擎,Job 引擎及存储引擎等,同时包括 REST 服务器以响应客户端请求
- 扩展: 支持额外功能和特性的插件
- 整合: 与调度系统,ETL,监控等生命周期管理系统的整合
- 用户界面: 在 Kylin 核心之上扩展的第三方用户界面
- 驱动:ODBC 和 JDBC 驱动以支持不同的工具和产品,比如 Tableau
2.5.2 KAP
2.5.3 Kyligence Cloud
Kyligence Cloud http://docs.kyligence.io/books/cloud/zh-cn/overview/architecture.cn.html
使用 Kyligence Cloud,用户可以在公有云(如微软 Azure, 亚马逊 AWS,阿里云等)上快速建立大数据分析集群,接入各种云端数据源并进行建模分析,实现对 PB 级数据的交互式 OLAP 分析与关键业务查询的亚秒级响应。
图 33 Kyligence Cloud 的架构图
说明:
- Hadoop / Spark 集群、Kyligence Enterprise、KyAnalyzer 是随需启动的服务,与您的集群具有相同的生命周期。云存储和元数据则具有更长的持久性,当集群停止时,它们不会被删除。
- 表结构、Cube 模型等元数据存储在您帐户下的 RDS 或 SQL Server 实例中,Cube 数据会保存在 S3、 Azure blob store 或 OSS 中。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论