一、数据仓库建设过程中,我们都有每天的增量数据进来,我们需要把增量数据映射到我们的hive表中,但是为了数据能够被其他部门共同使用,并且需要对我们的原始数据进行综合管理,在数据仓库建设的第一层,我们就要使用外部表进行处理。
(外部表和内部表的区别自行查资料)
二、介绍一下怎么从外部的一个文件怎么映射成外部表并且分区,并且数据不会move到hive的相关目录下面。
1、将文件(textFile)上传到hdfs中:
2、建外部表:
CREATE EXTERNAL TABLE tb_out_1 ( id String, name STRING, gender int )
PARTITIONED BY (dt int)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
stored as TEXTFILE
注意要有分区字段!
一般公司里面都是parquert格式,但是为了演示方便,就使用了textfile格式
3、添加分区的信息和分区数据
alter table tb_out_1
add partition (dt='20190808')
location '/user/yanqingz/data/test/20190808/';
4、分配成功后文件还是存在原来的位置,并且分区数据已经有了:
这样我们即实现了外部表的优势,又将来源数据综合管理(尽量将所有的来源数据都放在统一的文件夹里面),而且每天的增量数据都可以通过add partition去添加。
完美。。