hive分区
对数据进行分区,最重要的原因就是为了更快的查询,分区表改变了hive对数据存储的组织方式,当我们在where子句中增加谓词按照分区值进行过滤时,这些谓词被称为分区过滤器。
1.如果表中的数据及分区非常大的话,执行一个包含所有分区的查询可能会触发一个巨大的Mapreduce任务。一个高度建议的安全措施就是将Hive设置为“strict”模式,这样如果对分区表进行查询而where子句没有加分区过滤的话,将会禁止提交这个任务。当然,也可以将其设置为“nonstrict”.
set hive.mapred.mode=strict
2.查看分区:show partitions tablename;
3.如果表中有很多的分区,而我们只想查看是否存储某个特定分区键的分区的话,可以这样写:
show partitions employees partition(country='US')
假设有两个分区,分区名称分别是country和state
4.describe extended employees命令也会显示出分