当前位置:首页 > 报告详情

Doris 新优化器背后的故事.pdf

上传人: 2*** 编号:135177 2023-07-09 26页 2.69MB

1、DataFunSummitDataFunSummit#20232023A Apache Doris pache Doris 优化器的优化器的未来未来周明宏SelectDB 高级研发工程师重塑重塑为什么我们要重做 Doris 优化器性能性能瓶颈瓶颈突破性能瓶颈的两个小故事优化的优化的本质本质以统一的视角重新理解优化的规则挑战挑战理论上很完美,但是。目录目录 CONTENTCONTENTDataFunSummitDataFunSummit#202320230101重塑重塑Nereids:新一代优化器0101缺少优化规则的缺少优化规则的抽象抽象不方便细粒度控制规则使用,不方便query 调优增加优化

2、规则的额外成本高不能查看规则优化后的plan 0 02 2缺少缺少CBOCBO框架框架没有统计信息收集框架统计信息推导能力不足代价模型代码零散没有逻辑代数的枚举,只能做有限的CBO0 03 3树树的遍历的遍历只有两轮bottom-up的遍历无法实现对有循环依赖的规则无法实现一些需要改变底层节点的规则Nereids:我们 Doris 2.0 见在ssb、tpch 500G/1T 测试中超越人工改写 sql 02000040000600008000010000012000012345678910111213141516171819202122TPC-H 500Gnereids人工改写前期用户测评用

3、户 POC 测评中性能远超老优化器DataFunSummitDataFunSummit#202320230202优化的优化的本质本质SQL 的本质-描述性语言优化器优化器决定怎么做决定怎么做执行引擎执行引擎我需要的数据是什么我需要的数据是什么select select*from L join R on.from L join R on.返回结果返回结果描述描述一条 SQL 的旅程语法分析SQL语义分析改写查询计划优化查询计划执行结果查询执行抽象语法树逻辑计划树逻辑计划树物理计划树一条 SQL 的旅程物理计划RBOCBO后处理翻译MEMO物理计划MEMOBE可理解的物理计划语义分析查询执行RBO

4、RBO谓词下推表达式改写常量折叠消除空算子.CBOCBOJoin reorderCTE 策略选择Aggregation 策略选择.什么是优化尽早降低数尽早降低数据据规模规模优化举例尽早降低数据尽早降低数据规模规模中美贸易详情(TPC-H q7)订单号订单号customercustomercustomer customer 国籍国籍suppliersuppliersupplier supplier 国籍国籍nationcustomersupplierorders优化举例尽早降低数据尽早降低数据规模规模Join reorder动态规划动态规划DPSizeDPSubDPhyperCascading.

5、Nereids Nereids Cascading+DPhyperDataFunSummitDataFunSummit#202320230303性能性能瓶颈瓶颈两次重要突破0 02 2 CostAndEnforce CostAndEnforce 优化优化对复杂query提升两个数量级0101 rewrite rewrite 重构重构节约 Memo CopyIn/CopyOutMemoMemocopycopyInIncopycopyOutOutDataFunSummitDataFunSummit#202320230404挑战挑战公平与效率Left DeepLeft DeepZigZagZigZa

6、gBushyBushy大表大表CascadingCascading表数量较少,比如少于5DPhyperDPhyper表数量较多公平与效率与误差共存统计信息统计信息推导代价模型误差抽样误差假设:均匀分布,字段相关性.引擎实现特点,环境差异,.qErrorPlan Ranker误差来源检测工具颠覆者Runtime Filter订单表商品表过滤“华为”join2 2 千万千万8080万万6 6 亿亿品牌“华为”的商品 id 集合A=p001,p003订单.商品 id=商品.商品 id找出“华为”品牌下商品的订单订单号订单

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
标记的内容中,主要讨论了Apache Doris查询优化器的未来发展,由SelectDB高级研发工程师周明宏介绍。周明宏指出,Doris当前优化器存在规则抽象不足、缺乏统计信息收集框架、CBO(成本基础优化)支持不充分以及查询计划遍历方法限制等问题。新一代优化器Nereids旨在解决这些问题,通过抽象优化规则、构建统一的优化框架、引入统计信息推导能力和物理计划树的改进,Nereids能够在性能测试中超越人工改写的SQL。此外,Nereids在性能瓶颈上取得了显著突破,如通过CostAndEnforce优化对复杂查询性能提升两个数量级,以及减少了Memo CopyIn/CopyOut的开销。文章还讨论了优化器的挑战,包括统计信息的误差和推导问题,以及如何在多样化的查询场景中实现公平与效率。最后,文章提供了如何参与Apache Doris社区的方式,并推广了SelectDB的微信公众号和Apache Doris的GitHub与官网。
"Apache Doris 优化器未来将如何发展?" "如何突破 SQL 查询优化器的性能瓶颈?" "如何参与 Apache Doris 社区并为其发展做出贡献?"
客服
商务合作
小程序
服务号
折叠