hive遍历_Hive解析流程-抽象语法树生成

3946e5b789821ec40bd60622366bfec6.png

HiveQL解析流程:

  1. Hive根据Antlr定义的词法、语法规则完成词法、语法分析将HQL解析为AST Tree;
  2. 遍历AST Tree,抽象出查询的基本组成单元Query Block;
  3. 遍历Query Block解析为操作树Operator Tree(即,逻辑执行计划);
  4. 逻辑优化器进行操作树变换,合并多余的ReduceSinkOperator,减少shuffle;
  5. 遍历Operator Tree,将操作树翻译为对应的MapReduce任务;
  6. 物理优化器进行MapReduce任务变换,生成最终的执行计划。

1、前言

​ Hive通过antlr3定义HiveQL语言。ANTLR是一个基于LL(*)算法实现的语言识别器,定义词法文件、语法文件,通过 antlr 可以构造出相应的词法分析器 (Lexer)、语法分析器 (Parser) 和树分析器 (Tree Parser)。

词法分析器(Lexer):校验输入字符的合法性,将无含义的字符流翻译为有意义的单词(token),识别关键字,生成token流。

语法分析器(Parser):语法分析器将获取到的token流组织,按照语法规则进行重写生

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值