问题描述
iceberg 是否支持将数据写入 GCS?因为冰山的原子性要根据 https://iceberg.apache.org/java-api-quickstart/ 工作,GCS 应该支持原子重命名,但是从 https://cloud.google.com/storage/docs/gsutil/commands/mv 开始 GCS 重命名不是原子的。如果 iceberg 不支持 GCS,有什么解决原子性的方法
解决方法
Hadoop 表实现是唯一使用重命名的地方,并且 它需要一个支持原子重命名的文件系统。如果您使用的是 像 S3 或 GCS 这样的对象存储,那么你应该使用 HMS 实现或自定义目录而不是 Hadoop 表。
"表不需要重命名,除了使用原子重命名的表 为新的元数据文件实现提交操作。”
据我所知,一切都应该与 GCS 一起工作,无需修改。
GCS 中没有原生原子重命名,它需要移动 + 删除。您可以参考页面https://iceberg.apache.org/spec/#mvcc-and-optimistic-concurrency。