性能全面提升:Kylin4 vs Kylin3 官方性能测试报告全新出炉!

Kylin 社区于 2021 年 08 月 30 日发布 Apache Kylin 4.0.0高性能低云上 TCO 的开源 OLAP 平台。Kylin 4 升级了架构,使 Kylin 的学习、部署、调优更加简单,也使得在云上的部署、扩容更加简单。如果你对技术架构的细节感兴趣的话,欢迎阅读我们的技术文章:https://kylin.apache.org/blog/2021/07/02/Apache-Kylin4-A-new-storage-and-compute-architecture/ 

为了使得新老用户能够简单直接地了解 Kylin 3 和 Kylin 4 的性能差别,Kylin 发布小组在一个标准的软硬件环境,提供一个易于复现易于观测的性能测试方式,从而为用户提供不同版本之间 Kylin、乃至不同 OLAP 工具之间性能比较的手段。由于我们比较熟悉 AWS 系列产品,所以这里选择 AWS 平台的 EMR 产品作为测试平台。

准备

01

硬件资源一览

03bef392f942a6ae5f92bd63ca25dcb8.png

备注:

  • 什么是 vCPU?Each vCPU is a thread of either an Intel Xeon core or an AMD EPYC core, except for M6g instances, A1 instances, T2 instances, and m3.medium.

  • 关于选用的节点(EC2)的详细硬件信息, 请访问 AWS 官网:https://aws.amazon.com/ec2/instance-types

  • Kylin 3 使用磁盘空间较多,所以 Core 节点使用数据盘尺寸为 700GB;与此相对的,Kylin 4 的集群 Core 节点数据盘尺寸为 400GB

  • 创建 EMR 集群的描述文件见附件

02

Hadoop 组件版本一览

589fe519470e9c29e6e931bdd6f085ef.png

备注:

关于AWS EMR Hadoop 的更多版本信息,请访问官网 https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-release-5x.html#emr-5310-components

03

性能度量标准一览

63ad2c9fce4b337a59d262620371cf10.png

04

测试步骤

  1. 准备测试需要的 JMeter 文件,创建 EMR 集群的脚本

  2. 按照 scale factor = 10 分别创建 TPC-H 和 SSB 的数据文件,保存到 S3

  3. 创建 EMR 集群,根据不同 Kylin 的版本,对应的 Hadoop 组件有所不同,具体参考附件提供的脚本

  4. 下载 TPC-H 和 SSB 的数据文件,Hive 建表

  5. 部署和启动 Kylin 实例

  6. 导入 TPC-H 或者 SSB 的 Kylin 元数据,触发构建任务

  7. 记录 “Cubing Duration” 和 “Storage Size”

  8. 下载 JMeter 文件,在三分钟的预热查询后,依次执行单线程串行查询测试,多线程并发查询测试,每轮测试 15 分钟,测试完成收集保存 JMeter 的报告文件

  9. 释放集群资源,测试结束

测试结果

01

TPC-H 基准结果

a48fd7a200560628d39fbb94975858aa.png

平均查询响应时间对比

b65e678dac7495a64652ed547a067653.png

并发测试对比

对于 Kylin 4,我们做了单线程和四线程查询性能对比测试,结果如下。

58d03fefdcfb86cc8ac333e8b5e57d0b.png

02

SSB 基准结果

dbf48d6d6d8e125744fad690f2e8a004.png

平均查询响应时间对比

ff038c466e0b59beedc55825858c4efe.png

结论

数据加载时间和 Cube 存储大小

相对 Kylin 3 的 MR 构建引擎,得益于较高的资源利用率,同时减少了转换为 HFile 的步骤,Kylin 4 大大减少构建 Cube 使用的时间,构建时间(Cubing Duration)减少了 62.6%

由于 Kylin 3 存在两份不同格式的 Cube 文件,并且列式存储的 Parquet 使用的空间也较少,Kylin 4 的 Cube 磁盘空间(Storage Size)也大幅降低了 72.56%

查询性能

在复杂查询场景下,Kylin 3 查询优化难度较大,需要对 HBase RS Server、Kylin Query Server 进行反复优化,并且压力测试场景下出现查询节点不稳定,查询响应时间随时间进行不断变差的情况;Kylin 4 由于去除了Query Server 的单点瓶颈,Response Time 和 QPS 都有明显提升,在 TPC-H 查询集上,Kylin 4 有 5-7 倍的提升,其并发也有 4 倍的提升

在点查询场景下,Kylin 4 经过一些基本的调参,性能也能满足亚秒级查询的需求,与 Kylin 3 表现相对比较接近。

学习成本和调参难度

相对 Kylin 3 有众多的构建步骤,同时也依赖多种组件,如 Hive、MapReduce、HBase,需要学习和了解多种技术架构,熟悉多种组件参数配置,学习成本和调参难度较大。

与此对应,Kylin 4 构建和查询都统一切换到流行的 Spark 计算引擎,新用户上手 Kylin 4,学习和调参基本只需要掌握 Spark 即可,这些学习材料可以说很容易找到,并且常用的参数项要远远少于 Kylin 3。

其它

由于时间原因,这里 Kylin 3 的构建过程并没有使用 Spark 和 Flink 来进行测试,我们相信如果使用 Spark 和 Flink 作为构建引擎, Kylin 3 的构建速度会得到一定程度的提升,但是由于存在转换为 HFile 的步骤, Kylin 3 仍会慢于 Kylin 4。

囿于精力和个人水平,这次测试过程并没有做到百分百的发挥不同版本的最好水平,笔者在此特附上性能测试使用的配置文件、脚本、HTML 测试报告,欢迎大家多多尝试和发现更多有趣的结论。谢谢大家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值