2017-08-01 2 views
0

私は、パイプラインを実装しようと存在しない場合は任意の要素は、分間隔またはFalseに存在する場合、データのストリームとすべての分の出力に真を取りいます。持続時間の要素がない場合は、ウィンドウ(永久時間トリガー付き)またはウィンドウ(固定ウィンドウ)はトリガーしていないようです。私は考えていApacheのビームでストリーミングで空のペイン/ウィンドウを強制

回避策の一つは、グローバルウィンドウにストリームを置き、データと試験へのトリガキューとしてタイマーを蓄積するキューを維持するためにValueStateを使用することです。私はこれを達成するためのより純粋な方法があるのだろうかと思います。

ありがとうございました。

答えて

0

私はあなたのタイマーと状態の解は、これを行うには良い方法だと思います。ただし、キーの要素を少なくとも1つ受け取るまで、タイマーは設定されません。

これが問題である場合は、あなたができる他の事は、すべてのウィンドウが少なくとも一つのダミー素子を持つことが保証されるようにPCollectionを注入しています。次に、ValueStateを使用して、ダミー要素以外の要素が到着したかどうかを確認できます。あるいは、ウィンドウの上にCount.PerElementを使用し、そのウィンドウの要素が2つ以上あるかどうか(ダミー要素ではない追加要素)があるかどうかを確認します。

関連する問題