目前out表是外部的\u表,namenode中有大量的元数据信息,所以我需要做归档来减少这些信息,但是hive归档只支持托管的\u表
有人能解释一下为什么档案不支持外部表吗?
如果我这样修改代码有什么坏处吗?
if (!(tbl.getTableType() == TableType.MANAGED_TABLE || tbl.getTableType() == TableType.EXTERNAL_TABLE))
{
throw new HiveException("ARCHIVE can only be performed on managed tables");
}
1条答案
按热度按时间yeotifhr1#
为什么要归档外部表的元数据?只是为了减少信息?如果您在配置单元中有外部表并且正在这样做,那么这是不对的。如果配置单元中有表,则不应删除元数据。在配置单元中,如果删除一个外部表,元数据也会自动删除。如果删除托管表,则数据和元数据都会被删除如果删除外部表,则只有元数据会被删除