Hive SQL执行顺序
1.执行顺序
在 hive 和 mysql 中都可以通过 explain+sql 语句,来查看执行顺序。对于一条标准 sql 语句,它的书写顺序是这样的:
select … from … where … group by … having … order by … limit …
(1)mysql 语句执行顺序:
from... where...group by... having.... select ... order by... limit …
(2)hive 语句执行顺序:
from … where … select … group by … having … order by … limit …
2.Hive执行顺序
hive 基于 MapReduce 程序,它的执行顺序决定了 hive 语句的执行顺序,Map 阶段:
- 执行 from 加载,进行表的查找与加载
- 执行 where 过滤,进行条件过滤与筛选
- 执行 select 查询:进行输出项的筛选
- 执行 group by 分组:描述了分组后需要计算的函数
map 端文件合并:map 端本地溢出写文件的合并操作,每个 map 最终形成一个临时文件。
然后按列映射到对应的 reduceReduce 阶段:
- group by:对map端发送过来的数据进行分组并进行计算。
- select:最后过滤列用于输出结果
- limit:排序后进行结果输出到HDFS文件
优化重点
根据执行顺序,我们平时编写时需要记住以下几点:
- 使用分区剪裁、列剪裁,分区一定要加
- 少用 COUNT DISTINCT,group by 代替 distinct
- 是否存在多对多的关联
- 连接表时使用相同的关键词,这样只会产生一个 job
- 减少每个阶段的数据量,只选出需要的,在 join 表前就进行过滤
- 大表放后面
- 谓词下推:where 谓词逻辑都尽可能提前执行,减少下游处理的数据量
- sort by 代替 order by
Hive SQL执行顺序相关推荐
- Hive 优化--SQL执行顺序、Hive参数、数据倾斜 、小文件优化
优化整体思路 如果资源充足就加资源加内存, 调度链路优化,调整调度顺序,时效性要求高的模型先产出, 数据接入模块,调优数据接入工具sqoop,datax 模型设计质量不高,调整模型,提高质量和复用度, ...
- MySQL高级 - SQL技巧 - SQL执行顺序及正则表达式
SQL执行顺序 编写顺序 SELECT DISTINCT<select list> FROM<left_table> <join_type> JOIN<rig ...
- hive 语句执行顺序
hive语句执行顺序 msyql语句执行顺序 代码写的顺序: select - from- where-. group by- having- order by.. 或者 from - select ...
- SQL 执行顺序图解
目录 执行顺序 数据的关联过程 执行顺序 这是一条标准的查询语句: 这是我们实际上SQL执行顺序: 我们先执行from,join来确定表之间的连接关系,得到初步的数据 where对数据进行普通的初步的 ...
- sql笔记1:sql执行优先级和casewhen用法、sql执行顺序
MySQL 语句中执行优先级--and比or高 例: select * from table where 条件1 AND 条件2 OR 条件3 等价于 select * from table wher ...
- Spark SQL执行流程解析之 sql执行顺序
一.Spark SQL模板解析 Spark Sql 关键字执行顺序跟Sql执行顺序类似: 1.先将from前两表做笛卡尔积加载进来形成虚拟表vt1, 2.on条件后为真的插入虚拟表形成vt2, 如果包 ...
- java程序基础——SQL执行顺序
SQL执行顺序 1.from 2.join 3.on 4.where 5. group by(开始使用select中的别名,后面的语句中都可 以使用) 6.avg,sum.... 7.having 8 ...
- 数据库笔记-sql执行顺序以及检索优先级
sql 执行顺序优先级由高到低依次是: from 关键字后面的语句. where 关键字后面的语句." group by "后面的语句. select 后面的语句." o ...
- MySQL 学习笔记(17)— SQL 执行顺序
以查询语句为例,我们看下面的查询语句: (6)SELECT [DISTINCT | ALL] col1, col2, agg_func(col3) AS alias (1) FROM t1 JOIN ...
最新文章
- 计算机图形学曲线生成原理,计算机图形学_曲线及生成.ppt
- 奇异值的物理意义是什么?强大的矩阵奇异值分解(SVD)及其应用
- 【ORACLE】oracl基本操作笔记
- 【机器学习基础】SVM算法在项目实践中的应用!
- MySQL MHA配置常见问题
- 如何有效的在 LINQ 查询中处理异常?
- mysql数学函数名_MYSQL 常见数学函数说明
- 如何在Win11重置系统中保留个人文件 Win11重置系统保留个人文件方法
- 【图像处理】射线爆发算法(Rayburst algorithm)
- 第五章——微型计算机与外设的数据传输
- 湖北网络安全的产业机遇在哪里
- SAP License:部分清帐和剩余清帐的区别(实例)
- ashx获取input file 文件_通过Ajax方式上传文件(input file),使用FormData进行Ajax请求...
- Java语法总结 - 线程
- Java语言设计文本查找器和文本编辑器
- 网页播放背景音乐实现完整代码
- SMPL 人体模型简要
- Ubuntu使用代理服务器上网
- Tensorflow serving 学习(一)
- 高德地图定位、画线 基础功能
热门文章
- SAP中客户退货流程测试
- 1A1C、2A2C多口快充电源设计,支持PD3.1
- Python数据分析——基金定投收益率分析,以及支付宝“慧定投”智能定投实现
- 用英语编辑计算机学习对话60字,自我介绍用英语写作文60字
- Black Rock Shooter
- 安卓调用PrinterShare实现无线打印功能
- 计算机硬件软件基础,计算机硬件与软件基础知识完整ppt课件
- KubeSphere 团队(青云QingCloud) 全职开源职位等你加入!
- 单片机c语言曲普两只蝴蝶,C51单片机 蜂鸣器两只蝴蝶代码
- 【企业】把握蘑菇管理原理,合理培养人才