一、分区概念
二、分区操作
1. 创建分区表
2. 加载数据到分区表
3. 增加分区
4. 查看分区
5. 删除分区
6. 修复分区
一、分区概念
分区 Partition 就是在系统上建立目录,把分类数据放在不同目录下,加快查询速度
常见分区有时间分区、地区分区和业务分区等
二、分区操作
1. 创建分区表
在创建表时使用 Patitioned by
(1)创建一级分区

查看表,可看到字段和分区字段

注: 1)分区的字段相当于伪字段
2)分区的字段不能和表的字段一致!
(2)创建多级分区

查看表信息,可看到分区

2. 加载数据到分区表
在加载语句后面添加上分区字段 partition(provice=' beijing ')
完整语句:
load data local inpath '/opt/data/hivedatas/user_info.txt' overwrite into table t2_user_partition partition(provice='beijing');

查询表内容,可看到导入的数据

问题一: 加载数据后,查询数据,字段显示为NULL
解决方法:加载的数据,它的数据格式要与创建表的字段数据格式保持一致
例如,我前面创建的表中,规定了数据格式
> row format delimited
> fields terminated by ' ' // 列间隔为 ‘ ’ 一个空格
> lines terminated by '\n' // 行间隔‘\n’ 换行
> stored as textfile
那么,导入的数据 /opt/data/hivedatas/user_info.txt,也要列间隔为一个空格,每行需要换行
3. 增加分区
(1)添加一个分区
例如,再添加一个省份分区

(2)添加多个分区
语句:alter table t3_user_partition add partition(provice='fujian') partition(provice = 'tianjin');

注:添加多个分区时
正确写法为
alter table t3_user_partition add partition(provice='fujian') partition(provice = 'tianjin');
不能写成 partition(provice='fujian',provice='tianjin')
如果写成了 partition(provice='fujian',provice='tianjin') 则就会随机分配其中一个分区
4. 查看分区

5. 删除分区

6. 修复分区
修复分区就是重新同步hdfs上的分区信息
语法:msck repair table table_name;
网友评论