本文へスキップ

ストリーム処理とは?

すとりーむしょり

ストリーム処理とは、データを生成・受信した瞬間に連続的・リアルタイムで処理する計算手法のことです。

ストリーム処理とは、データを一括で蓄積してから処理する「バッチ処理」とは対照的に、データが到着した瞬間に逐次・継続的に処理していく計算パラダイムです。センサー、ログ、金融取引SNSの投稿など、絶え間なく発生するデータを「川の流れ(ストリーム)」のように扱うことが特徴です。

仕組みとしては、データソースからメッセージキュー(Apache KafkaやAmazon Kinesisなど)を経由してストリーム処理エンジンに送り込まれ、フィルタリング・集計・変換などの演算がほぼ遅延なく実行されます。代表的な処理エンジンにはApache Flink、Apache Spark Streaming、Google Cloud Dataflowなどがあります。

ストリーム処理が活躍する主な場面は次のとおりです。

  • 不正検知:クレジットカード決済の異常をリアルタイムで察知
  • 監視・アラート:サーバーのCPU使用率やエラー率の即時通知
  • レコメンド:ユーザーの直近の行動に基づいたリアルタイム提案
  • IoT:製造ラインのセンサーデータを即時分析して異常を検出

バッチ処理と比較したときの意義は「鮮度」にあります。数時間後に結果が出るバッチ処理では対応が遅れる場面でも、ストリーム処理なら数ミリ秒〜数秒以内に結果を得られます。一方でデータの順序保証や「一度だけ処理する」保証(exactly-once semantics)の実装が複雑になるため、設計上の難易度はバッチ処理より高い傾向があります。

使い方・例文

ECサイトで購入ボタンが押された瞬間に在庫を減算し、同時に不正アクセス検知ロジックを走らせる仕組みは、ストリーム処理の典型的な応用例です。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語