2017-09-19 9 views
0

入力トピックから作成されたKStreamがあります。 1.このKStreamではgroupByKeyを実行してから、集計操作をウィンドウで行います 2.その後、私のコードでは、上記と同じKStreamを使用して、マップ操作を行ってキーに変更を加えます&値次に別のウィンドウ集約操作を実行します。カフカストリームアプリケーションの複数の集計

すべての私のウィンドウ操作は、30秒の転倒ウィンドウにあります。私の見解では、2回目の集計は最初の集計の約30秒後に開始されます。それらを並列化する方法はありますか?

+0

「最初の集計から約30秒後に開始していますか?ウォールクロック(ランタイム)の遅延、または偶数時間? –

+0

壁時計の時刻です。 –

答えて

1

「最初の集計から約30秒後に開始していますか?あなたが意味するか:

  • 処理時間/ウォールクロック時間(あなたは関係なく、このイベントは、実際に現実の世界で発生したときの、入力イベントを処理するために起こる時間)に応じた遅延、または
  • イベントタイム(実際に現実世界で入力イベントが発生した時刻)に応じた遅延?

なお、データは少し時間がかかり、正しいウィンドウ凝集を、計算するmap()後に再分割されなければならないので、第2の集約は、(ウォールクロック時間に応じて)遅延されることが予想されます。

あなたのプログラムの構造はこのようなものになります。

KStream -+-> group() -> agg() 
     | 
     +-> map() -> to() -> REPARTITION-TOPIC -> KStream -> group() -> agg() 

あなたはこれについてできることは何もありませんが、それはあなたの結果の正しさには影響しませんよう、それはまた、問題になることはありません。

関連する問題