hive的静态分区
分区的目的
就是为了提高索引的效率
静态分区
就是在建表式创建一个分区字段,在加载数据时指定这个分区字段就能创建不同的目录!
1.1 静态分区
步骤
先创建一个分区表,设定分区字段,
将数据导入到这个分区表中,
再增加一个分区表
再将新的数据导入进去
依次类推提高索引效率
若分区的值是确定的,那么称为静态分区
新增分区或者是加载分区数据时,已经指定分区名。
create table if not exists day_part1(
name string,
course string,
grade int
)
partitioned by(year int,month int,day int)
row format delimited fields terminated by ' ';
加载数据指定分区
load data local inpath '/root/student.txt' into table day_part1 partition(year=2020,month=04,day=25);
在窗口查询结果,会在表的最后面加上年月日的标签
0: jdbc:hive2://doit01:10000> select * from day_part1 a;
+---------+-----------+----------+---------+----------+--------+
| a.name | a.course | a.grade | a.year | a.month | a.day |
+---------+-----------+----------+---------+----------+--------+
| 张三 | 语文 | 81 | 2020 | 4 | 25 |
| 张三 | 数学 | 75 | 2020 | 4 | 25 |
| 李四 | 语文 | 76 | 2020 | 4 | 25 |
| 李四 | 数学 | 90 | 2020 | 4 | 25 |
| 王五 | 语文 | 81 | 2020 | 4 | 25 |
| 王五 | 数学 | 100 | 2020 | 4 | 25 |
| 王五 | 英语 | 90 | 2020 | 4 | 25 |
+---------+-----------+----------+---------+----------+--------+
新增这个表的分区 指定分区名增加两个一模一样的表
alter table day_part1 add partition(year=2020,month=4,day=26);
alter table day_part1 add partition(year=2020,month=4,day=27);
会在50070这个端口出现分区的文件夹
年分区
月分区
日分区
当我在索引这张表的时候,就成了全局索引,想索引某天的数据,就添加过滤就可以
0: jdbc:hive2://doit01:10000> select * from day_part1 a;
+---------+-----------+----------+---------+----------+--------+
| a.name | a.course | a.grade | a.year | a.month | a.day |
+---------+-----------+----------+---------+----------+--------+
| 张三 | 语文 | 81 | 2020 | 4 | 25 |
| 张三 | 数学 | 75 | 2020 | 4 | 25 |
| 李四 | 语文 | 76 | 2020 | 4 | 25 |
| 李四 | 数学 | 90 | 2020 | 4 | 25 |
| 王五 | 语文 | 81 | 2020 | 4 | 25 |
| 王五 | 数学 | 100 | 2020 | 4 | 25 |
| 王五 | 英语 | 90 | 2020 | 4 | 25 |
| 张三 | 语文 | 81 | 2020 | 4 | 26 |
| 张三 | 数学 | 75 | 2020 | 4 | 26 |
| 李四 | 语文 | 76 | 2020 | 4 | 26 |
| 李四 | 数学 | 90 | 2020 | 4 | 26 |
| 王五 | 语文 | 81 | 2020 | 4 | 26 |
| 王五 | 数学 | 100 | 2020 | 4 | 26 |
| 王五 | 英语 | 90 | 2020 | 4 | 26 |
| 张三 | 语文 | 81 | 2020 | 4 | 27 |
| 张三 | 数学 | 75 | 2020 | 4 | 27 |
| 李四 | 语文 | 76 | 2020 | 4 | 27 |
| 李四 | 数学 | 90 | 2020 | 4 | 27 |
| 王五 | 语文 | 81 | 2020 | 4 | 27 |
| 王五 | 数学 | 100 | 2020 | 4 | 27 |
| 王五 | 英语 | 90 | 2020 | 4 | 27 |
+---------+-----------+----------+---------+----------+--------+