码迷,mamicode.com
首页 > 其他好文 > 详细

HiveQL编译基础

时间:2016-11-26 23:19:25      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:抽象   复杂查询   存储   聚合   生成   基础   reduce   mapr   简单   

   由客户端提交的HiveQL语句将最终被转换为一个或多个MapReduce任务并提交由Hadoop执行。不包含聚合和连接的简单SELECT语句可以使用一个单独的只包含Map阶段的任务实现。使用GROUP BY子句的聚合可以使用一个独立的MapReduce任务实现。包含大量多表连接的复杂查询需要依靠多个MapReduce任务的顺序执行来实现。

    HiveQL编译器的操作分为好几个阶段。

    在第一个阶段中,查询语句被解析并转化成抽象的语法树。随后语法树将被传给语义分析器,在这一过程中,通过使用元数据存储中的信息来判别列名和数据类型。

语义分析器将它们转化并生成一种内部的表达方式,然后传递给逻辑计划生成器,在这里将生成一颗逻辑操作树。在逻辑计划经过数次的传递和优化之后,它将被送往物理计划生成器。经过物理计划生成器和处理之后,将产生一张DAG(有向无环图)用以生成最终的MapReduce任务。

HiveQL编译基础

标签:抽象   复杂查询   存储   聚合   生成   基础   reduce   mapr   简单   

原文地址:http://www.cnblogs.com/zlslch/p/6105080.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!