创建hive内部分区表,导入数据到分区表
创建内部分区表
create table people_sex(
id INT,
name VARCHAR(100)
)
partitioned by (sex string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
lines terminated BY '\n'
STORED AS TEXTFILE;
导入数据到内表:
load data local inpath '/opt/datas/people.txt' into table people partition(dt='20180428');
会把所有数据都导入到这个分区,所以如果文件是按照日期或者月份划分的话,就可以直接导入到分区表。
如果是动态的生成了生产数据,那么就可动态的加载数据文件。
显示表分区
show partitions people;
有几点需要注意:
将hdfs的数据文件加载到hive内表后,原来的hdfs数据就没有了,被移动到了hive数据仓库中。
Hive分区表数据加载
内部分区表和外部分区表数据加载
内部分区表数据加载方式类似于内表 (指定分区)
外部分区表数据加载方式类似于外表(指定分区)
数据存放的路径层次要和表的分区一致。 (加载数据时指定分区,会自动在数据仓库中分区)
如果分区表没有新增分区(加载表的时候指定分区),即使目标路径下己经有数据了,但依然查不到数据。
加载数据指定目标表的同时,需要指定分区。
下一篇将会看一下外部分区表。