Google cloud dataflow 应对GCS桶清单的最终一致性

Google cloud dataflow 应对GCS桶清单的最终一致性,google-cloud-dataflow,Google Cloud Dataflow,我们的数据流作业从包含感兴趣文件的GCS多区域存储桶中读取。这些文件也会被移动到归档桶中,因此有时我们会看到GCS列表操作返回已移动的文件(正如您所期望的,因为这是一个最终一致的操作) 不幸的是,当FileBasedSources尝试读取这些“ghost”文件时,我们的作业就失败了。Google的Dataflow SDK和Apache Beam似乎都将打开GCS文件的方法作为最终方法(在FileBasedSource:createReader和startImpl)因此我们无法覆盖它们 除了不移动

我们的数据流作业从包含感兴趣文件的GCS多区域存储桶中读取。这些文件也会被移动到归档桶中,因此有时我们会看到GCS列表操作返回已移动的文件(正如您所期望的,因为这是一个最终一致的操作)

不幸的是,当
FileBasedSource
s尝试读取这些“ghost”文件时,我们的作业就失败了。Google的Dataflow SDK和Apache Beam似乎都将打开GCS文件的方法作为最终方法(在
FileBasedSource
createReader
startImpl
)因此我们无法覆盖它们


除了不移动文件之外,还有什么建议可以解决这个问题吗?这表明其他人也遇到了类似的问题,但似乎回应是“如预期的那样爆炸了”。

现在,谷歌云存储对象列表操作正在进行,因此最初的问题不再适用


当使用最终一致的文件系统(如S3)时,它仍然适用。请参阅以跟踪此问题。

谢谢@jkffThank更新当前状态我编辑了我的答案,因为GCS对象列表已变得非常一致。