介绍:
分区表实际上就是对应一个HDFS文件系统上的独立的文件夹,该文件夹下是该分区所有的数据文件。Hive中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。在查询时通过WHERE子句中的表达式选择查询所需要的指定的分区,这样的查询效率会提高很多。
创建分区表:
create table stu_par(
id int,
name string
)
partitioned by (age int)
row format delimited fields terminated by ','
分区表基本操作:
1、导入分区数据 指定分区
load data local inpath '/opt/tmp/student.txt' into table stu_par partition(age=10);
2、查看表分区信息
show partitions stu_par;
3、添加分区
alter table stu_par add partition(age=20);
4、删除分区
alter table stu_par drop partition(age=20);
动态分区:
先创建一张表,便于动态分区表导入数据。
create table student(
id int,
name string,
age int
)
row format delimited fields terminated by ','
动态分区表
create table stu_par2(
id int,
name string,
)
partitioned by (age int)
row format delimited fields terminated by ','
开启动态分区命令:
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
插入数据到动态分区表:
insert into table stu_par partition(age) select * id,name,age from student;