10亿数据量的即席查询 spark 和 kylin的对比

Kylin 与 Spark SQL相比,有哪些差异和优势

SparkSQL本质上是基于DAG模型的MPP。而Kylin核心是Cube(多维立方体)。关于MPP和Cube预处理的差异,重复如下:

>

MPP [1] 

的基本思路是增加机器来并行计算,从而提高查询速度。比如扫描8亿记录一台机器要处理1小时,但如果用100台机器来并行处理,就只要一分钟不到。再配合

列式存储和一些索引,查询可以更快返回。要注意这里在线运算量并没有减小,8亿条记录还是要扫描一次,只是参与的机器多了,所以快了。

>

MOLAP Cube [2][3] 

是一种预计算技术,基本思路是预先对数据作多维索引,查询时只扫描索引而不访问原始数据从而提速。8亿记录的一个3维索引可能只有几万条记录,规模大大缩

小,所以在线计算量大大减小,查询可以很快。索引表也可以采用列存储,并行扫描等MPP常用的技术。但多维索引要对多维度的各种组合作预计算,离线建索引

需要较大计算量和时间,最终索引也会占用较多磁盘空间。

了有无预处理的差异外,SparkSQL与Kylin对数据集大小的偏好也不一样。如果数据可以基本放入内存,Spark的内存缓存会让SparkSQL

有好的表现。但对于超大规模的数据集,Spark也不能避免频繁的磁盘读写,性能会大幅下降。反过来Kylin的Cube预处理会大幅减小在线数据规模,

对于超大规模数据更有优势。



数据量大约在10亿+,需要做一个即席查询,用户可以主动输入搜索条件,如时间。可提供一定的预处理时间。每天还有新数据加入。

    10亿+的数据对于普通的rdbms还是有些压力的,而且数据每天还在不停的增长,所以我们运用了我们的spark技术来做一个计算加速。关于增量更新的相关,我会在后续的博客中介绍。

语句如下

select count(*) a,b from table_a where c = '20170101' group by a,b order by a

首先用我们的spark-local模式进行测试数据量成倍上涨。

数据量table_a的倍数spark-local i3 ddr3 8gspark-local i7 ddr4

32g

spark-yarn

5g,3core 3instance

800w10.512s0.40.771

1600w20.512s0.50.552

3200w40.794s0.680.579

6400w81.126s0.9450.652

1亿2800w161.968s1.40.922

2亿5600w323.579s2.5741.475

5亿1200w646.928s5.0013.384

10亿2400w12813.395s9.5285.372

    我们可以看到单核cpu的性能也会影响spark的性能,所以在衡量一个spark集群的计算性能时,不光要看有几个core,几个instance,还要看单个core的计算能力,而且数据量越大,差距也越大。

    spark-sql有一个特点,同样的语句,第二,第三次计算会比之前快,如果不停地运行同一个语句,你会发现时间会成下降趋势直到一个稳定值,一般为2-3次后会达到最小值,在10亿这个级别上,在yarn模式下,运行3次左右后,性能可以达到3s左右,对于一个测试用的小集群已经很让人满意了,如果是正规的spark集群,相信性能还会好很多,做即席查询完全够用了。个人理解是spark会有一定的缓存机制,但是不会缓存在多的东西,这个和之后要讲的Kylin还是不同的。kylin如果是同样的语句,第二次绝对是秒出。

下面我们尝试了用Kylin,效果很让人震撼。

Kylin官网如下

http://kylin.apache.org/

Apache Kylin是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。

Kylin中国唯一Apache顶级项目。支持下哦

Kylin是基于Hive表的,所以我们还是要将我们的数据先导入到hive中去。

Kylin的安装在这里就不将了,很简单,官网有介绍,启动下服务就可以了。然后打开7070端口

要使用Kylin计算,我们要先建立Model,一个model需要对应一张hive表,然后再model的基础上建立cube,这里我们创建一个默认的cube即可。

在Model页面我们可以看我们创建的cube如下图所示。

在列表中我们可以看到cube大小,记录数,上次构建时间等信息。

build好cube后就可以查询了,如果build成功cube的状态会变为READY,这时就可以查询了。

还是用之前的3节点的集群做性能测试

如上图所示,我们在查询界面可以看到这个语句走了哪个project,cubes,耗时等信息

测试结果如下

数据量构建时间(全量)sql时间

800w6.5min0.15s

1亿2800w48min0.15s

2亿5600w90.17min0.15s

5亿1200w142.40min执行错误

    这里到5亿的时候构建cube可以成功,但是运行sql会报错。应该是我没配置好。

    可以看到,kylin的查询性能还是非常可观的,而且查询时的资源消耗非常少,这点和spark不一样,由于这样的特性相对于spark,同样性能的集群上kylin就可以支持高得多的并发,并且提供高得多的查询性能,但是kylin的代价是很长的构建cube的时间和更多的磁盘占用,而且据我的经验来看,kylin对sql的支持不如spark-sql支持的好。如果要把原来rdbms的查询迁移到大数据集群中来,spark-sql的适应性会更好。

    虽然kylin也支持增量构建,但是相对于spark来说,数据准备的时间还是会长很多,因为spark也支持增量更新。如果允许有数据预处理时间的,例如把构建放到晚上12:00过后进行,在这种场景下,kylin也许更适合.但是如果需要数据实时变化,而且维度很多,sql完全不确定的情况,也许spark-sql更合适一些,具体怎么选择,还要看应用场景。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354