【すとりーむしょり】
ストリーム処理 とは?
💡 流れるデータを「リアルタイム」に処理し続ける
📌 このページのポイント
- データが到着するたびに即座に処理(低遅延)
- Apache Kafka Streams、Apache Flink、Spark Streamingが代表的
- ウィンドウ処理(一定時間や件数ごとの集計)が重要な概念
- バッチ処理との組み合わせ(Lambda/Kappaアーキテクチャ)
バッチ処理と何が違うの?
ウィンドウ処理って何?
流れるデータを一定の区間で区切って集計する概念。①タンブリングウィンドウ(5分ごとに区切る、重複なし)、②スライディングウィンドウ(過去5分を1分ごとにずらして集計)、③セッションウィンドウ(ユーザーの操作が途切れるまでを1セッションとして集計)。リアルタイムの「直近5分間のアクセス数」はスライディングウィンドウだよ
どんなツールがある?
①Apache Flink(最も高機能、大規模ストリーム処理のデファクト)、②Kafka Streams(Kafkaに統合、軽量でJavaライブラリとして使える)、③Apache Spark Structured Streaming(バッチとストリームの統一API)、④AWS Kinesis(マネージド)、⑤Materialize(SQLでストリーム処理)。要件に応じて選択しよう
導入の注意点は?
まとめ:ざっくりこれだけ覚えればOK!
「ストリーム処理」って出てきたら「流れるデータをリアルタイムに処理する方式」と思えればだいたいOK!
📖 おまけ:英語の意味
「Stream Processing」 = ストリーム(流れ)処理
💬 Stream(流れ)のようにデータが途切れなく流れてくるのをリアルタイムに処理するよ