drop table
命令 inhive
也会删除分区吗?
我只是想知道,还是我们必须为此使用alter table table_name drop partition()
命令?
DROP TABLE
语句总是删除MANAGED
和EXTERNAL
表的分区元数据,因为没有表就不能存在分区。但是对于EXTERNAL
表,它不会删除文件系统中的数据。
如果 table 是MANAGED
,DROP TABLE
则将删除 table 和分区元数据以及 table 位置中的数据,所有 table 位置包括分区子文件夹。
如果该表是EXTERNAL
,它将仅删除元数据和分区定义中的表定义,包含数据的表位置,包括所有分区文件夹将保持原样,您可以再次在同一位置创建表并恢复分区。
这同样适用于DROP PARTITION
:如果 table 是MANAGED
,它将删除分区元数据以及分区子文件夹。如果 table 是EXTERNAL
,则保留有数据的分区子文件夹,只删除分区元数据。
因此,对于MANAGED
表,您不需要在删除表或分区后删除数据。
有关更多详细信息,另请参阅DROP TABLE和DROP PARTITION手册。