Kylin 与 Spark SQL的差异性

//
Kylin 与 Spark SQL的差异性 – 惊帆的BLOG
http://www.bucry.com/archives/1893.html
Kylin在目前成为大数据平台的神兽,其主要的逻辑的是针对大量的数据进行预处理,将预处理的结果保存在hbase里面,后续的查询针对hbase,于是提高了速度,这样的解决方案也有他的弊端:

1.如果预处理的结果并没有完成,那么查询依旧是全量数据处理,速度不高。
2.如果数据要求实时,此方案做不到。

当然在大数据领域,使用spark sql 作为处理方案的也是大有人在,那么这两类数据处理的方案有何差异性,在此简单的描述下:

SparkSQL本质上是基于DAG模型的MPP。而Kylin核心是Cube(多维立方体)。

关于MPP和Cube预处理的差异,重复如下:

MPP 的基本思路是增加机器来并行计算,从而提高查询速度。比如扫描8亿记录一台机器要处理1小时,但如果用100台机器来并行处理,就只要一分钟不到。再配合列式存储和一些索引,查询可以更快返回。要注意这里在线运算量并没有减小,8亿条记录还是要扫描一次,只是参与的机器多了,所以快了。

MOLAP Cube 是一种预计算技术,基本思路是预先对数据作多维索引,查询时只扫描索引而不访问原始数据从而提速。8亿记录的一个3维索引可能只有几万条记录,规模大大缩小,所以在线计算量大大减小,查询可以很快。索引表也可以采用列存储,并行扫描等MPP常用的技术。但多维索引要对多维度的各种组合作预计算,离线建索引需要较大计算量和时间,最终索引也会占用较多磁盘空间。

除了有无预处理的差异外,SparkSQL与Kylin对数据集大小的偏好也不一样。

如果数据可以基本放入内存,Spark的内存缓存会让SparkSQL有好的表现。

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

    原文作者:葡萄喃喃呓语
    原文地址: https://www.jianshu.com/p/d95b2434a8bf
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞