鏈接: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更優.