- 我使用以下sql创建了一个托管表并向其中添加了数据
CREATE TABLE test.internal_table (
id INT,
name STRING
);
INSERT INTO TABLE test.internal_table VALUES
(1, 'John'),
(2, 'Jane'),
(3, 'Bob'),
(4, 'Alice'),
(5, 'Charlie'),
(6, 'Diana'),
(7, 'Eva'),
(8, 'Frank'),
(9, 'Grace'),
(10, 'Henry');
- 我打开了 HDFS 垃圾箱
fs.trash.interval=360
- 然后我执行“drop table test.internal_table”SQL
- 在/user/hive/.Trash/Current/warehouse/tablespace/management/hive/test.db/internal_table路径下找到了被删除的internal_table表的数据文件
- 那么如何恢复 test.internal_table ?
我尝试了以下5种方法:
- 运行'hdfs dfs mv'命令将删除的数据文件移动到/warehouse/tablespace/management/hive/test.db路径下,然后执行'SELECT COUNT(1) FROM test.internal_table'SQL,但是它没用
- 首先执行DDL SQL 重新创建了test.internal_table,然后运行'hdfs dfs mv'命令将删除的数据文件移动到/warehouse/tablespace/management/hive/test.db路径下,但是没有'工作
3.首先执行DDL SQL重新创建test.internal_table,将删除的数据文件移回test.internal_table存储路径,然后运行'msck修复表internal_table;'命令,但是没用
- 执行'**加载数据INPATH **'/user/hive/.Trash/Current/warehouse/tablespace/management/hive/test.db/internal_table/'INTO TABLEInternal_table;'将删除的数据文件加载到表中,但是没有成功
-
尝试将删除的数据文件移动到/warehouse/tablespace/management/hive/test.db/internal_table,然后运行以下命令:
创建表 test.internal_table (
id 整数,
名称 STRING
)位置 '/warehouse/tablespace/driven/hive/test.db/internal_table';
也没用,数据还没有恢复。