【发布时间】:2013-04-30 13:48:36
【问题描述】:
在使用以下命令从 Hive 中的托管表删除分区时,是否有任何方法可以跳过垃圾箱?
ALTER TABLE <table> DROP PARITION (<partition_name>)
类似于我们使用 hadoop fs 命令删除文件时的操作,例如
hadoop fs -rmr -skipTrash
【问题讨论】:
在使用以下命令从 Hive 中的托管表删除分区时,是否有任何方法可以跳过垃圾箱?
ALTER TABLE <table> DROP PARITION (<partition_name>)
类似于我们使用 hadoop fs 命令删除文件时的操作,例如
hadoop fs -rmr -skipTrash
【问题讨论】:
试试这套。
SET hive.warehouse.data.skiptrash=true;
【讨论】:
No you can't 使用当前可用的 hive 版本执行此操作。数据总是被移到垃圾箱,元数据永远丢失。
但是,默认情况下,垃圾箱应配置为在一天后删除数据。我想这在大多数情况下应该没问题。
【讨论】:
如果有帮助,这里有一个用于在删除表时跳过垃圾的补丁。
https://issues.apache.org/jira/browse/HIVE-6469 它尚未被 hive 社区接受,但该补丁应该适用于 HIVE-0.12 没有任何问题。 HIVE-0.13 和主干的补丁也将在那里。 希望有帮助。
【讨论】:
试试:
ALTER TABLE tablename DROP IF EXISTS PARTITION partionspec PURGE
【讨论】: