我正在创建一个年和月的分区。假设目标配置单元表中存在的上一个分区是 year = 2018 and month = 10 and month = 11
. 现在有新的数据出现了 year = 2018 and month = 11
只是。所以我的问题是将插入覆盖删除的数据和分区 month = 10
? 请建议我一个解决方案,因为我想删除的数据和分区 month = 10
我也是。谢谢
我正在创建一个年和月的分区。假设目标配置单元表中存在的上一个分区是 year = 2018 and month = 10 and month = 11
. 现在有新的数据出现了 year = 2018 and month = 11
只是。所以我的问题是将插入覆盖删除的数据和分区 month = 10
? 请建议我一个解决方案,因为我想删除的数据和分区 month = 10
我也是。谢谢
2条答案
按热度按时间xytpbqjk1#
当配置单元尝试“插入覆盖”到现有目录下的外部表的分区时,根据分区定义是否已存在于元存储中,配置单元的行为将有所不同:
a) 如果分区定义不存在,它将不会尝试猜测目标分区目录在哪里(静态分区或动态分区),因此它将无法删除那些将被写入的分区下的现有文件
b) 如果分区定义确实存在,它将尝试删除目标分区目录下的所有文件,然后再将新数据写入这些目录。
简而言之,在您的情况下,它不会删除数据。
prdp8dxp2#
如果要删除所有现有分区并只保留新的月份数据,可以使用
DROP PARTITION
命令与比较器。例如:如果2018年和第10个月及之前有分区。您可以使用其中一个进行配置