Kylin 5.0 的未来规划
Target Audience
- 对新一代 Kylin 感兴趣的开发者和用户
- 对 OLAP 技术有兴趣的大数据爱好者
What will you learn
- 了解最新版本的 Kylin 的设计思路
- 了解最新版本的 Kylin 的开发路线和发布计划
💬 Kylin 5.0 相对于上个版本有了更长足的进步,尤其是在使用场景的扩充和构建查询的性能提升上。 这篇 Kylin 5.0 社区路线图,将帮助大家了解社区开发者在面对 Kylin 4 尚未解决的问题,是如何在 Kylin 5 上进行全面的重新设计并且实现新功能,并且会分析这些新功能,诸如“Native Engine”、“Schem Change”、“可计算列”、“明细索引”给用户带来的全新体验。
今天的 Apache Kylin
Apache Kylin 是什么?
Apache Kylin™ 是一个开源的分析型数据仓库,为 Hadoop 等大型分布式分析平台之上的超大规模数据集(PB级)通过标准 SQL 查询及多维分析 ( OLAP ) 功能,提供亚秒级的交互式分析能力。
Apache Kylin 的基本原理
Cube 是 OLAP ( Online Analytical Processing ) 的核心数据结构,把维度和度量抽象为一个多维模型,赋予了OLAP 新的数据组织和存储形式,并可以快速、高效地完成 OLAP 的多维分析操作。
我们可以想象有一个三个维度的 Cube,它包含了商品种类、时间和地点。在存储中我们可以把某一个具体的小方块想象成一个特定维度组合的度量,左下角的小方块存储了(浙江,2010 第一季度,书籍)这个组合下我们关心的业务指标, s这可能是成交总量、平均价格等等。基于这样的数据结构,我们可以完成钻取、上卷、切片、切块和旋转的操作,这样就可以进行一些数据分析、数据探索,帮我们去解答这些业务的问题。并且由于不需要现场进行扫描和聚合,所以查询响应一般很快。

Apache Kylin 通过构建引擎和查询引擎来分别生成和查询预计算数据文件,并且基于分布式计算引擎如 Apache Spark 来扩展构建引擎和查询引擎的计算能力。对于用户,Kylin 提供不同的接口如 SQL/HTTP/BI/Excel 等方式来进行数据分析,可以使得用户可以对 PB 级数据集实现秒级查询。
当前版本的限制
- 模型修改的使用方式有限制,对于建好的 Model/Cube,不能随意添加维度和度量,需要先清理现有的预计算索引(Cuboid)才能添加;为了增加新的度量和维度,用户需要创建新的 Cube,增加了管理成本,并且浪费了计算和存储资源。
- 预计算索引的构建不够灵活,用户只能选择构建全部的预计算索引,一旦构建完成用户无法自主选择添加和删除部分预计算索引(只能通过 Cube Planner 的算法进行筛选)。
- 构建和查询性能仍有提升空间,Kylin 使用 Apache Spark 作为执行/计算引擎,没有利用到向量加速、指令级优化等技术。
- 维度数量有上限,最多支持 63 个维度。这是由于元数据存储中是用 Long 型来保存的 Cuboid ID 而造成的。
- 长期使用后元数据存储膨胀,非核心元数据(任务历史等)会占用大量的空间,造成元数据读取写入性能下降,从而引起 Kylin 整体服务性能不佳。
