前言
1、Hive分区的概念与传统关系型数据库分区不同。
2、传统数据库的分区方式:如oracle,分区独立存在于字段,里面存储真实的数据,在数据进行插入的时候自动分配分区。
3、Hive的分区方式:Hive实际是存储在HDFS上的抽象,Hive的一个分区名对应一个目录名,子分区名就是子目录名,并非一个实际字段。
即,当在插入数据的时候指定分区,其就是新建一个目录或者子目录,或者在原有的目录上添加数据文件。
动态分区和静态分区(Hive-0.14以后的特性)
1、动态分区:分区不固定;关键在于“动态”,不需要人为使用 alter table 命令执行添加分区
2、静态分区:分区固定,需要认为使用 alter table 命令添加分区
最大区别:动态分区与静态分区区别就是不指定分区目录,由系统自己选择。
举例
1、静态分区表
创建学生表,以city 分区
create table t_student (name string,age int) partitioned by (city string) row format delimited fields terminated by '\t' STORED AS TEXTFILE;
准备本地数据文件 t_student.txt,内容 “名字/年龄”,将以城市(