ITシステムに関わるエンジニアなら、「バッチ処理」という言葉を聞いたことがある人がほとんどだろう。しかし、バッチ処理とは何かを正確に理解している人は意外に少ない。

 数カ月前、ある週刊誌がみずほ銀行のシステムトラブルの原因を論じたWeb記事で、バッチ処理を「とっくの昔に時代遅れになった手法」と書き、ネットで論争になった。確かにバッチ処理は使われ始めてから長い年数がたつが、現在のシステムでも広く使われている。現場のエンジニアからは「時代遅れという表現には違和感がある」との意見が相次いだ。

 先の記事には「みずほは何らかの理由で(バッチ処理に)こだわっていた」とあった。しかし、みずほだけが特にバッチにこだわっているわけではない。ITベンダー各社は「バッチ処理がないシステムは見たことがない」と異口同音に話す。それくらい現役バリバリでメジャーな手法だ。

データをためて後で一括処理

 そもそもバッチ処理とは何だろうか。一言で表すと「データをためておき、後で一括処理する手法」だ。その一括処理を「バッチ」と呼ぶ。これに対し、新しいデータがシステムに届くたびにすぐ処理する手法が「オンライン処理」だ。

バッチ処理とオンライン処理の違い
バッチ処理とオンライン処理の違い
[画像のクリックで拡大表示]

 実例で考えてみよう。ある人がATMで自分の預金口座に1000円を預け入れたとする。瞬時に口座の残高が1000円増えるはずだ。これがオンライン処理である。

 ATMの預け入れをバッチ処理にしてみるとどうなるか。1日に1回実行されるバッチ(「日次バッチ」と呼ぶ)で処理すると仮定しよう。このバッチは様々な預金者がその1日にATMで行った預け入れや引き出しをまとめて処理するものになるはずだ。バッチ処理は通常は夜間に実行する(「夜間バッチ」と呼ぶ)。このため1000円を預け入れた結果は翌日になってはじめて残高に反映されることになる。

 これでは預金者にとってあまりに不便なので、現在では預け入れの反映にバッチ処理を使うことはない。実際のバッチ処理は、すぐに結果を反映する必要がない場合やデータをまとめて処理するほうが合理的な場合などに使われている。

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。