Skip to Content
Presto实战
book

Presto实战

by Matt Fuller, Manfred Moser, Martin Traverso
March 2021
Intermediate to advanced
265 pages
6h 50m
Chinese
Posts & Telecom Press
Content preview from Presto实战
生产环境中的
Presto
223
Presto
和其他
SQL
引擎常用的一个优化是,将部分聚合下推到
Join
之前执行,从而减少输
Join
的数据量。要使用这个优化,
可以设置
push_aggregation_through_join
属性。由于
下推的聚合只产生局部结果,因此,在
Join
之后仍需要执行一次最终聚合
。使用这个优化
可以获得的收益依赖于实际的数据,有时它甚至会产生更慢的查询。例如,当
Join
条件比
较严格,只会产生少量数据时,在
Join
之后再进行聚合往往更高效
。可以在当前会话上将
这个属性值设为
false
,以关闭此优化并进行性能试验。
另一种常见的启发式优化是在计算最终聚合之前先计算局部聚合:
presto:ontime> EXPLAIN SELECT count(*) FROM flights_orc;
Query Plan
---------------------------------------------------------------------
- Output[_col0]
Layout: [count:bigint]
_col0 := count
- Aggregate(FINAL)
Layout: [count:bigint]
count := "count"("count_3")
- LocalExchange[SINGLE] ()
Layout: [count_3:bigint]
- RemoteExchange[GATHER]
Layout: [count_3:bigint] ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

大数据项目管理:从规划到实现

大数据项目管理:从规划到实现

Ted Malaska, Jonathan Seidman
Google系统架构解密: 构建安全可靠的系统

Google系统架构解密: 构建安全可靠的系统

Heather Adkins, Betsy Beyer, Paul Blankinship, Piotr Lewandowski, Ana Oprea, Adam Stubblefield

Publisher Resources

ISBN: 9787115560056