Hive分区恢复

7
如何轻松恢复分区。以下是场景:
• 在现有外部表“t”上有“n”个分区。 • 删除了表“t”。 • 重新创建了表“t”(注意:相同的表,但排除了某些列)。 • 如何恢复在步骤#1中存在于表“t”的“n”个分区?
我可以手动修改表格以添加“n”个分区,编写一些脚本。 但这很繁琐。 是否有内置的东西可以恢复这些分区?
2个回答

5

当HDFS中仍存在分区目录时,只需运行以下命令:

MSCK REPAIR TABLE table_name;

它会根据表目录中的内容向元存储添加分区定义。

我还没有尝试过使用自定义的 Serde,但我认为 Serdes 不会影响这个命令,它应该可以正常工作! - 54l3d
是的,你说得没错,Serde 应该没有任何问题。但是从文档中提到的内容可以看出,如果分区格式仅为“yyyy-mm-dd”,则可以恢复分区。我不确定如何针对自定义分区格式进行操作?在我的情况下,我有类似于 yyyymmdd 的格式。 - Balaji Boggaram Ramanarayan
1
文档没有对此设置任何限制,但从逻辑上讲,有一件事需要注意,即分区格式应为“key=value”,例如date=160528,如果有连字符或没有也没有问题。 - 54l3d

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接