impala和presto

作者:拥抱大数据
链接:https://www.zhihu.com/question/391626341/answer/1204632615
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

引擎介绍:

首先你要知道Presto,Impala都属于开源OLAP引擎.

Presto是一个分布式SQL查询引擎,FaceBook于2013年11月份对其进行了开源, 它被设计为用来专门进行高速、实时的数据分析。它支持标准的ANSI SQL,包括复杂查询、聚合(aggregation)、连接(join)和窗口函数(window functions)。Presto 本身并不存储数据,但是可以接入多种数据源,并且支持跨数据源的级联查询。Presto是一个OLAP的工具,擅长对海量数据进行复杂的分析;但是对于OLTP场景,并不是Presto所擅长,所以不要把Presto当做数据库来使用。

Impala是实时交互SQL大数据查询工具,是Google Dremel的开源实现(Apache Drill类似),Cloudera推出的Impala系统,它拥有和Hadoop一样的可扩展性、它提供了类SQL(类Hsql)语法,在多用户场景下也能拥有较高的响应速度和吞吐量。Impala还能够共享Hive Metastore,甚至可以直接使用Hive的JDBC jar和beeline等直接进行查询,并且支持丰富的数据存储格式(Parquet、Avro等)。此外,Impala 通过使用分布式查询引擎(由 Query Planner、Query Coordinator 和 Query Exec Engine 三部分组成),可以直接从 HDFS 或 HBase 中用 SELECT、JOIN 和统计函数查询数据,从而大大降低了延迟。

2 性能总结:

Impala的计算速度是其一大优点,多表查询性能和Presto差不多,单表查询方面却不如Presto好。而且Impala不支持update、delete操作,不支持Date数据类型,不支持ORC文件格式等,并且Impala在查询时占用的内存很大。相比于Impala,Presto综合性能要更好一些,无论是查询性能还是支持的数据源和数据格式方面都要突出一些。占用的内存比Impala也要少一些,比如多表join需要很大的内存,Impala占用的内存比presto要多。

所以从整体性能对比看,两者差不多,但是Presto更优.

posted @ 2020-12-17 13:44  无敌小阿没  阅读(1062)  评论(0编辑  收藏  举报