当前位置:网站首页>HQL语句执行过程
HQL语句执行过程
2022-08-05 05:12:00 【价值成长】
HQL语句执行过程:
- 语法解析:Antlr 定义 SQL 的语法规则,完成 SQL 词法,语法解析,将 SQL 转化为抽象 语法树 AST Tree;
- 语义解析:遍历 AST Tree,抽象出查询的基本组成单元 QueryBlock;
- 生成逻辑执行计划:遍历 QueryBlock,翻译为执行操作树 OperatorTree;
- 优化逻辑执行计划:逻辑层优化器进行 OperatorTree 变换,合并不必要的 ReduceSinkOperator,减少 shuffle 数据量;
- 生成物理执行计划:遍历 OperatorTree,翻译为 MapReduce 任务;
- 优化物理执行计划:物理层优化器进行 MapReduce 任务的变换,生成最终的执行计划。
HQL是怎样解析成MR job的?
Hive使用Antlr实现语法解析.根据Antlr制定的SQL语法解析规则,完成SQL语句的词法/语法解析,将SQL转为抽象语法树AST.
遍历AST,生成基本查询单元QueryBlock.QueryBlock是一条SQL最基本的组成单元,包括三个部分:输入源,计算过程,输出.
遍历QueryBlock,生成OperatorTree.Hive最终生成的MapReduce任务,Map阶段和Reduce阶段均由OperatorTree组成。Operator就是在Map阶段或者Reduce阶段完成单一特定的操作。QueryBlock生成Operator Tree就是遍历上一个过程中生成的QB和QBParseInfo对象的保存语法的属性.
**优化OperatorTree.**大部分逻辑层优化器通过变换OperatorTree,合并操作符,达到减少MapReduce Job,减少shuffle数据量的目的
OperatorTree生成MapReduce Job.遍历OperatorTree,翻译成MR任务.
- 对输出表生成MoveTask
- 从OperatorTree的其中一个根节点向下深度优先遍历
- ReduceSinkOperator标示Map/Reduce的界限,多个Job间的界限
- 遍历其他根节点,遇过碰到JoinOperator合并MapReduceTask
- 生成StatTask更新元数据
- 剪断Map与Reduce间的Operator的关系
优化任务. 使用物理优化器对MR任务进行优化,生成最终执行任务
边栏推荐
猜你喜欢
Detailed explanation of each module of ansible
upload上传图片到腾讯云,如何上传图片
Flutter learning three-Flutter basic structure and principle
基于Web的商城后台管理系统的设计与实现
Error creating bean with name ‘configDataContextRefresher‘ defined in class path resource
Wise Force Deleter强制删除工具
Detailed Explanation of Redis Sentinel Mode Configuration File
for..in和for..of的区别
雷克萨斯lm的安全性到底体现在哪里?一起来看看吧
[Surveying] Quick Summary - Excerpt from Gaoshu Gang
随机推荐
Difference between for..in and for..of
jvm three heap and stack
server disk array
University Physics---Particle Kinematics
Flutter learning - the beginning
phone call function
1.3 mysql批量插入数据
数据库 单表查询
LAB Semaphore Implementation Details
Geek卸载工具
数字_获取指定位数的小数
After controlling the export file in MySQL, it becomes \N. Is there any solution?
Homework 8.4 Interprocess Communication Pipes and Signals
2022杭电多校第一场01
Qt produces 18 frames of Cupid to express his love, is it your Cupid!!!
Qt制作18帧丘比特表白意中人、是你的丘比特嘛!!!
结构光三维重建(一)条纹结构光三维重建
逆向理论知识4
【学生毕业设计】基于web学生信息管理系统网站的设计与实现(13个页面)
Shell(4)条件控制语句