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

fan*_*u72 7 hive

我想知道如果同时运行 hive SELECT 和 INSERT OVERWRITE 会发生什么。请帮助我了解在以下情况下 hive 查询将返回什么。

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

先运行INSERT OVERWRITE,覆盖时,用SELECT从同一张表中拉取数据。

我们会得到旧数据、新数据、混合数据、空数据还是不可预测的数据?

我正在使用 MapR 4.0.1,Hive 0.13。

此致,

瑞安

Rem*_*anu 5

阅读Hive 锁定

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

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

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