hive将表变成外部表
时间: 2024-02-24 14:51:17 浏览: 138
要将Hive表变成外部表,可以按照以下步骤操作:
1. 使用`ALTER TABLE`命令设置表的属性为外部表。将`EXTERNAL`属性设置为`TRUE`。
```sql
ALTER TABLE 表名 SET TBLPROPERTIES("EXTERNAL"="TRUE");
```
2. 使用`DESC FORMATTED`命令查看表的结构,确认表已经变成外部表。
```sql
DESC FORMATTED 表名;
```
如果要将外部表转回内部表,可以将`EXTERNAL`属性设置为`FALSE`。
```sql
ALTER TABLE 表名 SET TBLPROPERTIES("EXTERNAL"="FALSE");
```
请注意,删除表时,内部表会删除HDFS对应路径,而外部表不会删除HDFS对应路径。无论是内部表还是外部表,删除表都会删除元数据。
相关问题
hive内部表和外部表的区别
在Hive中,内部表和外部表是有区别的,主要区别在于数据的存储位置和管理方式。
内部表 (Internal Table) 是指Hive管理的表数据存储在Hive自己的文件系统中。当创建一个内部表时,Hive会在自己的文件系统中创建一个目录来存储该表的数据。这意味着,如果删除该表,Hive会自动删除该表的数据,因为数据是Hive自己的文件系统中的数据。
外部表 (External Table) 是指Hive管理的表数据存储在Hive外部的文件系统中,比如HDFS、S3等。当创建一个外部表时,Hive仅仅是在元数据中记录该表数据存储的位置,而不是在自己的文件系统中创建目录来存储该表数据。这意味着,如果删除该表,Hive不会删除该表的数据,因为数据存储在外部文件系统中。
另外,外部表也允许用户在Hive之外使用其他工具来管理数据,比如直接在HDFS上操作数据,而内部表则只能通过Hive来管理。
总之,内部表和外部表的主要区别在于数据的存储位置和管理方式。内部表数据存储在Hive自己的文件系统中,而外部表数据存储在Hive外部的文件系统中。在使用时,需要根据实际情况选择使用哪种类型的表。
Hive内部表与外部表区别()?
Hive中的表可以分为内部表和外部表。
内部表是由Hive自己管理的表,数据存储在Hive指定的目录下,当删除表时,数据也会同时被删除。
外部表则是由外部系统管理的表,数据存储在Hive外部的目录中,当删除表时,数据不会被删除。
因此,内部表和外部表的主要区别在于表的数据存储位置和删除表时是否删除数据。外部表适用于需要在Hive中访问外部系统中的数据的场景。
阅读全文