我一直在尝试使用以下语句删除配置单元外部表
更改表$ tableName set tblproperties('EXTERNAL'='FALSE');
在我传递这些属性并执行
之后DROP TABLE TABLENAME;
此命令还将删除其他配置单元表中的数据 数据库。
请有人建议我为什么这样做吗?也有什么办法 在这里我们只能删除一个没有提到的外部表 丢失其他数据。
ALTER TABLE TABLENAME set tblproperties('EXTERNAL' = 'FALSE');
drop table tablename;
答案 0 :(得分:0)
在Hive中放置托管表时,其与数据文件的位置也会被删除。从技术上讲,可以在同一位置上创建许多表(包括托管表和外部表),请参见https://inthecheesefactory.com/blog/fragment-state-saving-best-practices/en。因此,这种情况很有可能。在相同位置创建的其他一些表也将被清空。实际上,Hive中的数据和表是松散连接的东西。 Hive中的Table是有关位置,架构,SerDe,统计信息,访问权限等的元存储信息。数据正在存储在HDFS / S3或其他兼容的文件系统中。您不仅可以使用Hive中的托管表,还可以使用其他方式删除数据或加载数据,例如hadoop fs -rm
命令。