托管表和外部表使用相同的位置创建。删除内部表时,数据文件会发生什么变化?它是否会对外部表或外部表的文件位置造成任何问题?
6kkfgxo01#
表是包含列规范、位置路径、表类型、serde、统计信息、授权等的元数据。删除位置文件夹或文件不会删除表,只会删除数据。配置单元中的表和数据是松散连接的,这非常方便,因为您不仅可以使用配置单元管理数据,还可以在其他一些工具生成的现有数据的基础上创建配置单元表,配置单元只是hadoop中可以使用的许多工具中的一个,不一定只有hadoop。一张table完全不知道另一张table建在同一个位置上。当然,当您删除使用与另一个外部表或托管表相同的位置创建的托管表时,该位置将被删除。从另一个表中选择将不返回任何行。如果要删除表并保持其位置不变,请设置 EXTERNAL=TRUE 在放下之前:
EXTERNAL=TRUE
ALTER TABLE abc SET TBLPROPERTIES('EXTERNAL'='TRUE');
也可以通过有趣的测试来查看类似主题的答案:https://stackoverflow.com/a/54038932/2700344
1条答案
按热度按时间6kkfgxo01#
表是包含列规范、位置路径、表类型、serde、统计信息、授权等的元数据。删除位置文件夹或文件不会删除表,只会删除数据。配置单元中的表和数据是松散连接的,这非常方便,因为您不仅可以使用配置单元管理数据,还可以在其他一些工具生成的现有数据的基础上创建配置单元表,配置单元只是hadoop中可以使用的许多工具中的一个,不一定只有hadoop。
一张table完全不知道另一张table建在同一个位置上。当然,当您删除使用与另一个外部表或托管表相同的位置创建的托管表时,该位置将被删除。从另一个表中选择将不返回任何行。如果要删除表并保持其位置不变,请设置
EXTERNAL=TRUE
在放下之前:也可以通过有趣的测试来查看类似主题的答案:https://stackoverflow.com/a/54038932/2700344