Hive在进行数据查询时会对整个表进行扫描,当表很大时将会消耗很多时间。有时候对表中比较关心某一部分的数据进行扫描,因此Hive引入分区(Partition)的概念。
Hive的分区是在Hive的表结构下根据分区的字段设置将数据按目录进行存放。
Hive表分区需要在表创建时制定模式才能使用。它的字段制定的是虚拟的列,在实际的表中并不存在。
表模式在创建完成之后使用之前还需要通过Alter Table语句添加具体的分区目录才能使用。
- 添加分区
ALTER TABLE table_name ADD partition_spec [LOCATION ‘location’] parition_spec [LOCATION ‘location2’] … - 删除分区
ALTER TABLE table_name DROP partition_spec, partition_spec,…