删除托管表将删除外部表(如果两者具有相同的位置)?

e0uiprwp  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(399)

托管表和外部表使用相同的位置创建。
删除内部表时,数据文件会发生什么变化?它是否会对外部表或外部表的文件位置造成任何问题?

6kkfgxo0

6kkfgxo01#

表是包含列规范、位置路径、表类型、serde、统计信息、授权等的元数据。删除位置文件夹或文件不会删除表,只会删除数据。配置单元中的表和数据是松散连接的,这非常方便,因为您不仅可以使用配置单元管理数据,还可以在其他一些工具生成的现有数据的基础上创建配置单元表,配置单元只是hadoop中可以使用的许多工具中的一个,不一定只有hadoop。
一张table完全不知道另一张table建在同一个位置上。当然,当您删除使用与另一个外部表或托管表相同的位置创建的托管表时,该位置将被删除。从另一个表中选择将不返回任何行。如果要删除表并保持其位置不变,请设置 EXTERNAL=TRUE 在放下之前:

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

也可以通过有趣的测试来查看类似主题的答案:https://stackoverflow.com/a/54038932/2700344

相关问题