|
【目次】
▶バッチ処理とは?
▶バッチ処理とリアルタイム処理の違い
▶バッチ処理の基礎 まとめ
今回は、バッチ処理とは?から、反対語として位置づけられるリアルタイム処理との違いまで、
バッチ処理の理解を深めるための基礎知識について触れてみたいと思います!
バッチ処理とは、データをほしい結果に「まとめて処理」すること。
一言であらわすと、これに尽きます!(キリっ!)
Wikipedia(※)の解説文も、参考までに見てみましょう。
なんとなくはわかる気がしますが、少し理解に時間がかかる気がしますね…
「バッチ処理とは、データをほしい結果に「まとめて処理」すること」
と前述しましたが、ここで言うところの「処理」とは、「データ操作を行う」処理のことを意味しています。
データ操作を行う、とは具体的には下記のようなことです。
・複数のデータをキーで結合
・明細データの合計値を計算
・単純に「A」という文字を「B」という文字に変換
・「1」という値があったら「A」というデータに変換
・入力の項目と出力の項目を自動で関連づけ
|
|
|
このように
「データを一括で加工して、ほしい結果にする一連の行為」
これが「バッチ処理」なわけです。
「??」
ここで疑問がでてきたあなた!とてもするどいです!
Wikipediaの定義をよくみると、バッチ処理の反対語に「リアルタイム処理」とあります。
「データを一括で加工して、ほしい結果にする一連の行為」
これがバッチ処理の定義だとすると、
システム間でデータを加工しながら受け渡しをする処理はリアルタイムでもできてしまいます。
となると...リアルタイム処理もバッチ処理に入ってしまうのか..!?
こんなことを書いていると、
「バッチ処理は大量のデータを扱うからリアルタイムではない?」
とか
「リアルタイム処理は即時実行だからバッチではないでしょ?」
とか
こんな声が聞こえてきそうです。
真相をお伝えしますと
リアルタイムで実行されるプログラムも、実はバッチ処理です!
すでに書いたように
「データを欲しい結果にまとめて出す行為」
このことをバッチ処理と定義するならば
リアルタイム処理で受け渡すプログラムもバッチ処理です。
もう、頭の中がぐるぐるしている..
混乱してきた..
という方も、もう少しお付き合いください。
ここから、
「バッチ処理」と「リアルタイム処理」の切り分け
をしていきたいと思います。
「バッチ処理」と「リアルタイム処理」との大きな違いのポイントは2つあります。
1.プログラムが実行される起点
2.プログラムの実行間隔の違い
この2つのポイントについてそれぞれ説明していきます。
■リアルタイム処理
「処理対象のデータに対して何かしらのイベントが発生したら自動で処理する」
など、イベントを起点としてバッチ処理を動かす行為
■バッチ処理
「ある決められたタイミングで定期的に処理する」
など、バッチ処理が起動される行為
■リアルタイム処理
「数秒~数分」レベルの短いタイミングで定期的にプログラムを実行する場合
■バッチ処理
「1日に1回」「1か月に1回」「1年に1回」というように実行間隔が長く開き
定期的にプログラムを実行する場合
バッチ処理とリアルタイム処理の違いについて上記のように解説しました。
ただ、実際は杓子定規でその違いについて考えることはできません。
今回の切り分けの中で、バッチ処理は「ある決められたタイミングなど定期的」に実行されるものと記載しましたが、
数秒に1回、数分に1回実行される場合、時間軸で考えるとリアルタイムにデータを操作しているので、
この処理を「リアルタイム処理」とすることもあります。
|
私もお客様と会話する中で
「バッチ処理とリアルタイム処理の軸は本当にさまざまだ!」
と日々感じている身です。
もし新しい切り分け方法がありましたら、コバヤシにも教えてくださいませ。
バッチ処理の基礎知識についてまとめますと、ポイントは3つあります。
簡単ではありますが、バッチ処理の考え方と処理イメージについて解説してみました。
(※出典:Wikipedia「バッチ処理」 )
小林 良平(Ryohei Kobayashi) |
|