Hive external table: 如果在更新基础目录期间访问 table 怎么办
Hive external table: what if the table is accessed during the underlying directory is being updated
我正在使用外部配置单元 table,它位于 S3 或 HDFS 中的文件夹之外。每天一次,该文件夹将用新的文件集完全刷新,当发生这种情况时,我无法阻止 table 被其他人访问。这将是非常罕见的,因为更新时间是在非工作时间,但它可能会发生。
有没有办法不间断地处理这个更新?我可以想到一个解决方案,每次使用备用 S3 位置交替使用两个 S3(或 HDFS)位置和 运行 "create external table" 命令,但我不确定是否有一个优雅的解决方案。
提前致谢!
不需要解决方法或处理,因为 hive
通过 locks
自动处理它。对于非分区 table 当读取 table 时,会获取 S(shared)
锁,而所有其他操作都会获取 X(Exclusive)
锁(插入 table, 改变 table 任何类型等)。查询可能面临的是获得结果的轻微延迟,直到锁被释放。供参考:Hive Locking
我正在使用外部配置单元 table,它位于 S3 或 HDFS 中的文件夹之外。每天一次,该文件夹将用新的文件集完全刷新,当发生这种情况时,我无法阻止 table 被其他人访问。这将是非常罕见的,因为更新时间是在非工作时间,但它可能会发生。
有没有办法不间断地处理这个更新?我可以想到一个解决方案,每次使用备用 S3 位置交替使用两个 S3(或 HDFS)位置和 运行 "create external table" 命令,但我不确定是否有一个优雅的解决方案。
提前致谢!
不需要解决方法或处理,因为 hive
通过 locks
自动处理它。对于非分区 table 当读取 table 时,会获取 S(shared)
锁,而所有其他操作都会获取 X(Exclusive)
锁(插入 table, 改变 table 任何类型等)。查询可能面临的是获得结果的轻微延迟,直到锁被释放。供参考:Hive Locking