0

アイテムの合計と平均を計算したいとしましょう。また、statesまたはwindows(時間) を使用できます。

使用例windows- https://ci.apache.org/projects/flink/flink-docs-release-0.10/apis/streaming_guide.html#example-program

使用例states- https://github.com/dataArtisans/flink-training-exercises/blob/master/src/main/java/com/dataartisans/flinktraining/exercises/datastream_java/ride_speed/RideSpeed.java

決定を下す理由は何ですか?データが非常に不規則に到着する場合 (50% は定義されたウィンドウの長さで到着し、残りの 50% は到着しない)、ウィンドウ アプローチの結果はより偏っていると推測できます (50% のイベントがドロップされるため)。

一方、状態を操作する場合、状態のチェックと更新により多くの時間を費やしますか?

4

1 に答える 1

1

まず、セマンティクスに依存します... 2 つの例は異なるセマンティクスを使用しているため、直接比較することはできません。さらに、ウィンドウも内部で状態を操作します。一般的にアプローチが優れているとは言い難いです。

Flink のウィンドウ セマンティクスは非常に豊富であるため、windows を使用することをお勧めします。ウィンドウでセマンティクスを表現できない場合は、状態を使用することをお勧めします。ウィンドウを使用すると、状態処理 (正しく行うのが難しい) が自動的に行われるという追加の利点があります。

この決定は、データ到着率とは完全に無関係です。Flink はデータをドロップしません。イベント時間(処理時間ではなく) を使用する場合、結果はデー​​タ到着率に関係なく同じになります。

于 2016-01-04T18:08:56.017 に答える