参考书籍:Hive编程指南
如果用户需要做一个查询,查询条件是全盘扫描。Hive会不得不读取每个文件目录,但这种宽范围的磁盘扫描还是比较少见的。
但是,如果表中的数据以及分区个数都非常大的话,执行这样一个包含有所有分区的查询可能会触发一个巨大的MapReduce任务。一个高度建议的安全措施就是将Hive设置为“strict(严格)”模式,这样如果对分区表进行查询而WHERE子句没有加分区过滤的话,将会禁止提交这个任务。用户也可以按照下面的语句将属性值设置为“nostrict(非严格)”:
严格:
hive> set hive.mapred.mode=strict;
非严格:
hive> set hive.mapred.mode=nonstrict
查看表存在的所有分区
hive> SHOW PARTITIONS tableName
如果表中现在存在很多的分区,而用户只想查看是否存储某个特定分区键的分区的话,用户还可以在这个命令上增加一个指定了一个或者多个特定分区字段值的PARTITION子句,进行过滤查询
hive> SHOW PARTITIONS employees PARTITION(country='US');
country=US/state=AL
country=US/state=AK
...
hive> SHOW PARTITIONS employees PARTITION(country='US', state='AK');
country=US/state=AK
标签:US,禁止,country,分区,hive,state,Hive,提交 From: https://blog.51cto.com/u_13721902/6249927