Unsere Datenflussjobs werden von einem multiregionalen GCS-Bucket gelesen, der Dateien von Interesse enthält. Diese Dateien werden auch in einen Archiv-Bucket verschoben. Daher sehen wir manchmal, dass GCS-Listenoperationen Dateien zurückgeben, die verschoben wurden (wie es zu erwarten wäre, da es sich um eine letztendlich konsistente Operation handelt).Umgang mit eventueller Konsistenz der GCS-Bucket-Auflistung
Leider explodieren unsere Jobs als Ergebnis, wenn FileBasedSource
s versuchen, diese "Geister" -Dateien zu lesen. Es scheint, dass sowohl das Dataflow SDK von Google als auch Apache Beam die Methoden zum Öffnen von GCS-Dateien (in FileBasedSource
: createReader
und startImpl
) so eingerichtet haben, dass wir sie nicht überschreiben können.
Anders als keine Dateien zu verschieben, irgendwelche Empfehlungen zur Arbeit um diese? Diese Stack Overflow question zeigt an, dass andere ähnliche Probleme haben, aber es scheint, dass die Antwort "wie erwartet explodiert" ist.
Ich habe meine Antwort bearbeitet, weil die GCS-Objektliste seither stark konsistent gemacht wurde. – jkff