【ばっちしょり】
バッチ処理 とは?
最終更新:
💡 対象をまとめて、ジョブとして処理する
対象のデータや仕事をひとまとまりのジョブとして処理する方式。夜間や大量データに限らない実行方法、分割処理、失敗後の再開と重複防止を解説します。
📌 このページのポイント
- 対象のデータや仕事を、まとまりとして処理する
- 定時実行だけでなく、手動やイベントで開始することもある
- 小分け・順次・並列でも処理でき、全件をメモリに載せるとは限らない
- 再実行では処理済みの範囲と、副作用の重複を確認する
バッチ処理は、夜中に大量のデータを処理すること?
それも一例だけれど、夜間や大量とは限らない。たとえば対象日の売上データを集計し、日次レポートを作る仕事を一つのジョブとして扱う。処理の一件ごとに人が操作する方式とは分けて考えるよ。
決まった時刻にしか開始できない?
手動、スケジュール、ファイル到着などのイベントで開始できる。ジョブをいつ始めるかを決める仕組みと、実際の読込み・計算・出力をする処理は別だ。Spring Batchも、それ自体はスケジューラではないよ。
全データを一気にメモリへ載せる?
一件ずつ読んだり、まとまった単位に分割して処理したりできる。Spring Batchのチャンク処理なら、指定したまとまりごとに読込み・必要な加工・書込みを行い、トランザクションをコミットする。対象が大きくても、全件を同時に保持するとは限らない。
失敗したら、最初からもう一度実行すればいい?
UPSERTなら、必ず重複しない?
もっと詳しく知りたい人へ
オンライン処理は必ずリアルタイム?
利用者の要求に応答するオンライン処理と、一定の時間条件を満たすリアルタイム処理は、同じ区分ではありません。処理を開始する契機、データのまとまり、応答や完了の時間条件を分けて整理します。バッチでも締切や短い実行間隔が必要な場合があります。
.batファイルなら、全部バッチ処理?
Windowsの.batや.cmdはコマンドを記述するスクリプトファイルです。アプリを一つ起動するだけの場合も、データを集計する場合もあります。逆にPythonやJavaなどでもバッチ処理を作れます。ファイルの拡張子だけで処理方式は決まりません。
まとめ:ざっくりこれだけ覚えればOK!
「バッチ処理」って出てきたら「対象をひとまとまりの仕事として処理する方式」と思えばだいたいOK!
📖 おまけ:英語の意味
「Batch Processing」 = まとまりを処理すること
💬 Batchはひとまとまりを意味します。ここではデータや仕事をジョブとして処理する方式を指し、Windowsのコマンドを記述した.batファイルそのものとは区別します。