Cloudflow PubSubのサブスクリプションから生まれた、Google Dataflowの無制限ストリーミングPCollectionでの作業。 BigTableにイベントを継続的に配信するために、これをFirehoseとして使用しています。配達のすべてがうまくいきます。Cloud Dataflow:ウォーターマークが進んだときの副作用
私たちの問題は、BigTableが配信されてから1日分のデータを読み込むことを期待する下流バッチジョブがあることです。ウォーターマークが日のしきい値を超えて進んだときに、マーカ行をbigtableに書き出す副作用を実装するために、ウィンドウ処理とトリガーを利用したいと思います。これは、データフローにイベントの大半が配信されたと信じる理由がある(完全性についての強い保証が必要であり、合理的な保証が必要)、下流の処理を開始することができます。
私たちが試みたのは、the timing information in the paneを使用してパイプラインに1つのシンクとして、次に別のシンクにウィンドウを書き出し、ウォーターマークが進んでいるかどうかを判断することでした。このアプローチの問題点は、未処理のイベント自体を再度操作することです。これは、イベント行の書き込みを繰り返すため望ましくありません。この書き込みを防ぐことができますが、パイプラインのパラレル・パスはウィンドウ・ストリームのイベントに対しても動作します。
透かしが進んだときに単一のアクションを実行できるように、コールバックの並べ替えを透かしに付加する効果的な方法はありますか?イベント時間にタイマーを設定し、コールバックを受信する