Presto与Spark SQL查询性能比较

1. 数仓环境

指标名称指标值
数据总量24T
分区数量24
存储类型Text
Spark SQL版本2.2.0-218
Pres同版本Presto CLI 04fb3c3-dirty

2. 分页查询

所有的计算时间都以秒为单位,执行的SQL语句如下:

select * from mydb where year='2018' and month='09' and day='09' and remote_addr='117.136.68.11' and host like '%poi%'  limit 10;
执行环境limit 10limit 100limit 200
Presto22342
Spark SQL34.08237.395120
Hive4413忽略忽略

另外,我注意到Presto自带分页功能,所以在执行查询命令时感觉更快,几乎就是刚输入命令,结果就呈现出来了,交互性领先。

3. 全量结果

相对于分页查询,这次去掉了limit限制,以及增加了计数查询,如下:

#   测试1
select * from mydb where year='2018' and month='09' and day='09' and remote_addr='117.136.68.11' and host like '%poi%';
#   测试2
select count(*) from mydb where year='2018' and month='09' and day='09' and remote_addr='117.136.68.11' and host like '%poi%';

执行结果,如下表所示:

执行环境全量数据
Presto2080
Spark SQL661.493

4. 其他

相比于Spark SQL,Presto有着更快的启动时间。

相比于Presto,Spark SQL更容易指定执行节点的数量,速度提升更容易,下表是Spark SQL节点数量的速度变化情况。

 spark-sql --num-executors 10
节点数量执行时间
100661.493
24662.734
10625.403

从上表可以看出,Spark SQL所需的执行节点应尽可能与分区数量相等(正在做进一步详尽的测试,请稍等),再多也只是资源浪费。

跟Presto相比,Spark SQL即使在执行节点数量相等时(10个),Spark SQL的速度也大幅领先。

5. 结论

在执行分页查询时,Presto具有明显的优势,但需要全量数据与统计时,Spark SQL则将Presto远远甩在身后。

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值