【发布时间】:2018-10-08 06:34:46
【问题描述】:
hive 中的drop table 命令也会删除分区吗?
我只是想知道,否则我们必须为此使用alter table table_name drop partition() 命令?
【问题讨论】:
hive 中的drop table 命令也会删除分区吗?
我只是想知道,否则我们必须为此使用alter table table_name drop partition() 命令?
【问题讨论】:
DROP TABLE 语句总是删除MANAGED 和EXTERNAL 表的分区元数据,因为没有表就不能存在分区。但是对于EXTERNAL 表,它不会删除文件系统中的数据。
如果表是MANAGED,那么DROP TABLE 将删除表位置的表和分区元数据和数据,所有表位置包括分区子文件夹。
如果表是EXTERNAL,它将只删除元数据和分区定义中的表定义,包含数据的表位置,包括所有分区文件夹将保持原样,您可以在同一位置再次创建表并recover partitions.
同样适用于DROP PARTITION:如果表是MANAGED,它将删除分区元数据以及分区子文件夹。如果表为EXTERNAL,则保留有数据的分区子文件夹,只删除分区元数据。
所以,对于MANAGED表,你不需要删除表或分区后删除数据。
有关详细信息,另请参阅 DROP TABLE 和 DROP PARTITION 手册。
【讨论】: