一定量のデータをためてまとめて一括処理する方式。
バッチ処理とは、データを1件ずつその場で処理するのではなく、一定量・一定期間ぶんのデータをいったんためてから、まとめて一括で処理する方式のことです。「バッチ(batch)」とは英語で「ひとまとめ」という意味です。
身近な例で考えると、コインランドリーの洗濯に似ています。服が出るたびに1枚ずつ洗うのではなく、洗濯カゴ(=キュー、順番待ちの置き場のこと)にたまるまで待ち、ある程度たまったらまとめて一気に洗うほうが効率的です。
上の図解のように、処理は次の3ステップで進みます。
・ためる:データをキューに順番に蓄積する
・一括処理:たまったデータをまとめて計算・集計する
・出力:処理結果を帳票やレポートとして出す
バッチ処理は、即時の応答が不要で、大量のデータをまとめて処理したい場面で広く使われています。代表的な用途には次のようなものがあります。
・銀行の夜間バッチ:1日の取引をまとめて集計し、残高を更新する
・給与計算:全社員の勤怠データから月末にまとめて給与を算出する
・月次・年次の集計:売上や在庫を一定期間ぶんまとめて締める
・大量データのレポート生成:たまったログから報告書を一括で作る
これらに共通するのは、まとめて処理することで効率が良くなる点です。さらに、利用者が少ない夜間など空いている時間帯に処理を回せば、システムの負荷を分散でき、日中の動作を妨げません。
バッチ処理とよく対比されるのがリアルタイム処理です。リアルタイム処理は、要求が来るたびにその場ですぐ処理して応答を返す方式で、銀行ATMやオンライン予約のように「待たせられない」場面で使われます。
両者の違いを整理すると次のようになります。
| 項目 | バッチ処理 | リアルタイム処理 |
|---|---|---|
| 処理のタイミング | たまってからまとめて | 要求のたびに即座に |
| 即時性 | 不要(あとで良い) | 必須(すぐ返す) |
| 得意なこと | 大量データを効率処理 | 1件ずつの即応答 |
| 例 | 夜間バッチ・給与計算 | ATM・予約システム |
つまり、バッチは「即時性が不要なものを効率重視でまとめて処理」、リアルタイムは「要求のたびに即応答」という関係です。どちらが優れているわけではなく、扱う仕事の性質に合わせて使い分けます。
Q1. バッチ処理の説明として最も適切なものはどれか。
Q2. バッチ処理の利用例として適切でないものはどれか。
Q3. バッチ処理を夜間に実行することが多い理由として最も適切なものはどれか。