hive的内部表(MANAGED_TABLE)和外部表(EXTERNAL_TABLE)的区别

avatar
作者
筋斗云
阅读量:0

1.hive的表类型分为外部表和内部表

  内部表和外部表的主要区别在于数据的存储方式。

外部表:外部表的存储在hdfs中,是我们指定的文件目录,当我们删除数据或者删除分区的时候不会将元数据删除,数据还会在hdfs目录中,我们还可以进行数据挂载。

内部表:内部表的存储是在hdfs的默认目录下,当我们删除数据或者删除分区的时候会将元数据删除,数据文件也会被删除。

2.查看一个表是内部表还是外部表

DESCRIBE FORMATTED table_name

运行指令找到table_type 如果为MANAGED_TABLE,那就是内部表,

如果是EXTERNAL_TABLE,那就是外部表

3.创建内部表和外部表,外部表需要指定LOCATION

CREATE EXTERNAL TABLE external_table_name (   column1 data_type,   column2 data_type,   ... ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION '/path/to/table';   CREATE TABLE internal_table_name (   column1 data_type,   column2 data_type,   ... ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ','; 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!