在Hive中,托管表将位置更改为非HDFS位置,例如Amazon S3。当我们删除托管表时,外部位置的数据会丢失吗?
答案 0 :(得分:0)
以下说明提供了创建场景的步骤(在cloudera实例中完成)。
CREATE TABLE states_internal(状态字符串)LOCATION' / user / demo / states';
1)创建数据库mytraining; 2)在hive仓库位置的位置创建内部/托管表:它创建表states_internal poing到位置hdfs://quickstart.cloudera:8020 / user / demo / states。 CREATE TABLE mytraining.states_internal(状态字符串)LOCATION' / user / demo / states&#39 ;;
2)从本地文件系统加载数据 LOAD DATA LOCAL INPATH' file:///home/cloudera/Desktop/Hivedocs/hivedata/states.txt' INTO TABLE myTraining.states_internal;
3)将表位置从hdfs更改为local ALTER TABLE states_internal set LOCATION' file:///home/cloudera/Desktop/Hivedocs/hivedata/states.txt'
4)删除表states_internal。选中它会删除本地文件file:///home/cloudera/Desktop/Hivedocs/hivedata/states.txt。 hdfs:hdfs://quickstart.cloudera:8020 / user / demo / states中存在的上一个文件仍然存在。 DROP TABLE states_internal;