私たちのデータフロージョブは、対象のファイルを含むGCSマルチリージョナルバケットから読み込みます。これらのファイルもアーカイブバケットに移動されるため、GCSリスト操作では移動したファイルが返されることがあります(最終的には一貫した操作であることが予想されます)。GCSバケットリストの最終的な一貫性に対処する
FileBasedSource
が「ゴースト」ファイルを読み込もうとすると、残念なことに私たちの仕事が爆発します。 GoogleのDataflow SDKとApache Beamの両方で、GCSファイルを最後に開くメソッド(FileBasedSource
:createReader
とstartImpl
)がオーバーライドできないようです。
ファイルを移動しない以外は、この問題を回避するための推奨事項はありますか?このStack Overflow questionは、他の人が同様の問題を経験していることを示していますが、応答が「期待どおりに爆発した」ようです。
私はGCSオブジェクトのリストがその後非常に一貫しているため、私の答えを編集しました。 – jkff