logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Hive代码分析报告(八):语义分析③

2021SC@SDUSC目录概述SemanticAnalyzer类分析:①从analyzeInternal(ASTNode ast)到genResolvedParseTree(ASTNode ,PlannerContext)概述前面,我对BaseSemanticAnalyzer类进行了简单的分析,知道了该类是各个语义分析器的基类,由他派生的子类包括SemanticAnalyzer等诸多查询分析器。

#hive#hadoop#数据仓库
Hive代码分析报告(七):语义分析②

2021SC@SDUSC目录概述:BaseSemanticAnalyzer类小结:概述:前面我们主要通过关注SemanticAnalyzerFactory工厂类中get(conf, tree)这一方法获得对应的语义分析器sem的操作,总结了每次会话中SessionState对象的CommandType类型如何定义以及与语法分析器的对应关系。接下来的主要分析主要基于通用的语义分析器SemanticA

#hive#hadoop#数据仓库
Hive代码分析报告(六): 语义分析①

2021SC@SDUSC概述经过前面的分析,我们知道,Hive处理一条HQL语句,分前端和编译器部分,前端(Cli)主要负责接受用户在命令行上输入的信息,然后准备执行并将执行的结果返回。而后面的工作由Compiler完成。编译流程的第一步主要由HiveParser部分完成,该类是编译的入口,入参是一条字符串的sql,输出是一棵抽象语法树,ASTNode 是树的头结点,前面的分析知道,其拥有树相关操

#hive#hadoop#数据仓库
Hive代码分析报告(四): 语义分析①AST相关类解析

2021SC@SDUSC目录概述AST相关类解析:ASTNode类概述前面的两篇文章,简要的把用户命令(HQL)如何进入编译器,走完语法分析、词法分析,生成抽象语法树AST的过程了解了一遍。这有助于从整体上把握编译流程的顺序,有助于更好的分析后续的功能框架。接下来,编译流程进入第二个主要阶段:语义分析阶段。如果把HQL语句比作一句话,那么前面的语法分析、词法分析就是用来分析这句话包含了哪些词、有哪

#hive#hadoop#数据仓库
Hive代码分析报告(十):语义分析⑤

2021SC@SDUSC目录概述补充说明doPhase1()getMetaData(QB, ReadEntity)分析概述上一篇文章中,我分析了doPhase1()函数,这是语义分析的起始阶段,程序的最终目标是将AST的数据载入QB,doPhase1这一阶段主要思想是递归地遍历AST,建立一些必要的映射关系,从而将一些关键信息传给QB,如表、子查询的别名信息、内部子句的名字、聚合操作信息等,进而上

#hive#hadoop#数据仓库
到底了