SQL查询引擎对峙:Spark VS Impala VS Hive VS Presto

Posted IT168企业级

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL查询引擎对峙:Spark VS Impala VS Hive VS Presto相关的知识,希望对你有一定的参考价值。



近日,AtScale公布了第四季度主流大数据SQL引擎的测试结果,主要针对Spark、Impala、Hive/Tez以及Presto。



  

测试结果证实了我们早已实践出的一些事情:Impala是中等大小数据库查询的最佳选择,并且已经积累了不少用户,Presto在这方面也做得不错。Hive和Spark更适用于长时间分析查询。

  

AtScale产品管理方面副总Joshua Klar表示,许多公司客户使用两个引擎。通常他们认为Hive更稳定,并且更习惯于使用Hive进行长时间查询。所有的Hive客户都在Tez运行Hive,再也没有人使用MapReduce了,不过Spark基本集合了Hadoop MapReduce的所有优点。以我的经验来看,Spark与Hive之间的稳定性差距很久之前就不存在了,只要你懂得如何进行内存管理。从长远来看,我并不看好在Tez上使用Hive。因为对于一些普通的BI查询,Impala和Presto的表现似乎更加优秀。在内存逐渐变得廉价的时代,如果你可以承担得起在内存中进行大规模数据分析,剩下的基本就是BI模式的东西了。

  

根据AtScale测试结果,所有SQL引擎的效率较之过去都有明显提高,通过使用一个长久存活的守护程序(LLAP)代替与HDFS datanode的直接交互和一个紧密集成的DAG框架,Hive/Tez取得了令人瞩目的成果。不过,性能上依然不及Impala和Spark,但也不像以前一样缓慢笨拙了。推出了LLAP的Hive/Tez现在已在BI场景中实践了。




完整的测试报告非常值得一读,其中涉及的几大亮点有:


1、Spark 2.0应对大量查询的性能大幅改善,平均为1.6版本的2.4倍。小型查询性能早已经很好了,2.0保持了同样的水平。

  

2、Impala 2.6应对大量查询的性能提高为2.3版本的2.8倍。小型查询的性能维持原样。

  黑斑羚2.6是2.8 x 2.3版本一样快大型查询。小的查询性能已经好,保持大致相同。

  

3、推出了LLAP之后的Hive 2.1的查询速度是1.2版本的3.4倍,并且小型查询性能也提高为原来的两倍。如果你在使用Hive,这是一个不可错过的版本升级的机会哟。

  

虽说未来的SQL引擎还有很长的路要走,但好在过去一年,所有引擎的性能都得到了极大地提高,Impala和Preato继续引领着BI类型查询,Spark在大量查询方面的性能占据领先地位。无论如何,你的SQL引擎是时候升级了!




以上是关于SQL查询引擎对峙:Spark VS Impala VS Hive VS Presto的主要内容,如果未能解决你的问题,请参考以下文章

Impala为什么那么快

用于 ETL 的 Spark SQL 与 Impala

hive 或 impala 中的计算表统计信息如何加速 Spark SQL 中的查询?

大数据分析查询引擎Impala

ETL 选择,构建一个直接处理 SQL 查询引擎(impala)或原生数据库的 ETL? [关闭]

impala 理论