目标是为测试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 |