托管表和外部表是在同一位置创建的。
当您删除内部表时,数据文件会发生什么情况? 会不会对外部表或外部表的文件位置造成问题?
最佳答案
表是一个元数据,包含列规范、位置路径、表类型、SerDe、统计信息、授权等。删除位置文件夹或文件不会删除表,只会删除数据。 Hive 中的表和数据是松散连接的,这非常方便,因为您不仅可以使用 Hive 管理数据,还可以在其他一些工具生成的现有数据之上创建 Hive 表,Hive 只是您可以拥有的众多工具之一Hadoop,不一定只是 Hadoop。
一张表对建立在同一位置之上的另一张表一无所知。当然,当您删除使用与另一个外部表或托管表相同的位置创建的托管表时,该位置将被删除。从另一个表中选择将不返回任何行。如果你想删除表并保留它的位置,请在删除之前设置 EXTERNAL=TRUE
:
ALTER TABLE abc SET TBLPROPERTIES('EXTERNAL'='TRUE');
另请参阅带有有趣测试的类似主题的答案:https://stackoverflow.com/a/54038932/2700344
关于hadoop - 如果两者具有相同的位置,删除托管表将删除外部表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56956763/