【发布时间】:2017-06-24 00:27:24
【问题描述】:
我们有按日期分区的数据。我们的管道每天都会向表添加新分区。我们还有一些用例,人们通过对分区进行过滤来运行长读查询。
我们已经看到了这种行为,如果在旧分区上运行一些读取查询(拥有共享锁),那么我们就无法获取新分区的锁(独占)。
有没有一种方法可以让 HIVE 识别出新分区不会被早期查询读取并为该分区获取 EXLUSIVE 锁以增加并行度。
【问题讨论】:
我们有按日期分区的数据。我们的管道每天都会向表添加新分区。我们还有一些用例,人们通过对分区进行过滤来运行长读查询。
我们已经看到了这种行为,如果在旧分区上运行一些读取查询(拥有共享锁),那么我们就无法获取新分区的锁(独占)。
有没有一种方法可以让 HIVE 识别出新分区不会被早期查询读取并为该分区获取 EXLUSIVE 锁以增加并行度。
【问题讨论】:
根据the documentation 的说法,在一个分区上拥有一个共享锁,并不妨碍您在同一个分区上获得一个排他锁。
理论上你的问题会显得无效,但在实践中我可以想到以下两件事:
我建议您检查第 1 点,否则添加一个最小的可重现示例。
【讨论】: