Hive笔记之严格模式(strict mode)
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连接条件,不允许两个表直接相乘。
.
转载于:https://www.cnblogs.com/cc11001100/p/9434120.html
Hive笔记之严格模式(strict mode)相关推荐
- hive入门之安装模式
Hive的安装模式 这个网址能找到apache所有产品的安装包: archive.apache.org/dist/ 嵌入模式 元数据信息被存储在HIVE自带的Derby数据库中 -只允许创建一个连接 ...
- hive 笔记(有点乱,凑合看)
hive 笔记(有点乱,凑合看) set hive.map.aggr=true; set hive.groupby.skewindata=true; set hive.merg.mapfiles=tr ...
- Android初级开发笔记-- activity启动模式的学习(1)
第一次学习Android中一个很重要的概念,启动模式.文章记录的也只是一些入门知识,随着学习的深入还会有activity启动模式的学习(2)和(3). 下面分三个小点说一下对启动模式的理解区别以及如何 ...
- 设计模式学习笔记——解释器(Interpreter)模式
设计模式学习笔记--解释器(Interpreter)模式 @(设计模式)[设计模式, 解释器模式, Interpreter] 设计模式学习笔记解释器Interpreter模式 基本介绍 解释器案例 类 ...
- 设计模式学习笔记——命令(Command)模式
设计模式学习笔记--命令(Command)模式 @(设计模式)[设计模式, 命令模式, command] 设计模式学习笔记命令Command模式 基本介绍 命令案例 类图 实现代码 Command接口 ...
- 设计模式学习笔记——代理(Proxy)模式
设计模式学习笔记--代理(Proxy)模式 @(设计模式)[设计模式, 代理模式, proxy] 设计模式学习笔记代理Proxy模式 基本介绍 代理案例 类图 实现代码 Printable接口 Pri ...
- 设计模式学习笔记——状态(State)模式框架
设计模式学习笔记--状态(State)模式框架 @(设计模式)[设计模式, 状态模式, State] 设计模式学习笔记状态State模式框架 基本介绍 状态案例 类图 实现代码 State接口 Day ...
- 设计模式学习笔记——备忘录(Memento)模式
设计模式学习笔记--备忘录(Memento)模式 @(设计模式)[设计模式, 备忘录模式, memento] 设计模式学习笔记备忘录Memento模式 基本介绍 备忘录案例 类图 实现代码 Memen ...
- 设计模式学习笔记——观察者(Observer)模式
设计模式学习笔记--观察者(Observer)模式 @(设计模式)[设计模式, 观察者模式, Observer] 设计模式学习笔记观察者Observer模式 基本介绍 观察者案例 类图 实现代码 Ob ...
最新文章
- java如何调用thrift_java – 我想在一个传输上使用多个服务(Thrift)
- Linux下使用Speedtest测试网速教程
- 在 SQLite3 中使用回调函数
- mysql全拼_Mysql中取得汉字的全拼、拼音首字母
- c++new时赋初值_C++ Lesson 7:new,delete amp; 类的重用
- python画条形图-python使用Matplotlib画条形图
- 再论使用Oracle Instant Client连接Oracle
- Oauth2.0如何理解?
- 计算机ping使用的端口,ping 端口:Ping端口命令的使用方法介绍
- ModuleNotFoundError: No module named ‘views‘
- Mac ssh: connect to host XXX.XXX.XXX.XXX port XX: Operation timed out的问题解决
- kail 安装小企鹅输入法
- Jacobi(雅可比)迭代原理与matlab代码
- struts1 使用poi组件 读取excel文件,创建excel ,输出excel文件
- 小程序接入h5页面_h5页面和小程序交互
- 嵌入式工程师的经典面试题目及答案
- C++ 之重定义问题
- 织梦DedeCms 5.7如何更换FCK编辑器
- 一个ZFS开发者眼中的苹果最新文件存储系统APFS
- STM32CubeMX提示ST
热门文章
- REVERSE-PRACTICE-BUUCTF-6
- 【windows环境——VSCode安装教程】
- 【POJ - 3272】Cow Traffic(dp,建反向图,DAG拓扑图)
- 【CodeForces - 202A】LLPS (思维,字符串)
- 【HDU - 3499】 Flight (单源最短路+优惠问题)
- Apollo进阶课程㊴丨Apollo安装过程概述
- c语言蓝牙接收6,终于搞定了通过两路蓝牙接收数据
- phoenix hbase java_java jdbc访问hbase phoenix
- 学习笔记14-C语言-小项目-通讯录
- leetcode21 合并两个链表