- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 视频嵌入链接 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
化繁为简,全新升级,Kylin 4 再上征程
俞霄翔-Kyligence 高级软件工程师 / Apache Kylin Committer & PMC
展开查看详情
1 .
2 .化繁为简, 全新升级 Kylin 4 再上征程 俞霄翔, Apache Kylin Committer & PMC
3 .About Me • 俞霄翔 • Kyligence 软件工程师 • Kylin Committer & PMC
4 .Agenda • Kylin 4 全新架构介绍 • Kylin 4 开发计划预览 • 联系 Kylin 社区
5 . Kylin 4.0 全新架构介绍 1. Kylin 是什么 2. Kylin 3 局限 3. Kylin 4 新架构
6 .Apache Kylin 介绍 • Analytical Data Warehouse For Big Data • Apache Kylin™ 是一个开源的分布式数 据仓库分析引擎,为 Hadoop 等大型分 布式分析平台之上的超大规模数据集通 过标准 SQL 查询及多维分析 ( OLAP ) 功 能,提供亚秒级的交互式分析能力。
7 .Apache Kylin 介绍 Data Mart(应用层/集市 层) Kylin DWD(明细数据层) ODS(原始数据层)
8 .Apache Kylin 介绍 有预计算,基于 Cube 出结果, I/O 少,计算少,延迟低 预聚合数据
9 .Apache Kylin 的局限一 • 查询节点单点瓶颈 Sort • 基于 Calcite 的查询引擎, 将各个节点 的 Cube 数据拉 Agg 取到查询节点进行后聚合处 理 Project • 当查询复杂、后聚合处理数 据量大的时候,容易卡死和 OOM Filter Cube
10 .Apache Kylin 的局限二 • HBase 不适合作为 Cube 数据存储 • 极致的写优化,为低延迟、写多、读少的场景而设计,而 OLAP 则是读多,写少的场景 • 列簇存储,并非真正列式存储,I/O 效率欠佳 • 单 Rowkey 索引,缺少二级索引 • 无数据类型,应用需要自己编解码,代码逻辑复杂,调试 麻烦 • 版本众多,接口兼容性差,导致 Kylin 维护难 • 需要额外维护 HBase 集群
11 .Kylin 4 Fully on Spark
12 .Cube 构建引擎 使用恰好的资源:基于构建数据源的自动资源调整 构建一步完成:构建任务放在一个 Spark Application,包含了全 局字典 、构建平表、计算Cuboid 使用 Parquet 存储字典数据和 Cube 数据
13 .查询引擎 • Spark 作为查询入口 ,只需要少部分参数调整就可以完 成大部分的性能优化 • 设置合理的Partition 大小 • 尽可能完成 Cuboid 文件剪枝 • 设置合理的 ShardBy Key 和 Rowkey https://cwiki.apache.org/confluence/disp lay/KYLIN/How+to+improve+cube+buildin g+and+query+performance
14 .Kylin 4 on TPC-H • 复杂查询有了明显的提 升 • 小查询性能仍然在亚秒 级响应 • 查询并发 Task 可以灵 活设置 https://cwiki.apache.org/confluence/disp lay/KYLIN/Performance+Benchmark+Repor t+of+Kylin+4.0.0
15 . Kylin 4.X 开发计划预览 1. Local Cache + 软亲和调度 2. 支持 Page Index 3. Fully on Spark 4. 更好的 Compute engine
16 .Local cache + 软亲和调度 • 存算分离是一个趋势,使用对象 存储可以获得近乎无限的存储空 间 • 在 Kylin 4.0 执行查询时, 主要经过以下几个阶段,其中用 虚线标注出了可以使用本地缓存 来提升性能的阶段 • File list cache:在 spark driver 端对 file status 进行缓存 • Data cache:在 spark executor 端对数据进行缓存
17 .Local cache + 软亲和调度 • 根据文件名计算 hash 缓 存文件和调度 Task • 当目标 executor 均不可 达或者没有资源供调度, 回退到 Spark 随机调度 机制 • Data Local Cache as Lib
18 .Local cache + 软亲和调度 • 无论对于简单查询还是 复杂查询都能够获得明 显的性能提升 • 高并发查询场景下存在 一定的性能损失
19 .云上 Standalone 部署 • Fully on Spark,不再依 赖于 HBase 等复杂的组 件 • Object Storage 代替 HDFS,使用 Spark Standalone 作为 Resource Manager • 轻量的架构,更加云原 生, 可以做到简单的扩 缩容
20 .支持 Page Index • Kylin 4 + Spark 3.2 + Parquet 1.12 • 点查询,平均查询延迟减少了约 Query Label Spark 3.2 关 Spark 3.2 开启 Improve 40% 闭 Index Index • 范围查询,平均查询延迟有略微 Q1(Point) 2777.74 1039.14 62.59% 下降 Q2(Point) 1788.45 1123.28 37.19% • 对第一个过滤列有依赖 Q3(Small Range) 2334.45 1113.97 52.28% Q4(Small Range + 2617.68 1133.03 56.72% Complex) Q5(Large Range) 13290.55 13490.31 -1.50% Q6(Range + Complex) 4670.27 2949.71 36.84%
21 .更好的 Metadata • 更加灵活的 Cuboid 构建 • Agg/Cuboid 级别的 Rowkey ShardBy 设置 • 消除维度数量 64 位限制 • 支持添加维度 • 目前仍在设计中: https://cwiki.apache.org/confluence/display/KYLIN/Design+ Document+for+Kylin+Metadata+V2~Draft~CN
22 .更好的 Compute Engine • 使用 Native 语言实现计算引擎,消除 GC 影响 • 利用向量化技术技术榨干硬件性能 • Arrow 作为数据交换的内存数据格式 • 更多信息请关注社区动态
23 . 联系Kylin社区 1. 邮件组 2. 微信公众号 3. 哔哩哔哩
24 .社区 • 官网:kylin.apache.org • 邮件列表:user@kylin.apache.org • 微信公众号:apachekylin • Bilibili 账号:Kyligence
25 .