我正在使用 Hive 外部表,该表位于 S3 或 HDFS 中的文件夹之外。每天一次,该文件夹将使用新的文件集完全刷新,当发生这种情况时,我无法阻止其他人访问该表。这种情况很少见,因为更新时间是在非工作时间,但也有可能发生。
有没有办法在不中断的情况下处理此更新?我可以想到一个解决方案,交替两个 S3(或 HDFS)位置,并每次使用备用 S3 位置运行“创建外部表”命令,但我不确定是否有一个优雅的解决方案。
提前致谢!
最佳答案
不需要解决方法或处理,因为 hive
通过锁
自动处理它。对于非分区表 读取表时,将获取 S(共享)
锁,而对于所有其他操作(插入表、更改任何类型的表等)。查询可能面临的是获取结果的轻微延迟,直到锁被释放。供引用:Hive Locking
关于amazon-s3 - Hive外部表: what if the table is accessed during the underlying directory is being updated,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37507095/