Spark SQL 查询引擎Catalyst分析

Catalyst作为Spark SQL的核心,负责SQL的解析、逻辑和物理查询计划的生成。它先由SqlParser将SQL解析为AST,然后Analyzer进行属性和关系检验,接着Optimizer进行逻辑查询优化,最后QueryPlanner转化为物理查询计划并准备执行。整个过程涉及谓词下推、常量折叠和列值裁剪等优化策略。
摘要由CSDN通过智能技术生成

Spark SQL 查询引擎Catalyst分析

Catalyst整体架构图

spark sql 查询引擎 catalyst的架构

Catalyst执行流程

catalyst是spark sql的调度核心,遵循传统数据库查询解析步骤,对sql进行解析,转换为逻辑查询计划,物理查询计划,最终转化为Spark的DAG后在执行,下图为Catalyst的执行流程。
在这里插入图片描述

  • SqlParser将SQL语句被解析为语法树(AST),也就是未解析的逻辑查询计划。Parser简单来说是将SQL字符串切分成一个一个Token,再根据一定语义规则解析为一棵语法树。(ANTLR实现)
  • Analyzer对逻辑查询计划进行属性和关系关联检验,也就是通过定义的一系列规则将未解析的逻辑查询计划借助catalog去解析,如将之前提到的未解析的逻辑查询计划转换成逻辑查询计划。(再次遍历整个语法树,对树上的每个节点进行数据类型绑定以及函数绑定)
  • Optimizer通过逻辑查询优化将逻辑查询计划转化为优化的逻辑查询计划,优化器是整个Catalyst的核心。下面一篇文章会详细介绍。包括谓词下推(Predicate Pushdown)、常量累加(Constant Folding)和列值裁剪(Column Pruning)。
  • Quer
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值