Hive笔记之严格模式(strict mode)
2018-08-06 23:04
483 查看
Hive有一个严格模式,在严格模式下会对可能产生较大查询结果的语句做限制,禁止其提交执行。
一、切换严格模式
查看当前的模式:
hive> set hive.mapred.mode; hive.mapred.mode is undefined
未定义即为false,即no-strict模式。
开启严格模式:
set hive.mapred.mode=strict;
关闭严格模式:
set hive.mapred.mode=undefined;
二、严格模式严格在哪里
1. 对分区表的查询必须使用到分区相关的字段
分区表的数据量通常都比较大,对分区表的查询必须使用到分区相关的字段,不允许扫描所有分区,想想也是如果扫描所有分区的话那么对表进行分区还有什么意义呢。
当然某些特殊情况可能还是需要扫描所有分区,这个时候就需要记得确保严格模式被关闭。
2. order by必须带limit
因为要保证全局有序需要将所有的数据拉到一个Reducer上,当数据集比较大时速度会很慢。个人猜测可能是设置了limit N之后就会有一个很简单的优化算法:每个Reducer排序取N然后再合并排序取N即可,可大大减少数据传输量。
3. 禁止笛卡尔积查询(join必须有on连接条件)
hive不会对where中的连接条件优化为on,所以join必须带有on连接条件,不允许两个表直接相乘。
.
相关文章推荐
- 浅析hive严格模式(strict mode)
- 浅析hive严格模式(strict mode)
- 【AngularJS学习笔记】Java Script "use strict" 严格模式
- hive严格模式
- 深入理解javascript严格模式(Strict Mode)
- hive开启严格模式
- hive严格模式
- javascript权威指南学习笔记-严格模式(六)
- ECMAScript 5严格模式(Strict Mode)介绍
- mysql 严格模式 Strict Mode说明
- Hive严格模式
- HIVE严格模式
- js学习笔记(严格模式)
- ES5严格模式(Strict mode)
- ie和firefox 盒子模型区别以及quirks mode(怪异模式)和strict mode(严格格式)
- Hive基础(2)---(启动HiveServer2)Hive严格模式
- Javascript的严格模式strict mode详细介绍
- JavaScript笔记(5)严格模式
- Javascript 严格模式(strict mode)详解
- NodeJs随手笔记--严格模式