Kylin on HBase 方案经过长时间的发展已经比较成熟,但也存在着局限性,因此,Kyligence 推出了 Kylin on Parquet 方案(了解详情戳此处)。通过标准数据集测试,与仍采用 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 的主要目的是测试数据库系统复杂查询的响应时间,以此来评价特定查询的决策支持能力。

Kyligence 公司研发了适用于 Kylin 的 SSB 和 TPC-H 数据集工具,并且包含了标准 SQL,源码仓库地址如下:

  • https://github.com/Kyligence/ssb-kylin
  • https://github.com/Kyligence/kylin-tpch

01

测试环境配置

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 来说,一般后计算会比较多,新的查询引擎会有更好的性能表现。

目前, Kylin on Parquet 方案(了解详情戳此处)还处在不断完善的阶段,欢迎大家来体验。最后附上 GitHub 仓库地址:https://github.com/Kyligence/kylin-on-parquet-v2.git。

大家有问题可以提 issue 和 pr,也欢迎大家加一下上图的微信群,一起讨论完善。

了解更多大数据资讯,点击进入Kyligence官网

去 HBase,Kylin on Parquet 性能表现如何?的更多相关文章

  1. Kylin on Parquet 介绍和快速上手

    Apache Kylin on Apache HBase 方案经过长时间的发展已经比较成熟,但是存在着一定的局限性.Kylin 查询节点当前主要的计算是在单机节点完成的,存在单点问题.而且由于 HBa ...

  2. Hadoop + Hive + HBase + Kylin伪分布式安装

    问题导读 1. Centos7如何安装配置? 2. linux网络配置如何进行? 3. linux环境下java 如何安装? 4. linux环境下SSH免密码登录如何配置? 5. linux环境下H ...

  3. Reporting Services 的伸缩性和性能表现规划(转载)

    简介 Microsoft? SQL Server? Reporting Services 是一个将集中管理的报告服务器具有的伸缩性和易管理性与基于 Web 和桌面的报告交付手段集于一身的报告平台.Re ...

  4. R语言︱ROC曲线——分类器的性能表现评价

    笔者寄语:分类器算法最后都会有一个预测精度,而预测精度都会写一个混淆矩阵,所有的训练数据都会落入这个矩阵中,而对角线上的数字代表了预测正确的数目,即True Positive+True Nagetiv ...

  5. spark生成大宽表的parquet性能优化

    1.  背景介绍 将一份数据量很大的用户属性文件解析成结构化的数据供查询框架查询剖析,其中用户属性包含用户标识,平台类型,性别,年龄,学历,兴趣爱好,购物倾向等等,大概共有七百个左右的标签属性.为了查 ...

  6. Unity 5.4 公开测试版发布:增强的视觉效果,更佳的性能表现

    为用户提供可靠稳定的产品是我们的一贯使命,现在我们将发布Unity 5.4 beta版本,提供所有的用户公开测试,这包含了Unity Personal Edition版本用户.我们非常希望大家下载并尝 ...

  7. HBase入门笔记--读性能优化

    一.前言 在生产环境使用HBase过程中,随着数据量的不断增加,查询HBase数据变得越来越慢,对于业务来说是不可用的,需要对读性能进行优化 二.问题定位 从hbase监控指标来看,发现FullGC次 ...

  8. HBase设计与开发性能优化(转)

    本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法.有关HBase系统配置级别的优化,这里涉及的不多,这部分可以参考:淘宝Ken Wu同学的博客. 1. 表的设计 1.1 Pr ...

  9. 什么是HBase(六)性能调优

    硬件层面 内存要大,最好是ECC(Error Checking and Correcting),实现内存的动态纠错:CPU要多路(每个路彼此隔离)每个路一个CPU,每个cpu上面一般都是2~12核. ...

随机推荐

  1. "段落"组件:<p> —— 快应用组件库H-UI

     <import name="p" src="../Common/ui/h-ui/text/c_p"></import> <te ...

  2. Win安装docker

    Windows Docker 安装 win7.win8 系统 win7.win8 等需要利用 docker toolbox 来安装,国内可以使用阿里云的镜像来下载,下载地址:http://mirror ...

  3. linux中操作k8s的基本命令-更新中

    linux中操作k8s的基本命令 最近工作中使用到了k8s,那么就来总结下平时使用到的基本的命令 获取某个namespace下的pod 获取某个namespace下的pod,展示出ip和pod信息 查 ...

  4. Linux下配置mail使用外部SMTP发送邮件

    修改/etc/mail.rc,增加两行:指定外部的smtp服务器地址.帐号密码等. # vi /etc/mail.rc set from=demo@qq.com smtp=smtp.qq.com se ...

  5. paddlehub Test on win10

    conda 构建虚拟环境 1)虚拟环境下安装paddlepaddle 1.7 2)pip install paddlehub 3)添加环境变量hub_home,以免模型把c盘撑爆 4)下载的模型在.p ...

  6. L25词嵌入进阶GloVe模型

    词嵌入进阶 在"Word2Vec的实现"一节中,我们在小规模数据集上训练了一个 Word2Vec 词嵌入模型,并通过词向量的余弦相似度搜索近义词.虽然 Word2Vec 已经能够成 ...

  7. L23模型微调fine tuning

    resnet185352 链接:https://pan.baidu.com/s/1EZs9XVUjUf1MzaKYbJlcSA 提取码:axd1 9.2 微调 在前面的一些章节中,我们介绍了如何在只有 ...

  8. stand up meeting 11/27/2015-11/29/2015

    part 组员 今日工作 工作耗时/h 明日计划 工作耗时/h UI 冯晓云   确定释义显示方案并进行代码实现:     4  完成UI设计的各项动能按钮的代码实现  6 数据库 朱玉影  导入了4 ...

  9. Eclipse Hadoop源码阅读环境

    一.解压hadoop src包到workspace目录.为加快下载jar包的速度,在eclipse的maven设置里将配置文件的路径设置正确,然后配置maven的settings.xml: <m ...

  10. pyinstaller打包

    参考 官网:http://www.pyinstaller.org/ pyinstaller参数使用 使用spec文件 安装 Windows依赖pypiwin32,新版的pyinstaller已经包含了 ...