阅读材料:
SparkSQL – 从0到1认识Catalyst http://www.dataguru.cn/article-10731-1.html
此篇文章介绍了Spark SQL如何将SQL语句转化为Spark物理执行计划的详细过程
重点归纳:
sqltext 经过 parser 得到 语法树(unresolvedlogicalplan),unresolvedlogicalplan 经过 analyser (根据catalog 对relations、function、数据存储物理位置的记录)对语法树字段、函数解析绑定得到resolvedlogicalplan,resolvedlogicalplan经过 optimizer 得到 optimisedplan(利用rule调整 比如谓词下推、列值裁剪、常量累加)
最后 解析得到 物理执行计划(转化为能在Spark上运行的RDD算子操作树)
阅读过程中遇到的疑难:
关系型数据库 join连接方式 hashjoin 、sortjoin 到底是怎样实现的:
多表连接的三种方式详解 HASH JOIN MERGE JOIN NESTED LOOP
http://blog.csdn.net/tianlesoftware/article/details/5826546
Oracle表分区分为四种:范围分区,散列分区,列表分区和复合分区
http://blog.csdn.net/oyzl68/article/details/8142617