在Apache Hive中交换分区时的用户体验是什么? 它是原子的还是离散的,包括多个步骤,如:
partition rename
data copy
old partition drop
table repair
答案 0 :(得分:1)
由于我的研究将我带到了这里,所以我认为我会分享自己为其他Google员工而学到的东西,即使我没有确切的答案。
EXCHANGE PARTITION更合适的名称是MOVE PARTITION,它的名称为only works when the destination partition does not exist:
EXCHANGE PARTITION命令会将分区从源表移动到目标表,并更改每个表的元数据。 [...]
执行命令时,HDFS中源表的分区文件夹将被重命名以将其移动到目标表的分区文件夹。 Hive元存储将被更新以相应地更改源表和目标表的元数据。 [...]
目标表不能包含要交换的分区。
因此,对针对“目标”表的长期查询的影响应类似于ought to be "continues to work just fine", but isn't - at least on certain versions的添加分区的影响。
这与Samson的评论大体上一致,除了我不明白为什么会发生“ FileNotFoundException”(除非我们正在谈论针对“源”而不是“目标”表的查询)。