Kylin原理|去 HBase,Kylin on Parquet 性能表现如何?
Posted HBase技术社区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kylin原理|去 HBase,Kylin on Parquet 性能表现如何?相关的知识,希望对你有一定的参考价值。
Kylin on HBase 方案经过长时间的发展已经比较成熟,但也存在着局限性,因此,Kyligence 推出了 。通过标准数据集测试,与仍采用 Kylin on HBase 方案的 Kylin 3.0 相比,Kylin on Parquet 的构建引擎性能有了很大的提升,对于复杂查询也有更好的性能表现。
本篇文章主要通过使用标准 SSB 数据集和 TPC-H 数据集,来分别获取 Kylin on Parquet 和 Kylin 3.0 构建引擎以及查询引擎的性能数据,然后进行对比分析,让用户们能够更清楚地了解到当前 Kylin on Parquet 相对于 Kylin 3.0(仍采用 Kylin on HBase )的优势和不足。
SSB(Star Schema Benchmark)是一套用于测试数据库产品在星型模式下性能表现的基准测试规范,也是 OLAP 领域经常会用到的数据集。
TPC(Transaction Processing Performance Council,即事务处理性能委员会)有多种基准测试体系,在这里我们使用了 TPC-H 数据集。使用 TPC-H 的主要目的是测试数据库系统复杂查询的响应时间,以此来评价特定查询的决策支持能力。
https://github.com/Kyligence/ssb-kylin
https://github.com/Kyligence/kylin-tpch
测试环境配置
Hadoop 集群:
4 个物理节点
Yarn 队列拥有 400G 内存和 128 个 CPU 核数
Kylin 3.0 使用的是 MapReduce 引擎。Kylin on Parquet 目前只支持内部定制版本的 Spark 引擎,定制版相对于社区版主要是做了性能方面的优化,其他方面与社区版 Spark 并没有区别。
Spark 源码仓库
https://github.com/Kyligence/spark/tree/2.4.1-kylin-r3
Spark 二进制包下载
https://download-resource.s3.cn-north-1.amazonaws.com.cn/osspark/spark-2.4.1-os-kylin-r3
02
构建性能对比
Over SSB
下面两个图分别表示构建时间和构建完成后占用存储空间的对比。我们可以看到在 SSB 6000 万和 9000 万数据量下,新的构建引擎构建速度快了一倍,最终占用存储空间也减少了接近一倍。
值得一提的是,Kylin on Parquet 最终构建的数据只包含 HDFS 上的数据,由于 Kylin on HBase cuboid 文件构建完成之后 HDFS 上的文件需要转换为 HFile,而且为了 merge 准备,HDFS 上的数据默认是不会清除的,所以实际存储还会多一倍空间;而使用 Parquet 后,只需要一份数据即可以用于查询,也可以用于 segment 合并,所以总体对比,Kylin on Parquet 的占用空间大约只有 Kylin on HBase 存储的 1/3 到 1/4 !
构建完成后前端页面会显示 Cube 的大小,如下图所示:
△ Kylin on Parquet
△ Kylin 3.0
03
查询性能对比
Kylin on Parquet 的查询引擎会在第一次查询的时候在 YARN 上创建一个常驻进程,专门用来处理查询任务,所以第一次查询会比较慢(初始化过程大约 20 秒),这里的测试并没有将第一次查询时间统计在内。
最近一周,查询引擎兼容性的问题也得到了进一步的修复,目前大部分 SQL 查询包括 CountDistinct, TopN, Percentile 等目前都已经能够支持。
我们使用 SSB 数据集(9000万行)和TPC-H(1200万行)官方标准 SQL 进行查询响应时间测试,查询响应时间越低,查询引擎性能表现越好。两个数据集的标准查询 SQL 可以在文章开始提到的 SSB 和 TPC-H 数据集工具仓库中找到。
Over SSB
从下图中我们可以看到对于 SSB 数据集, Kylin on Parquet 查询响应要比 Kylin 3.0 的要慢,但是大部分的查询还是能够在 1 秒内返回。
Over TPC-H
因为 TPC-H 的主要目的是测试数据库系统复杂查询的响应时间,所以 TPC-H 数据集的 SQL 更加复杂,要求更高,从下图中可以看到 Kylin on Parquet 对查询复杂的 SQL 处理时间更快,具有明显优势。
04
总结
通过 Kylin on Parquet 和 Kylin 3.0 查询构建引擎的性能对比数据我们能够看到,Kylin on Parquet 的构建引擎性能有了很大的提升,构建时间和存储空间都减少了接近一倍。从 SSB 数据集查询对比结果来看,查询引擎对于简单的查询请求和 Kylin 3.0 有一定差距,但是大部分还是能够做到秒级响应。而对于 TPC-H 数据集测试使用的比较复杂的 SQL 来说,一般后计算会比较多,新的查询引擎会有更好的性能表现。
大家有问题可以提 issue 和 pr,也欢迎大家加一下上图的微信群,一起讨论完善。
往期案例与实践
HBase 官方社区推荐必读好文
关注 HBase 技术社区,获取更多技术干货
Kylin's Github Repo 传送门
↓↓↓
https://github.com/apache/kylin
喜欢❤️Kylin 的话,别忘了 Star 以上是关于Kylin原理|去 HBase,Kylin on Parquet 性能表现如何?的主要内容,如果未能解决你的问题,请参考以下文章 Kylin - 查询 Hbase 上的 OLAP 多维数据集? Kylin开启错误:Failed to find metadata store by url: kylin_metadata@hbase 解决办法 在Ubuntu20.04安装Kylin4 On Docker并在DataGrip配置JDBC协议连接容器内Hive1.2.1及Kylin4.0.0