- Hive内部表和外部表
- 1. 内部表
- 加载数据
- 删除表测试
- web界面查看,源数据已经被删除
- 2. 外部表
- 加载数据
- 删除表测试
- web查看,源数据仍然存在
删除内部表的时候,表中的数据(HDFS上的文件)会被同表的元数据一起删除
删除外部表的时候,只会删除表的元数据,不会删除表中的数据(HDFS上的文件)
一般在公司中,使用外部表多一点,因为数据可以需要被多个程序使用,避免误删,通常外部表会结合location一起使用
外部表还可以将其他数据源中的数据 映射到 hive中,比如说:hbase,ElasticSearch…
设计外部表的初衷就是 让 表的元数据 与 数据 解耦
1. 内部表// 内部表 create table students_internal ( id bigint, name string, age int, gender string, clazz string ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION '/input3'; #/input3路径不存在自动创建加载数据
hive> dfs -put /usr/local/soft/data/students.txt /input3/;
web界面查看
hive> drop table students_internal; Moved: 'hdfs://master:9000/input3' to trash at: hdfs://master:9000/user/root/.Trash/Current OK Time taken: 0.223 seconds hive>web界面查看,源数据已经被删除 2. 外部表
// 外部表 create external table students_external ( id bigint, name string, age int, gender string, clazz string ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION '/input3';加载数据
hive> dfs -put /usr/local/soft/data/students.txt /input3/;删除表测试
hive> drop table students_external; OK Time taken: 0.012 seconds hive>web查看,源数据仍然存在
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)