Apache Kylin 4.0.0 正式发布!
Apache Kylin 社区于日前宣布:Apache Kylin 4.0.0 正式发布!欢迎大家下载使用。
Apache Kylin 是行业头部的开源分布式的分析型数据仓库,提供 Hadoop/Spark 之上的 SQL 查询接口及多维分析 (OLAP) 能力,支持对超大规模数据进行亚秒级查询,已被 eBay、腾讯、美团、滴滴、汽车之家、贝壳找房、OLX 集团等全球超过 1500 家企业采用。
1. Release Notes
Apache Kylin 4.0.0 是 Kylin 3(HBase Storage)版本后的一次重大版本更新,Kylin 4 使用 Parquet 这种真正的列式存储来代替 HBase 存储,从而提升文件扫描性能;同时,Kylin 4 重新实现了基于 Spark 的构建引擎和查询引擎,使得计算和存储的分离变为可能,更加适应云原生的技术趋势。
Kylin 4.0.0 是继 4.0.0-alpha、4.0.0-beta 之后 Kylin 4 (Parquet Storage)的第一个正式版本,这次发布相对上次发布加入了构建性能优化、查询性能优化、Spark 3 支持、元数据升级工具等若干重要特性。此次发布共添加了 32 个新功能和功能增强,修复了 10 个问题和缺陷等,详情请访问 Apache Kylin 官网。
在去 Hadoop 迈向云原生的进程中,Apache Kylin 也做了积极的尝试,通过使用对象存储代替 HDFS,使用 Spark Standalone 代替 Yarn,来逐渐降低 Kylin 的学习成本和维护难度,从而打造成为一个简化和统一的,拥有高性能和低 TCO 的 OLAP 平台。你可以通过以下文档来了解使用过程:详情请访问 Apache Kylin 官网。
2. 重要更新
[KYLIN-4925] - Use Spark 3 as build and query engine for Kylin 4
由于 Spark 2 即将结束其生命周期,Kylin 4.0 除了支持 Spark 2.4.7 作为构建和查询的引擎,也支持 Spark 3.1.1,从而可以利用到 Spark 3 在解决数据倾斜问题上的一些高级特性。关于 Spark 3 的支持,目前尚处于 experimental feature 阶段,欢迎大家使用和提出反馈。
[KYLIN-4966] - Refresh the existing segment according to the new cuboid list in kylin4
Kylin 4.0.0 中,由于一些问题目前还不支持 Cube Planner 第二阶段。为了补充 Cube 剪枝的能力,我们开发出可以动态增加和删除 cuboid 的特性,这个特性允许用户在 Cube Planner 第一阶段的剪枝优化基础下,根据自己查询历史,手动增加未被构建但是是常用的 cuboid。更新后的 cuboid 列表保存在元数据 CubeInstance 的 cuboid_bytes 字段中。
[KYLIN-4945] - Repartition encoded dataset to avoid data skew caused by a single column
在新的的构建任务中,Apache Kylin 使用 Spark 进行全局字典的构建。
在构建过程中 repartition 算子容易出现数据倾斜的情况,严重时会极大影响构建速度,所以我们对倾斜数据设计了检测和特殊处理步骤。
[KYLIN-4923] - CubeMigration Tools support migrate meta from 2.x/3.x cluster to 4.0 cluster
为了支持一些用户从 Kylin 2/3 升级到 Kylin 4.0,我们需要实现元数据的升级和转换,结合社区用户的升级实践,Kylin 4.0.0 中基于 Cube Migration Tool 实现了元数据升级工具。
其他重要更新
[KYLIN-5019] - Avoid building global dictionary from all data of fact table each time
[KYLIN-4887] - Segment pruner support string type partition col in spark query engine
[KYLIN-4894] - Upgrade Apache Spark version to 2.4.7
[KYLIN-4903] - cache parent datasource to accelerate next layer’s cuboid building
[KYLIN-4936] - Exactly aggregation can’t transform to project
[KYLIN-5027] - Add the config of whether to build base cuboid in kylin4
[KYLIN-4897] - Add table snapshot and global dictionary cleaning in StorageCleanupJob
3. 下载
下载 Apache Kylin 4.0.0 源代码及二进制安装包,请至 Apache Kylin 官网详情了解 。
Kylin 4.0.0 分别为 Spark 2.4.7 和 Spark 3.1.1 两个 Spark 主要版本提供了适用的二进制包。
4. 升级
从 Kylin 2/3 升级到 Kylin 4.0.0 请参考此文档:请至 Apache Kylin 官网详情了解 。
由于存储层发生很大变化,不再使用 HBase,所以从 Kylin 2/3 升级至 Apache Kylin 4 版本不再兼容之前的预计算生成的 Cube 数据,另外少部分元数据(例如引擎类型、度量类型等)也存在一定程度的不兼容,用户可以采用前文所说的元数据升级工具(KYLIN-4923)进行迁移,然后进行 Cube 重新构建。
5. Docker 体验
当前 Kylin 4.0.0 的 Docker 容器已经发布,用户无需安装 Hadoop,可以通过以下命令来在笔记本上体验 Kylin 4:
docker run -d \ -m 8G \ -p 7070:7070 \ -p 8088:8088 \ -p 50070:50070 \ -p 8032:8032 \ -p 8042:8042 \ -p 2181:2181 \ apachekylin/apache-kylin-standalone:4.0.0
*注意:MAC Docker Desktop 用户,请将 Docker Desktop 中 Resource 的内存至少设置为 8 GB 以及 6 core,以保证能流畅运行 Kylin Standalone on Docker。
6. 反馈
如果您遇到疑问或问题,请发送邮件至 Apache Kylin user 或 dev 邮件列表:
user@kylin.apache.orgdev@kylin.apache.org
*注意:该邮件列表需要订阅才能使用。如未订阅该邮件列表,请先发送邮件至user-subscribe@kylin.apache.org或dev-subscribe@kylin.apache.org,并回复确认完成订阅。
7. 社区贡献者
感谢所有参与 Kylin 4.0.0 版本设计、开发、测试、讨论的社区贡献者们:
Xiaoxiang Yu, Yaqian Zhang, Zhichao Zhang, RupengWang, kaiqi.xue, mingming.ge, Yongheng.Liu, Feng Zhu, Sun BiaoBiao, Tengting Xu, Congling Xia, harveyyue, JasonLee, Jiatao Tao, JiangYang, Lei Zhu, Linghui Zeng, nichunen, Pan Wang,Sean-Gu, ShengJun Zheng, tianhui, Yangmin Luo, Yifei.Wu, yiming.xu