Hive【基础02】 | 分区操作

一、分区概念

二、分区操作

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;

你可能感兴趣的:(Hive【基础02】 | 分区操作)