Sparksql 的内核剖析内容,讲得蛮细的,适合你想搞懂底层执行逻辑的时候翻一翻。优化器、执行计划这块讲得挺清楚,不是那种空谈架构的风格,而是结合了具体的执行细节。像Catalyst
的流程、执行计划生成的逻辑,写得还蛮实在的。
优化器部分看着挺过瘾,从Unresolved Logical Plan
一路讲到Physical Plan
,能让你搞清楚中间每一步都发生了什么。你如果写 UDF,或者调优卡壳的时候,就会知道这些细节到底值不值得深挖。
我还顺手找了几篇挺搭的文章,和这份内容结合着看,效果更好:
- 优化器和执行计划(偏 Spark)
- Oracle 优化器选择与执行计划(Oracle 那一套)
- 深度 SQL 执行计划(通用 SQL)
- MySQL 执行计划的限制(MySQL 调优党适合)
- 如何优化 ORACLE SQL 执行计划(和第二篇配着看)
,如果你在用 Spark 做数据开发,或者平时 SQL 写得比较多,对执行效率有点要求,这篇内容还蛮值得收藏的。SparkSQL调优永远不嫌早,早点懂清楚,少踩坑。
如果你最近正好在慢 SQL,可以从优化器逻辑这块先下手,看看计划生成的环节哪里可以动刀。