我正在使用一个hive外部表,它不在S3或HDFS中的文件夹中。每天一次,文件夹将使用新的文件集完全刷新,并且当发生这种情况时,我无法阻止其他人访问该表。这将是非常罕见的,因为更新时间是在非工作时间,但它可能会发生。
有没有办法在没有任何中断的情况下处理此更新?我可以想到一个解决方案,交替使用两个S3(或HDFS)位置并运行"创建外部表"每次使用备用S3位置命令,但我不确定是否有一个优雅的解决方案。
提前致谢!
答案 0 :(得分:2)
无需解决方法或处理,因为hive
会通过locks
自动处理。对于非分区表在读取表时,将获取S(shared)
锁,而为所有其他操作获取X(Exclusive)
锁(插入表中,更改任何类型的表等)。 )。什么查询可以面对获得结果的轻微延迟,直到锁定被释放。供参考:Hive Locking