返回
Presto's History-based Query Optimizer
DOI:10.14778/3685800.3685828.png)
摘要
En 中文
现代查询优化器的一个重要特征是能够生成针对底层数据集最优的查询计划。这需要具备估计中间查询计划节点的基数和计算成本的能力,而这高度依赖于查询形态和底层数据分布。传统方法包括收集基表统计信息并在优化器内部实现基数和计算成本的推导,但对于复杂查询形态易产生误差。本文介绍了Presto的新型基于历史记录的优化框架(HBO),该框架收集执行历史记录并利用它们来优化未来的相似查询。该框架能够以轻量级、自动化的方式为复杂查询形态提供准确的估计,并能自动适应底层数据分布的变化。我们介绍了HBO框架的设计与实现,并提供了其在各种优化规则中使用的细节,以及基于Redis键值存储实现统计信息存储的细节。我们还展示了HBO在两家大型数据基础设施组织(Meta和Uber)生产环境中的运行结果。
Keyword:
SQL
期刊
P
IF:
3.3
论文数:
563
被引数:
1.2W

