如果hive(0.13)SELECT和INSERT OVERWRITE同时运行会发生什么

时间:2015-10-20 07:37:25

标签: hive

我想知道如果hive SELECT和INSERT OVERWRITE同时运行会发生什么。请帮助我理解在下面的场景中hive查询返回的内容。

首先运行查询,在查询运行时,INSERT OVERWRITE同一个表。

首先运行INSERT OVERWRITE,同时覆盖,使用SELECT从同一个表中提取数据。

我们是否会获取旧数据,新数据,混合数据,无数据或不可预测的数据?

我正在使用MapR 4.0.1,Hive 0.13。

致以最诚挚的问候,

赖安

1 个答案:

答案 0 :(得分:1)

阅读Hive Locking

  

对于非分区表,锁定模式非常直观。在读取表时,获取S锁,而为所有其他操作获取X锁(插入表,更改任何类型的表等)。

因此SELECT和INSERT获取不兼容的锁,因此它们永远不会并行运行。一个人将首先获得锁定,另一个人将等待。

对于分区表,事情有点复杂,因为锁获取是分层的(表上的S,分区上的S / X)。阅读链接。