浅析hive严格模式(strict mode)
2016-02-25 18:23
260 查看
在hive中提供了一种“严格模式”的设置来阻止用户执行可能会带来未知不好影响的查询。
设置属性hive.mapred.mode 为strict能够阻止以下三种类型的查询:
1、 除非在where语段中包含了分区过滤,否则不能查询分区了的表。这是因为分区表通常保存的数据量都比较大,没有限定分区查询会扫描所有分区,耗费很多资源。
Table: logs(…) partitioned by (day int);
不允许:select *from logs;
允许:select *from logs where day=20151212;
2、 包含order by,但没有limit子句的查询。因为orderby 会将所有的结果发送给单个reducer来执行排序,这样的排序很耗时。
3、 笛卡尔乘积;简单理解就是JOIN没带ON,而是带where的
设置属性hive.mapred.mode 为strict能够阻止以下三种类型的查询:
1、 除非在where语段中包含了分区过滤,否则不能查询分区了的表。这是因为分区表通常保存的数据量都比较大,没有限定分区查询会扫描所有分区,耗费很多资源。
Table: logs(…) partitioned by (day int);
不允许:select *from logs;
允许:select *from logs where day=20151212;
2、 包含order by,但没有limit子句的查询。因为orderby 会将所有的结果发送给单个reducer来执行排序,这样的排序很耗时。
3、 笛卡尔乘积;简单理解就是JOIN没带ON,而是带where的
相关文章推荐
- Erlang 程序设计 学习笔记(一) 基本概念
- javascript中可变值与不可变值(原始值)
- Android 环信的使用
- c语言函数调用全过程
- Android的IPC机制(四)—— Messenger的使用及源码分析
- 高通平台手机开发之Modem
- AppDelegate生命周期详解
- Delphi中运行时改变panel的位置及大小(通过wm_SysCommand来实现)
- 关于js中值的比较规则问题
- 说说null和undefined的那些事
- 对象、数组转换字符串
- C语言实现链表节点的删除
- android 自定义permission的说明
- COM实现过程
- Ehcache与Guava Cache的区别浅谈
- 函数的形参与实参
- Charles抓Https的包
- 【SPOJ- HORRIBLE】Horrible Queries【线段树】
- android常驻通知栏
- Delphi下用API代码创建Form