Hive 架构
Hive SQL执行流程
(1)解析器(SQLParser):将 SQL 字符串转换成抽象语法树(AST)
(2)语义分析器(Semantic Analyzer):将 AST 进一步抽象为 QueryBlock(可以理解为一个子查询划分成一个 QueryBlock)
(2)逻辑计划生成器(Logical Plan Gen):由 QueryBlock 生成逻辑计划
(3)逻辑优化器(Logical Optimizer):对逻辑计划进行优化
(4)物理计划生成器(Physical Plan Gen):根据优化后的逻辑计划生成物理计划
(5)物理优化器(Physical Optimizer):对物理计划进行优化
(6)执行器(Execution):执行该计划,得到查询结果并返回给客户端
char和varchar的区别
(1)char类型的长度是固定的,不足的部分用隐藏空格填充,varchar的长度是可变的。这就表示,存储字符串’abc’,使用char(10),表示存储的字符将占10个字节(包括7个空字符);使用varchar(10),则表示只占3个字节,10是最大值,当存储的字符小于10时,按照实际的长度存储。
(2)char最大长度是255字符;varchar最大长度是65