2017-10-03 2 views
0

Ich habe eine Pipeline mit einer BigQuery-Tabelle als Senke. Ich muss einige Schritte genau ausführen, nachdem Daten in BigQuery geschrieben wurden. Zu diesen Schritten gehören das Ausführen von Abfragen für diese Tabelle, das Lesen von Daten aus dieser Tabelle und das Schreiben in eine andere Tabelle.Führen Sie einen Prozess genau nach BigQueryIO.write() -Operation

Wie erreicht man das Obige? Sollte ich eine andere Pipeline für die letztere erstellen, aber dann nach der ersten Pipeline aufrufen, werde ich ein anderes Problem annehmen.

Wenn keiner der oben genannten Schritte funktioniert, ist es möglich, einen anderen Datenflussjob (Vorlage) aus einer laufenden Pipeline aufzurufen.

Wirklich brauchen Hilfe mit diesem.

Danke.

Antwort

1

Dies wird derzeit nicht explizit von BigQueryIO unterstützt. Die einzige Problemumgehung besteht darin, separate Pipelines zu verwenden: Starten Sie die erste Pipeline, warten Sie, bis sie beendet ist (z. B. mit pipeline.run().waitUntilFinish()), starten Sie die zweite Pipeline (stellen Sie sicher, dass Sie ein separates Pipeline-Objekt dafür verwenden) unterstützt).

+0

Nur hinzufügen - Sie müssen nicht unbedingt eine andere Pipeline verwenden, um dies zu erreichen. Nachdem die erste Pipeline abgeschlossen ist ('pipeline.run(). WaitUntilFinish()'), können Sie einfach auf das BigQuery SDK zurückgreifen. Wir tun dies sehr in unseren Pipelines und das Muster funktioniert gut. https://stackoverflow.com/questions/44315157/perform-action-after-dataflow-pipeline-has-processed-all-data/44328850#44328850 –

+0

@jkff Wie es funktioniert, wenn ich Vorlagen erstellen? Habe ich separate Vorlagen für die beiden Pipelines? Was wäre, wenn ich eine einzelne Vorlage erstellen möchte, die beide Pipelines ausführt? – rish0097

+0

Dies ist mit Vorlagen leider nicht möglich. – jkff

Verwandte Themen