2015-05-12 6 views
6

Einer unserer Dataflow-Jobs schreibt seine Ausgabe in BigQuery. Mein Verständnis davon, wie dies unter der Oberfläche implementiert wird, besteht darin, dass Dataflow die Ergebnisse (sharded) im JSON-Format tatsächlich in GCS schreibt und dann einen BigQuery-Ladejob startet, um diese Daten zu importieren.Schreiben aus Dataflow in BigQuery - JSON-Dateien werden nicht gelöscht, wenn ein Job beendet wird

Wir haben jedoch festgestellt, dass einige JSON-Dateien nach dem Job nicht gelöscht werden, unabhängig davon, ob sie erfolgreich waren oder fehlgeschlagen sind. Es gibt keine Warnung oder einen Vorschlag in der Fehlermeldung, dass die Dateien nicht gelöscht werden. Als wir das bemerkten, schauten wir uns unseren Bucket an und es gab Hunderte von großen JSON-Dateien von fehlgeschlagenen Jobs (hauptsächlich während der Entwicklung).

Ich hätte gedacht, dass Dataflow jede Bereinigung behandeln sollte, selbst wenn der Job fehlschlägt, und wenn es erfolgreich ist, sollten diese Dateien definitiv gelöscht werden. Wenn Sie diese Dateien nach Abschluss des Jobs weitergeben, entstehen erhebliche Speicherkosten!

Ist das ein Fehler?

Beispiel Job-ID eines Auftrags, dass "gelungen", sondern Hunderte von großen Dateien in GCS links: 2015-05-27_18_21_21-8377993823053896089

enter image description here

enter image description here

enter image description here

+1

Ist nicht von Entwurf. Vielen Dank, dass Sie uns dieses Problem aufgezeigt haben. Wir schauen hinein. –

+0

gibt es ein Update zu diesem Fehler @Stephen Gildea? –

+0

Dieses Problem wurde behoben. Bereinigt es dich jetzt? –

Antwort

5

Da dies immer noch geschieht, haben wir beschlossen, dass wir uns selbst reinigen, nachdem die Pipeline fertig ist. Wir führen Sie den folgenden Befehl, alles zu löschen, die nicht ein JAR oder ZIP ist:

gsutil ls -p <project_id> gs://<bucket> | grep -v '[zip|jar]$' | xargs -n 1 gsutil -m rm -r 
2

Dies war ein Fehler, bei dem der Dataflow-Dienst die temporären JSON-Dateien nach einem BigQuery -Import manchmal nicht löschen konnte Der Job wird abgeschlossen. Wir haben das Problem intern behoben und eine Version mit dem Fix bereitgestellt.

+1

Dies liefert keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlasse einen Kommentar unter seinem Beitrag. – WMios

+1

Ist das besser? Ihre spezifische Frage war, ob das ein Fehler war. –

+1

Nein, das ist keine Antwort. Eine Antwort wäre eine Erklärung, was den Fehler behoben hat. Dies ist ein Kommentar. – WMios

5

Eine weitere mögliche Ursache von links über Dateien wird abgebrochen Arbeitsplätze. Derzeit löscht Datenfluss keine Dateien aus abgebrochenen Jobs. In anderen Fällen sollten Dateien bereinigt werden.

Auch der Fehler im ersten Post "Kann temporäre Dateien nicht löschen" ist das Ergebnis einer Protokollierung auf unserer Seite, und sollte innerhalb von ein oder zwei Wochen gelöst werden. Bis dahin können Sie diese Fehler ignorieren, da sie keine übriggebliebenen Dateien anzeigen.