ストリーム処理とバッチ処理とは?一言でいうと
ストリーム処理とは、センサなどから絶え間なく届くデータを、ためきる前に届いた順に処理して、すぐに結果を出す方式です。バッチ処理とは、一定の期間や量のデータをためてから、まとめて一度に処理する方式です。
たとえば工場の設備なら、「振動の値がしきい値を超えたら数秒以内に知らせる」のがストリーム処理、「1か月分の稼働データから設備ごとの稼働率を集計する」のがバッチ処理です。
ストリーム処理では、終わりのないデータの流れを「直近1分」「直近100件」のようなウィンドウ(時間や件数の窓)で区切って集計します。バッチ処理では、ファイルや期間でデータの範囲がはっきり決まっているので、全体を見渡した計算や、やり直しがしやすいのが特徴です。
遅延・データ量・用途で比べると?
ストリーム処理
- 処理する単位届いたそばから(1件〜ウィンドウ分)
- 結果が出るまで数秒以内など、届いてすぐ
マイクロバッチ
- 処理する単位数秒〜数分ごとの小さなかたまり
- 結果が出るまでストリーム処理よりやや遅い
バッチ処理
- 処理する単位ためたかたまり(期間・ファイル)
- 結果が出るまで区切り(毎時・毎日・毎月)が来てから
マイクロバッチは、小さなかたまりをバッチで次々に処理する中間の方式。
| 観点 | ストリーム処理 | バッチ処理 |
|---|---|---|
| 結果が出るまで | 数秒以内など、届いてすぐ | 区切り(毎時・毎日・毎月)が来てから |
| データの区切り方 | 終わりのない流れを、ウィンドウで区切る | ためたかたまり(期間・ファイル)ごと |
| 一度に扱う量 | 少しずつ(1件〜ウィンドウ分) | 大量(期間分すべて) |
| 向く用途 | 異常の即時検知、監視、アラート、即時の制御 | 定期の集計・レポート、過去データの再計算、モデルの学習 |
| 全体を見た計算 | ウィンドウの外は見えないので苦手 | 期間全体を見渡せるので得意 |
| やり直し(再計算) | 過去のデータを流し直す仕組みが必要 | 同じ入力で処理を再実行しやすい |
| 考えること | 遅れて届いたデータ、順序の入れ替わり、止まらない運用 | 処理が次の区切りまでに終わるか、結果が古くなること |
IoT のデータは Velocity(速度)が大きく、ストリーム処理が欠かせない一方で、長期の傾向や学習にはバッチ処理も必要です。データの特徴の整理はビッグデータの3Vで扱っています。
中間として、数秒〜数分ごとの小さなかたまりをバッチ処理で次々に処理するマイクロバッチという方式もあります。「届いたそばから1件ずつ」ではないため、遅延はストリーム処理よりやや大きくなります。
速報を出した後で、古い時刻のデータが届いたら
センサーが10時04分に計測した値が、回線の混雑で10時07分に届いたとします。発生時刻で5分ごとに集計するなら、この値は10時00分以上10時05分未満の枠です。到着した時刻だけで次の枠へ足すと、何の5分を測っているかが変わります。
Apache Beamのガイドは、イベント時刻で区切る窓、到着見込みを追うウォーターマーク、遅れて来た値の扱いを分けています。速報後の更新、遅着を受け付ける期間、別経路での補正などは目的に合わせます。速さと正確さの違いを、処理方式の名前だけで決めません。
| 学習例の時点 | 値をどう扱うか |
|---|---|
| 10:04に計測 | 発生時刻で集計する場合は最初の窓 |
| 10:05に速報 | 未到着の値がある可能性を残す |
| 10:07に到着 | 採用・再集計・別処理を設定で決める |
古い値の到着と、同じ値を二重に足すことも別です。速報を画面で見る利用者と、確定後の集計を使う利用者がいれば、どちらの数字かを表示で区別してください。
ラムダアーキテクチャはどんな考え方?
ストリーム処理の「速さ」と、バッチ処理の「正確さ・やり直しやすさ」を両立させるための構成が ラムダアーキテクチャ です。Nathan Marz が広めた考え方で、同じデータを2つの経路に流します。
- サービング層バッチ層とスピード層の結果を合わせて、問い合わせに答える答える
- スピード層同じデータをストリーム処理し、バッチ層がまだ処理していない直近の分をすぐに出す速報
- バッチ層データを変更しない記録としてすべてため、定期的に全体を処理して正確な結果を作る確定
速報はスピード層、正確な結果はバッチ層。同じ処理を2つの仕組みで保つ手間が弱点で、ストリームだけで組むのがカッパアーキテクチャ。
- バッチ層:届いたデータを変更しない記録としてすべてため、定期的に全体を処理して正確な結果を作る。
- スピード層:同じデータをストリーム処理し、バッチ層がまだ処理していない直近の分の結果をすぐに作る。
- サービング層:バッチ層とスピード層の結果を合わせて、利用者の問い合わせに答える。
| 観点 | ラムダアーキテクチャ | カッパアーキテクチャ |
|---|---|---|
| 処理の経路 | バッチとストリームの2つ | ストリームの1つ |
| 再計算のしかた | バッチ層で全体を処理し直す | 保存したデータを最初から流し直す |
| 利点 | 速報性と正確さを役割分担できる | 処理の実装が1つで済む |
| 弱点 | 2つの仕組みの保守と、結果をそろえる手間 | 長期間のデータを流し直せるように保存しておく必要がある |
弱点は、同じ処理を2つの仕組みで作り、同じ結果になるよう保ち続ける手間です。Jay Kreps は、2014年7月の記事「Questioning the Lambda Architecture」でこの点を指摘し、ストリーム処理だけで構成し、再計算が必要なときは保存しておいたデータを最初から流し直す構成を提案しました。これが カッパアーキテクチャ と呼ばれます。
IoT中級ではどこで問われる?
IoTシステム技術検定 中級の公式ページに示された出題カテゴリのうち、「IoTデータ活用技術(AI、ビッグデータ分析、活用事例)」25〜30% に当たります(2026年9月27日確認)。
公式テキスト『IoT技術テキスト 第4版』では、第3章「IoTデータ活用技術」に当たる範囲です。章とカテゴリの対応は当サイトの推定で、使っているのは目次の章名だけです。
4択の形としては、当サイトの作問の観点で次のようなものが考えられます(出題の傾向や頻度を示すものではありません)。
- 場面の説明から、ストリーム処理とバッチ処理のどちらが適しているかを選ぶ
- 2つの方式の特徴として適切(不適切)なものを選ぶ
- ラムダアーキテクチャの各層の役割を選ぶ
- 処理の場所(エッジ・クラウド)と処理の方式の組合せを選ぶ
処理の方式と処理の場所は別の軸です。エッジでストリーム処理を行い、クラウドでバッチ処理を行う組合せも一般的です。場所の選び方はエッジ・フォグ・クラウドの違い、送られてくるデータの量や周期の特徴はIoTの通信トラフィックの特性で扱っています。試験の形式はIoTシステム技術検定 中級とはへ。合格基準は公式に非公開です。
取り違えやすい点は?
| つまずき | 正しい整理 | 見分け方 |
|---|---|---|
| ストリーム処理はデータを保存しないと思う | 処理はためきる前に行うが、結果や元データを保存することは多い | 「処理のタイミング」と「保存するか」を分ける |
| バッチ処理は古い方式で不要だと思う | 期間全体を見る集計や学習、再計算ではいまも中心 | 「月次」「全期間」「学習」はバッチ |
| ストリーム処理なら何でも正確に計算できると思う | ウィンドウの外は見えず、遅れて届くデータの扱いも要る | 「全期間を見た計算」はストリームの苦手分野 |
| マイクロバッチをストリーム処理と同じだと思う | 小さなかたまりをバッチで処理する中間の方式 | 「数秒ごとのかたまり」ならマイクロバッチ |
| ラムダのスピード層が正確な最終結果を作ると思う | 正確な結果はバッチ層、直近の速報はスピード層 | 「速報」と「確定」を分けて考える |
確認問題1
ストリーム処理が向く場面は?
次の処理のうち、ストリーム処理が最も適しているものはどれか。
選択肢を準備しています。「正解と解説を見る」は先に開けます。
正解と解説を見る
正解:3。届いたそばから判定し、数秒以内に知らせる必要があるため、ストリーム処理が適しています。
1 は前月分という区切られた期間の集計で、バッチ処理が向きます。2 は長期間のデータ全体を使う学習で、バッチ処理の典型です。4 は年度末に一度行う集計で、すぐに結果が要る処理ではありません。
確認問題2
ラムダアーキテクチャの層の役割は?
ラムダアーキテクチャの各層の説明として、最も適切なものはどれか。
選択肢を準備しています。「正解と解説を見る」は先に開けます。
正解と解説を見る
正解:2。バッチ層はデータを変更しない記録としてため、定期的に全体を処理して正確な結果を作ります。
1 はバッチ層の説明をスピード層にすり替えています。3 のサービング層は、2つの層の結果を合わせて問い合わせに答える層です。4 はスピード層の説明です。
確認問題3
カッパアーキテクチャの説明は?
カッパアーキテクチャの説明として、最も適切なものはどれか。
選択肢を準備しています。「正解と解説を見る」は先に開けます。
正解と解説を見る
正解:1。カッパアーキテクチャは、処理をストリームの経路1つにまとめ、処理を変えて再計算したいときは、保存しておいたデータを最初から流し直します。
2 はバッチ処理だけの構成で、速報性がありません。3 はラムダアーキテクチャの説明です。4 は誤りで、流し直すためにデータを長く保存しておくことが前提になっています。
確認問題のあとは何をすればいい?
迷った問題は、場面の中の「すぐに」「数秒以内」と「前月」「全期間」「学習」のどちらが出てくるかで見直してみてください。遅延の要求がほぼ答えを決めます。
本番と同じ4択で、ほかのカテゴリと混ぜて解くなら、登録不要のIoT中級の無料お試し20問で全問の解説まで確認できます。