如果两个表的位置相同,则删除托管表会删除外部表吗?

时间:2019-07-09 16:14:51

标签: hadoop hive hiveql external-tables

托管表和外部表是在相同位置创建的。

当您删除内部表时,数据文件将如何处理? 会不会对外部表或外部表的文件位置造成任何问题?

1 个答案:

答案 0 :(得分:0)

表是一个元数据,其中包含列说明,位置路径,表类型,SerDe,统计信息,授予等。删除位置文件夹或文件不会删除该表,只删除数据。 Hive中的表和数据是松散连接的,这非常方便,因为您不仅可以使用Hive来管理数据,还可以在其他一些工具生成的现有数据之上创建Hive表,Hive只是您可以在其中使用的许多工具之一Hadoop,不一定是仅Hadoop。

一个表对在同一位置上建立的另一个表一无所知。当然,当您删除与另一个外部表或托管表具有相同位置的托管表时,该位置也会被删除。从另一个表中选择将不返回任何行。如果要删除表并保留其位置不变,请在删除表之前先设置EXTERNAL=TRUE

ALTER TABLE abc SET TBLPROPERTIES('EXTERNAL'='TRUE');

另请参见类似问题的答案和有趣的测试:https://stackoverflow.com/a/54038932/2700344