一、數據倉庫建設過程中,我們都有每天的增量數據進來,我們需要把增量數據映射到我們的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去添加。
完美。。