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预处理会大幅减小在线数据规模,对于超大规模数据更有优势。
版权声明:本文为CSDN博主「weixin_34186950」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_34186950/article/details/92715211
原文链接:https://blog.csdn.net/weixin_34186950/article/details/92715211
更多相关推荐
mongodb相比mysql有什么优势_与MySQL和PostgreSQL相比,MongoDB有哪些优势?
Theschema-lessnaturemakesitidealtostoredynamicdata,suchasCMSandCRMentities,whichtheendusercanusuallycustomizeasnecessaryorsemistructuredata(providedbyhuman).Ontopofthat,Ravenoffersapowerfulindexingmec...
Linux与Windows相比有哪些优势
在实际应用过程中,很多人都会拿Linux系统与Windows系统进行对比。想知道相比于人人都会使用的Windows系统,Linux有哪些优点。 不过在回答这个问题之前,我们首先要明确——“用户”,否则这个问题并不具备可回答...
Linux与Windows相比有哪些优势
在实际应用过程中,很多人都会拿Linux系统与Windows系统进行对比。想知道相比于人人都会使用的Windows系统,Linux有哪些优点。 不过在回答这个问题之前,我们首先要明确——“用户”,否则这个问题并不具备可回答的意义....
Transformer相比RNN和LSTM有哪些优势?
Transformer是一种基于自注意力机制的深度学习模型,相较于RNN和LSTM,它具有以下优势:1.**并行计算**:RNN和LSTM需要顺序处理序列数据,因此很难进行并行计算。而Transformer的自注意力机制允许同时处理整个序列,...
go语言有哪些优势
1、学习曲线容易Go语言语法简单,包含了类C语法。因为Go语言容易学习,所以一个普通的大学生花几个星期就能写出来可以上手的、高性能的应用。在国内大家都追求快,这也是为什么国内Go流行的原因之一。Go语言的语法特...