目標是為測試impala presto SparkSql誰的性能更佳,以下結果底層查詢的都是普通textfile snappy壓縮后數據,規模為15台機器,若以orcfile、parquet速度能快數倍
impala與presto性能相當,SparkSql遜色不少。
目前看presto相比impala
1、與hive實時共享元數據,impala需要用另外定時任務廣播元數據,新生成的數據,用impala不能立即查詢。
2、沒有出現操作大數據集有時掛掉的情況
3、presto與hive都由fackbook開源,兼容性應該會更好點
測試過程比較簡單,分為四個場景sql查詢:
查詢id | 查詢語句 | 數據量(壓縮前) |
query1 | select sum(pv) from d_op_behavior_host_text_snappy | 35G |
query2 | select siteid,sum(pv) as pv1 from d_op_behavior_host_text_snappy where pv>0 group by siteid order by pv1 desc limit 11; |
35G |
query3 | select count(*) from dwd.d_ad_3rd_party_fancy_all_data where thisdate='2015-11-10' and hour='17'; |
200G |
query4 | select count(*) from dwd.d_ad_impression where thisdate>='2015-09-01' and thisdate<='2015-10-31' |
測試結果對比如下:
查詢 | 工具 | 第一次執行時間 | 第二次執行時間 |
query1 | impala | 4.82s | 5.56s |
presto | 6s | 5s | |
sparkSql | 13s | 9s | |
query2 | impala | 12.79s | 12s |
presto | 15s | 13s | |
sparkSql | 20s | 23s | |
query3 | impala | 掛掉 | 掛掉 |
presto | 63s | 58s | |
sparkSql | 88s | 77s | |
query4 | impala | 131s | 148s |
presto | 136s | 128s | |
sparkSql | 187s | 188s |