当旧分区上存在读锁定时,Hive不会在新分区上获得写锁定

时间:2017-02-06 22:22:28

标签: hadoop hive hiveql

我们有按日期分区的数据。我们的管道每天都会为表添加新的分区。我们还有一些用例,人们通过过滤分区来运行长读取查询。

我们已经看到了行为,其中,如果在旧分区上运行了一些读取查询(具有SHARED锁定),那么我们就无法获取新分区的锁定(EXCLUSIVE)。

有没有一种方法可以让HIVE认识到这一点,以前的查询不会读取新分区,并为该分区获取EXLUSIVE锁定以增加并行性。

1 个答案:

答案 0 :(得分:0)

根据分区上具有共享锁的the documentation,不会阻止您在同一分区上获得独占锁。

理论上你的问题会显得无效,但在实践中我可以想到以下两点:

  1. hive很难看到你正在使用哪些分区(复杂/间接where语句?)
  2. 文档不准确或被我误解
  3. 我建议您检查第1点,否则添加一个可重复性最小的示例。