前言
当数据量过大时,为了避免查询时扫描表的全部数据,Hive支持根据指定的字段对表进行分区,分区的字段可以是日期、地域、种类等具有标识意义的字段。
在建表语句中,使用PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)
来规定分区。但需要注意分区字段不能是表中已经存在的字段。
加载分区数据
分区的属性是由用户在加载数据的时候手动指定的。
load data [local] inpath 'filepath' into table tablename partition(分区字段='分区值');
local
参数用于指定待加载的数据是位于本地文件系统还是HDFS文件系统。
使用
当建立好分区表后,即可指定分区字段来减少查询扫描的数据量。
select count(*) from teacher_student_part where role = 'student' and gender = '女'