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

标签 hadoop hive hiveql external-tables hiveddl

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

当您删除内部表时,数据文件会发生什么情况? 会不会对外部表或外部表的文件位置造成问题?

最佳答案

表是一个元数据,包含列规范、位置路径、表类型、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/

相关文章:

apache-spark - pyspark 2.0 抛出 AlreadyExistsException(消息 :Database default already exists) when interact with hive

join - 无法在Hive 0.12中使用存储桶映射联接

Hadoop MapReduce 作业权限被拒绝

sql - 如何在 Hive 中删除 External_Table 以及元数据和数据

hadoop - 如何使用 JAVA API 在 HDFS 中移动或复制文件

date - 如何在 Hive 中将时间戳(秒和毫秒之间的点)转换为日期(yyyyMMdd)?

hadoop - Hive - 将层次结构表展平为多个级别

hadoop - 带有 SERDEPROPERTIES 的 Hive CREATE TABLE 语句抛出错误

Hadoop 溢出故障

hadoop - 错误无法识别的参数 --hive-partition-key