我想知道如果同时运行 hive SELECT 和 INSERT OVERWRITE 会发生什么。请帮助我了解在以下情况下 hive 查询将返回什么。
首先运行查询,在查询运行时,INSERT OVERWRITE 同一个表。
先运行INSERT OVERWRITE,覆盖时,用SELECT从同一张表中拉取数据。
我们会得到旧数据、新数据、混合数据、空数据还是不可预测的数据?
我正在使用 MapR 4.0.1,Hive 0.13。
此致,
瑞安
最佳答案
阅读 Hive Locking :
For a non-partitioned table, the lock modes are pretty intuitive. When the table is being read, a S lock is acquired, whereas an X lock is acquired for all other operations (insert into the table, alter table of any kind etc.)
因此 SELECT 和 INSERT 获取不兼容的锁,因此它们永远无法并行运行。一个将首先获取锁,另一个将等待。
对于分区表,事情有点复杂,因为获取的锁是分层的(表上的 S,分区上的 S/X)。阅读链接。
关于hive - 如果同时运行 hive(0.13) SELECT 和 INSERT OVERWRITE 会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33230686/