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. 16-jmeter-CLI模式(无图形界面)

    GUI和非GUI图形界面的使用区别: 非GUI界面:命令模式运行可以将实时的log文件保存到本地,位置可以自定义,不会占用太多资源,可以长时间运行. GUI图形界面:在运行时会消耗资源,且图形界面运行 ...

  2. [编译] 7、在Linux下搭建安卓APP的开发烧写环境(makefile版-gradle版)—— 在Linux上用命令行+VIM开发安卓APP

    April 18, 2020 6:54 AM - BEAUTIFULZZZZ 目录 0 前言 1 gradle 安装配置 1.1 卸载系统默认装的gradle 1.2 下载对应版本的二进制文件 1.3 ...

  3. 用Jenkins集成ios项目设置多scheme,同一代码自动输出多个环境包 实现便捷切换API环境

    Jenkins 安装使用参考我的博客http://www.cnblogs.com/zhujin/p/9064820.html Xcode 配置:说明 一个schema 对应一套环境(如生产,测试),一 ...

  4. Css3 新增的属性以及使用

    Css3基础操作 . Css3? css3事css的最新版本 width. heith.background.border**都是属于css2.1CSS3会保留之前 CSS2.1的内容,只是添加了一些 ...

  5. Geber文件,装配图,BOM表的输出

    一.Geber文件的输出步骤: 注:选择需要导出的层 注:所指箭头的地方都多加个零,让输出有更大的空间来容纳 总结:这就是最终的Geber文件了 二.NC   Drill file的输出: 三.IPC ...

  6. matlab计算LZ复杂度

    我这个计算得14通道,每个通道截取3000个数据得复杂度,最后将计算得出得数据存储到本地txt文档中 function LZC(data) % 计算一维信号的复杂度 % data时间序列 % lzc: ...

  7. 数据结构之栈—强大的四则复杂运算计算器(超过windows自带的科学计算器)【中缀转后缀表达式】

    比windows自带计算器还强的四则复杂运算计算器! 实测随机打出两组复杂算式:-7.5 * 6 / ( -2 + ( -6.5 -  -5.22 ) )与7.5+-3*8/(7+2) windows ...

  8. 跨行程序员Java进阶--基础语法

    1.基础语法 Hello Wolrd 首先定义类 -- public class 类名 在类定义之后加上一对大括号 -- {} 在大括号中间添加一个主(main)方法/函数 -- public sta ...

  9. 详解 通道 (Channel 接口)

    在本篇博文中,本人主要讲解NIO 的两个核心点 -- 缓冲区(Buffer) 和 通道 (Channel)之一的 缓冲区(Buffer), 有关NIO流的其他知识点请观看本人博文<详解 NIO流 ...

  10. 分享一个404页面(猴子动态SVG图)

    说明 在CSDN看到的一个404界面,简洁大气非常棒我的个人网站已经用上了! 代码 防止原页面失效,代码 粘贴在下面 <!DOCTYPE html> <html lang=" ...