hive底层原理 sql执行过程_hive sql语句执行原理

大体理解为:hive会对写好的sql语句进行拆解,按执行顺序拆分红树结构(AST)交给mapreduce处理;html

hive对不一样DML/DDL关键字有不一样的反应,比较敏感的有select、from、join、group by、distinct、insert等;sql

对查询语句,hive首先会先根据from找到数据源(metastore),而后从查询内部开始找用到的字段及其类型,看语句要求对字段直接处理(加减乘除等)仍是聚合处理(sum等),并检查语句是否正确——扫描表、语法分析、语义分析;app

找出须要的字段,剩下的就是对字段下的取值进行的操做了jvm

join的过程,由于涉及两个及以上的表,在map阶段会对不一样表打上不一样标签来区分,打上标签之后其实就能够按一个表来理解;优化

group by与distinct的过程,相似map端的combiner与reduce端的功能,就是按不一样Key展现结果且key不重复;spa

order by的过程,只在reduce端执行,也就是只须要一个reducer,耗时耗内存,能够用 (distribute by col sort by col) order by这样的结构代替;htm

mapjoin用于大小表相连,提升效率;blog

hive用left semi join代替in排序

1.     left join  的条件,条件不一样生成的job数量有什么不一样,多个表join生成的job数量有什么不一样.ip

2.     group by 生成的任务map阶段和reduce阶段都作了什么

<
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hive是一个基于Hadoop的数据仓库基础设施,它提供了类似于SQL的查询语言HiveQL来处理大规模的结构化数据。Hive SQL执行原理主要分为以下几个步骤: 1. HiveQL解析和语法分析:Hive接收到用户提交的HiveQL查询语句后,首先会进行语法分析,确保查询语句的正确性和合法性。 2. 查询优化器:在语法分析后,Hive会使用查询优化器对查询进行优化。这个过程包括逻辑优化、物理优化和执行计划生成。优化器会尝试重写查询,选择合适的连接算法和操作顺序,以提高查询性能。 3. 查询计划生成:在优化器阶段完成后,Hive会生成查询的执行计划。执行计划是一个逻辑和物理执行计划的组合,描述了如何从底层存储系统中检索和处理数据。 4. 查询执行:一旦生成了执行计划,Hive将会将其转化为一系列的MapReduce任务或Tez任务,并提交给底层的执行引擎进行执行。每个任务负责处理输入数据的一部分,然后将结果写入临时表或输出目录。 5. 结果返回:当所有的任务完成后,Hive会将最终结果返回给用户。用户可以选择将结果保存到文件系统中或者直接在终端上显示。 需要注意的是,Hive SQL执行过程中会将HiveQL查询转化为一系列的MapReduce任务或Tez任务来执行,这样可以充分利用Hadoop集群的并行计算能力来处理大规模数据。同时,Hive还支持使用索引和分区等技术来提高查询的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值