当前位置:网站首页>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任务进行优化,生成最终执行任务
边栏推荐
- 2022杭电多校第一场01
- Requests the library deployment and common function
- 【微信小程序】WXML模板语法-条件渲染
- Structured light 3D reconstruction (1) Striped structured light 3D reconstruction
- After controlling the export file in MySQL, it becomes \N. Is there any solution?
- Day14 jenkins deployment
- UVA10827
- [WeChat applet] WXML template syntax - conditional rendering
- Wise Force Deleter强制删除工具
- uboot开启调试打印信息
猜你喜欢
随机推荐
Mysql5.7 二进制 部署
【学习笔记之菜Dog学C】动态内存管理之经典笔试题
u-boot中的u-boot,dm-pre-reloc
2023年信息与通信工程国际会议(JCICE 2023)
The difference between span tag and p
8.04 Day35-----MVC three-tier architecture
ESP32 485 Illuminance
Day14 jenkins部署
Day14 jenkins deployment
[Nine Lectures on Backpacks - 01 Backpack Problems]
MySQL Foundation (1) - Basic Cognition and Operation
基于Web的商城后台管理系统的设计与实现
dedecms报错The each() function is deprecated
Develop a highly fault-tolerant distributed system
【cesium】Load and locate 3D Tileset
ESP32 485光照度
human weakness
mysql数据库表什么字段类型的存储长度最大?
Distributed systems revisited: there will never be a perfect consistency scheme...
coppercam入门手册[6]









