一、 内部表(管理表)
- hive全程管理 表和数据 的生命周期:当删除一个管理表时,hive也会删除这个表中的数据,管理表的数据,元数据以及存储位置
- 创建表时不特别指定就是内部表
- hive默认情况会将表的数据存储在/user/hive/warehouse的子目录下
二、 外部表
- 为啥要用:不适合和其他工具共享数据
- hive之管理数据,不管理元数据:删除表的时候不会删除表的数据,描述表的元数据信息会被删掉
- 创建外部表:
create external table 表名 (id int,name string) row format delimited fields terminated by '\t location '路径'';
不写location时会存储在默认路径 - 将数据加载到表中:
load data inpath '路径' into table 表名;
三、 总结 + 小知识点
- 在hive操作时,查找信息都是在元数据库matastore中操作的
- 如果创建了一个外部表stu,此时删掉stu这个表,meatstore中会删除这个信息,但是hdfs中还存在stu这个表的数据,此时新建一个表和上一个表同名为stu,不会报错,因为metastore元数据库中没有stu这个表以及这个表的信息
- 时间戳:1970年1月1日00:00:00到现在的时间差
- (备份)克隆表:
create table stu2 as select id,name from stu;
- 复制表的结构:
create table stu3 like stu;