Hive优化及解析

  • Post author:
  • Post category:其他

1.explain
    一般用于查看表的具体stage流程,根据流程判断自我推测
2.explain dependency
    快速排查分区
    具体场景
        快速排出因为读取不到相应分区的数据而导致任务数据输出异常
        理清表的输入,帮助理解程序的运行,特别是有助于了理解子查询,多表连接的依赖输入(on,where)
            不同写法,最后的实现也不会一样
3.explain authorization
    了解数据源、数据输出以及访问用户和操作
4.exlain还有很多其他的
5.hive编译MapReduce过程
    词法、语法解析: Antlr 定义 SQL 的语法规则,完成 SQL 词法,语法解析,将 SQL 转化为抽象语法树 AST Tree;
    Antlr是一种语言识别的工具,可以用来构造领域语言。使用Antlr构造特定的语言只需要编写一个语法文件,定义词法和语法替换规则即可,Antlr完成了词法分析、语法分析、语义分析、中间代码生成的过程。
    语义解析: 遍历 AST Tree,抽象出查询的基本组成单元 QueryBlock;
    生成逻辑执行计划: 遍历 QueryBlock,翻译为执行操作树 OperatorTree;
    优化逻辑执行计划: 逻辑层优化器进行 OperatorTree 变换,合并 Operator,达到减少 MapReduce Job,减少数据传输及 shuffle 数据量;
    生成物理执行计划: 遍历 OperatorTree,翻译为 MapReduce 任务;    
    优化物理执行计划: 物理层优化器进行 MapReduce 任务的变换,生成最终的执行计划。
6.QueryBlock
    TableScanOperator
    SelectOperator
    FilterOperator
    JoinOperator
    GroupByOperator
    ReduceSinkOperator
7.优化阶段
    投影修剪
    推导传递谓词
    谓词下推
    将Select-Select,Filter-Filter合并为单个操作
    多路 Join
    查询重写以适应某些列值的Join倾斜
    


版权声明:本文为qq597213343原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。