删除配置单元中外部和分区表中的数据

时间:2018-03-21 08:23:41

标签: hive azure-storage

我正在尝试从配置单元中的外部和分区表中删除数据。我可以删除分区:

ALTER TABLE myTable DROP PARTITION(字段>'xxxx') 要么 TRUNCATE TABLE myTable PARTITION(字段)

但Blob存储中的相关文件不会被删除。如何删除这些文件?

另一方面,我想使用任何字段作为过滤器(不仅是分区字段)删除数据。可以在我的情况下(在外部和分区表中)完成吗?我试图用这个来实现:

INSERT OVERWRITE TABLE myTable PARTITION(field) SELECT * FROM myTable WHERE machine ='xxxxx'

但SELECT中的数据不会替换myTable中的数据。

1 个答案:

答案 0 :(得分:0)

如果删除表或分区,外部表中的数据将保留。只有在管理表时,才会在删除表或分区时自动删除数据。

INSERT OVERWRITE TABLE myTable PARTITION(field) SELECT... 

语句可以使用新加载的数据替换返回数据集中存在的分区的数据。如果返回的数据集为空,则数据将保持不变。

要删除外部表中的数据,您需要删除文件系统上的文件。