假设我必须将表 T1 和 T2 都按(天,国家/地区)进行分区,并且我并行运行两个查询,类似于:
INSERT OVERWRITE TABLE T1 PARTITION (day, country) SELECT * FROM T2 WHERE country='DE'
INSERT OVERWRITE TABLE T1 PARTITION (day, country) SELECT * FROM T2 WHERE country='FR'
因此,对于非重叠查询。我不确定在这种情况下发生了什么?根据文档 https://cwiki.apache.org/confluence/display/Hive/Locking#Locking-TurnOffConcurrency据我了解,第二个查询必须等到第一个查询完成。
最佳答案
我认为这是不可能的,因为每当您尝试在配置单元中的表上插入覆盖时,该表将处于独占锁定模式...这意味着您只能从该表中读取但不能将内容添加到表中.
请引用以下链接,其中介绍了 hive 中的锁定机制:https://cwiki.apache.org/confluence/display/Hive/Locking
关于hadoop - 使用非重叠查询并行插入配置单元表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46527476/