【大数据之数据仓库】kudu性能测试报告分析

本文由  网易云发布。

这篇博文主要的内容不是分析说明kudu的性能指标情况,而是分析为什么kudu的scan性能会这么龊!当初对外宣传可是加了各种 逆天黑科技的呀:列独立存储、bloom filter、压缩、原地修改、b+tree、mvcc ... ...

这里先贴个kudu和parquet小部分的TPCDS测试结果对比图吧:

没有对比就没有伤害,有了对比就有了乐趣。纵坐标是耗时,单位是秒,代表kudu的黄色柱子太高了,说人话就是kudu耗时太 长,性能太差!

老大:为什么kudu性能会这么差? 本人:我不清楚 ... ...

当时真的不知道原因,前前后后忙着测试,急着获取测试指标,还来不及分析,何况还是两个陌生的大系统:impala和kudu,很 是尴尬:(

等到TPCDS测试用例全部跑完以后,有一个空档期,就花了几天时间来找原因,阅读资料、翻文档、google来google去,过程这 里不再叙述,下面着重描述下原因吧。

我们知道impala有个交互式的管理工具impala-shell,它有个profile命令,在每次执行完sql以后执行它,可以获取到这个sql的执 行计划及每个点的耗时统计。因为测试kudu和parquet,计算引擎都用的是impala,所以是不是可以从这里面获取些信息?

所以我就拿了上图中对比比较明显的query7和query40做试验,分别对kudu和parquet执行了一遍,搜集了它们各自的profile,总 共有4个文件,然后拿来分析。可能你不信,profile的结果实在是太大了,1个文件接近1万行,你还有信心分析么?(query40的 profile见底下附件)当时我是一脸懵逼样,没办法,原因总得找,所以硬着头皮从头到尾的阅读。无意间,手贱,点开了以前经常 用来比对代码的beyond compare,把执行query40的两个profile(kudu和parquet)比对了下,一点点往下拉,在执行计划这一 段,居然真发现了宝!

parquet有runtime filter,而kudu没有,接着往下拉,对应的磁盘scan部分:

两者扫描磁盘获取的结果集也不一样了!!难怪在比较测试过程中,kudu集群跑query的时候会有大量的磁盘IO和网络传输开销, 而parquet负荷比较低!你看懂了么?

为什么kudu没有runtime filter?于是去kudu的jira库搜索,好吧,没找到!那试试impala的jira库呢,还真找到了,Matthew Jacobs是cloudera公司impala/kudu的开发工程师,找到他的两个jira单:impala-3741impala-4252

+

看到这里,基本上问题已经比较明确了,答案有了,可是我不甘心啊,于是不管三七二十一就注册了账号,在他们的jira库上提了 bug单:impala-4719(正常情况应该是在userlist发邮件咨询,那么就当我帮他们测试了jira库的权限问题了=_=),再次确认下 是否支持。

后来又重新去阅读了kudu的官方documents,字里行间其实已经有些端倪的,只不过当时没有引起足够的重视:

至此,本文结束。希望大伙儿能从中吸取到一点经验,谢谢!

了解 网易云 :
网易云官网:https://www.163yun.com/
新用户大礼包:https://www.163yun.com/gift
网易云社区:https://sq.163yun.com/

原文地址:https://www.cnblogs.com/163yun/p/8918568.html

时间: 2024-10-12 13:21:00

【大数据之数据仓库】kudu性能测试报告分析的相关文章

MongoDB大数据高并发读写性能测试报告

服务器大小: 单节点部署,磁盘1T,内存128G 并发导入规模: 1,多线程并发导入csv文件 2,csv文件分1万.10万.100万.200万行记录4种大小 3,每个csv对应一个collection 并发查询规模 1,多线程并发查询不同collection 2,分全表查询和局部查询两种场景 性能测试结果: 导入性能 csv文件大小(万行记录) 并发线程数 导入耗时(秒)  累计导入csv文件数量 200 1 60 5000 200 10 105 5000 200 40 330(峰值内存110

大数据江湖之即席查询与分析(下篇)--手把手教你搭建即席查询与分析Demo

上篇小弟分享了几个"即席查询与分析"的典型案例,引起了不少共鸣,好多小伙伴迫不及待地追问我们:说好的"手把手教你搭建即席查询与分析Demo"啥时候能出?说到就得做到,差啥不能差人品,本篇只分享技术干货,目的只有一个,就是让每一个伙伴都能根据本篇向导搭建出一个"即席查询与分析Demo". 为了让各位伙伴能够尽快上手体验,所选案例就以上一篇中的"机动车缉查布控即席查询与分析"为例,上篇我们已经比较详尽的分析了用户需求,没好好听课的

开源大数据引擎:Greenplum 数据库架构分析

Greenplum 数据库是最先进的分布式开源数据库技术,主要用来处理大规模的数据分析任务,包含数据仓库.商务智能(OLAP)和数据挖掘等.自2015年10月正式开源以来.受到国内外业内人士的广泛关注.本文就社区关心的Greenplum数据库技术架构进行介绍. 一. Greenplum数据库简单介绍 大数据是个炙手可热的词.各行各业都在谈.一谈到大数据,好多人觉得就是Hadoop.实际上Hadoop仅仅是大数据若干处理方案中的一个.如今的SQL.NoSQL.NewSQL.Hadoop等等.都能在

大数据之数据仓库

1. 摘要 对于大数据而言,数据仓库承载着整个企业的全业务的数据.早期数仓在关系型数据如Oracle,MySql上.到大数据时代,基于hadoop生态的大数据架构,数仓基本上都是基于hive的数仓.对于很多大数据开发者而言,特别是早期,很多开发者认为hive数仓就是和业务相关,隐射Hdfs数据文件的一张张表.针对于hive数仓而言,最终看到的确实是一张纸表,但这些表是如何根据业务抽象出来的.表之间的关系.表如何更好的服务应用这些问题是数仓建模.数仓技术架构的核心.一个好的数仓技术架构和数仓建模.

大数据分页实现与性能优化

摘要:Web 应用程序中经常使用数据分页技术,该技术是提高海量数据访问性能的主要手段.实现web数据分页有多种方案,本文通过实际项目的测试,对多种数据分页方案深入分析和比较,找到了一种更优的数据分页方案Row_number()二分法.它依靠二分思想,将整个待查询记录分为2部分,使扫描的记录量减少一半,进而还通过对数据表及查询条件进行优化,实现了存储过程的优化.根据Row_number()函数的特性,该方案不依赖于主键或者数字字段,大大提高了它在实际项目中的应用,使大数据的分页效率得到了更显著的提

利用大数据技术实现日志记录与分析

整体思路 整体分三步: 1.记录日志 1.记录日志采用UDP协议写入大数据平台,大数据平台采用Hive表来存储日志信息. 2.写入日志的工作,封装了一个Auto.Lib3.Dealer.Log.dll,这个dll要依赖ZooKeeperNet.dll 和 log4net.dll.这三个dll文件地址如下: dll文件 TFS上路径 Auto.Lib3.Dealer.Log.dll $/dealer/MCH/CommonLib/Auto.Lib3.Logging.dll ZooKeeperNet.

大数据高效复制的处理案例分析总结

一个老客户提出这样的需求,希望将SQLServer中的某个表的数据快速复制到SQLite数据库里面以便进行定期的备份处理,数据表的记录大概有50多万条记录,表有100个字段左右,除了希望能够快速做好外,效率是第一位的,他自己测试总是在一两个小时的时间以上.客户提出这样的需求,我我觉得肯定是没有很好的利用事务的特性,否则速度应该会快得多,但是具体能快到什么程度,心里也不太确定.于是按照这个要求,把这样大的表数据复制作为一个案例来进行研究,最终大数据的复制处理,不到20分钟就可以完成全部数据的复制更

基于大数据的银行反欺诈的分析报告

0,大数据知识背景. 在我第一次接触大数据的时候,那个故事便是“啤酒和尿布”. 是美国沃尔玛超市的一则营销案例.每到周末的时候,啤酒和尿片的销量很高,经分析,原来是周末电视转播球赛,男人们要一边喝酒一边看球,受冷落的妻子们只好出门逛街或找闺蜜吐槽,照顾孩子的任务自然就归了男人们.于是,男人们在买啤酒的同时随手买尿片.超市把啤酒和尿片放到一起,自然就提高了销量.还有一些案例,如google对流感病毒散布的预测,如洛杉矶警察局对犯罪的预测,乃至对机票价格波动的预测,对天气的预测,这都是大数据的范畴.

蔡先生论道大数据之十四:案例分析(2) 国足也可以进世界杯

巴西世界杯,德国队夺冠,首推主教练勒夫功不可没,还有场上所有队员的精彩表现,相信大家都没二话,我今天就说一说德国队背后的另一个功臣"Match In-sights". 哈,"Match In-sights"可不是一个人的名称,是SAP为德国队量身定制的一款基于大数据的足球解决方案的电脑系统,堪称德国队的第12人.这一套系统可以迅速收集,处理分析球员和球队的技术数据,使用"数据和事实"来优化球队配置,从而提升球队作战能力,并通过分析对手技术数据,找