大量のイベントデータをリアルタイムで処理する必要があるシステムでは、ストリーム処理を活用することが一般的です。例えば、ユーザーのクリック行動を追跡してリアルタイムで分析したり、金融取引の不正検知を行ったりする場合、従来のバッチ処理では処理の遅延が発生してしまいます。このような状況で、ストリーム処理の設計パターンを理解することは非常に重要です。基本的にはデータエンジニアが専門で対応する分野ではありますが、広告クリックシステムの設計などで活用されることがあるため、システムデザイン面接で設計パターンの候補として知っておくのは大切です。
ストリーム処理とバッチ処理の違い
バッチ処理は、蓄積されたデータを一定の間隔で一括処理する手法です。一方、ストリーム処理は、データが生成されるとほぼリアルタイムで連続的に処理する手法です。