我需要把一个大的数据库放到Hive里,但我找不到一个跳过垃圾的选项,比如 purge 用于删除表格。当为垃圾箱应用空间配额时,这可能会带来麻烦!有没有建议只使用hiveddl命令?需要说明的是:我的工作:
purge
Drop database <my_db> cascade;
我在找什么或类似的东西:
Drop database <my_db> cascade purge;
svmlkihl1#
存储在磁盘上的hdfs数据和配置单元元存储中的表定义是不同的实体。正如@congyh所建议的,您可以使用 hadoop fs -rm -r -skipTrash <data_path> 以及 drop db.table; 从hive0.11.0开始,您还可以在从元存储中删除表之前截断表(删除hdfs数据)。正如@lovish saini所建议的,在直线cli会话中: set hive.warehouse.data.skipTrash=true; truncate table db.table; drop table db.table;
hadoop fs -rm -r -skipTrash <data_path>
drop db.table;
set hive.warehouse.data.skipTrash=true; truncate table db.table; drop table db.table;
unguejic2#
配置单元默认值.xml
<property> <name>hive.warehouse.data.skipTrash</name> <value>true</value> <description> Set this to true if you do not want table data to be moved to trash while dropping table. </description> </property>
默认设置为false。此属性适用于配置单元0.14.0或更高版本。
jv4diomz3#
也许您应该找到数据的路径并在删除数据库之前将其删除。命令如下:
$ hadoop fs -rm -r -skipTrash <data_path>
3条答案
按热度按时间svmlkihl1#
存储在磁盘上的hdfs数据和配置单元元存储中的表定义是不同的实体。正如@congyh所建议的,您可以使用
hadoop fs -rm -r -skipTrash <data_path>
以及drop db.table;
从hive0.11.0开始,您还可以在从元存储中删除表之前截断表(删除hdfs数据)。正如@lovish saini所建议的,在直线cli会话中:set hive.warehouse.data.skipTrash=true; truncate table db.table; drop table db.table;
unguejic2#
配置单元默认值.xml
默认设置为false。此属性适用于配置单元0.14.0或更高版本。
jv4diomz3#
也许您应该找到数据的路径并在删除数据库之前将其删除。
命令如下: