如何恢复被错误删除的Hive托管表?

3zwjbxry  于 4个月前  发布在  Hive
关注(0)|答案(1)|浏览(43)

1.我用以下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');

字符串
1.我打开了HDFS垃圾桶fs.trash.interval=360
1.然后我执行“drop table test.internal_table”SQL
1.我在/user/hive/.Trash/Current/warehouse/warehouse/managed/hive/test.db/internal_table路径enter image description here中找到了已删除的internal_table表的数据文件
1.如何恢复test.internal_table?
我尝试了以下5种方法:
1.运行'hdfs dfs mv'命令将删除的数据文件移动到/warehouse/tablespace/managed/hive/test. db路径,然后执行'SELECT SQL(1)FROM test.internal_table' SQL,但不起作用
1.首先,执行MySQLrecreated test.internal_table,然后运行'hdfs dfs mv'命令将删除的数据文件移动到/warehouse/tablespace/managed/hive/test. db路径,但不起作用3.首先,执行MySQL recreated test.internal_table,将删除的数据文件移回test.internal_table存储路径,然后运行'msck修复表internal_table;命令,但它没有工作
1.执行'**LOAD DATA INPATH * 路径'/user/hive/.Trash/Current/warehouse/register/managed/hive/test.db/internal_table/' INTO TABLE internal_table;'将已删除的数据文件加载到表中,但不起作用
1.尝试将已删除的数据文件移动到/warehouse/css/managed/hive/test.db/internal_table,然后运行以下命令:
CREATE TABLE test.internal_table(id INT,name STRING)location '/warehouse/career/managed/hive/test.db/internal_table';
它也没有工作,数据仍然没有恢复。

x33g5p2x

x33g5p2x1#

尝试将数据恢复到表位置,然后运行MSCK修复

MSCK REPAIR TABLE <table_name>;

字符串

相关问题