1

Ich verwende Google Cloud Dataflow, um gebundene Daten zu verarbeiten und an BigQuery zu senden, und ich möchte, dass etwas verarbeitet und etwas geschrieben wird (wie Stream, nicht Batch). Kann ich das irgendwie?Kann Cloud Dataflow auf irgendeine Weise wie ein Stream ausgegeben werden?

Momentan wartet Dataflow Worker-Prozess nicht alle Daten, und schreibe nach BigQuery, ich versuche, FixedWindow hinzuzufügen und Log Timestamp-Parameter zu verwenden ist ein window_timestamp, aber es funktioniert nicht.

Ich möchte wissen:

  1. richtige Weg ist, Windowing, dieses Problem zu umgehen?
  2. Ist BigQueryIO wirklich Batch schreiben oder vielleicht nur nicht auf meinem Dashboard angezeigt (Hintergrund schreiben Stream?)
  3. Ist eine Möglichkeit zu tun, die ich brauche?

Code Meine Quelle ist hier: http://pastie.org/10907947

Vielen Dank!

Antwort

3

Sie müssen die streaming Eigenschaft auf true in Ihrem PipelineOptions setzen.

Weitere Informationen finden Sie unter "streaming execution".

Darüber hinaus müssen Sie Quellen/Senken verwenden, die unbegrenzte Daten generieren/konsumieren können. BigQuery kann bereits in beiden Modi schreiben, aber derzeit liest TextIO nur beschränkte Daten. Aber es ist definitiv möglich, eine benutzerdefinierte unbegrenzte Quelle zu schreiben, die ein Verzeichnis nach neuen Dateien scannt.