EAI/ETL技術者のブログ

EAI/ETL技術者のブログ>バッチ処理の基礎-リアルタイム処理との違いにも迫る!

  • バッチ処理とは
2019.11.18

バッチ処理の基礎-リアルタイム処理との違いにも迫る!

バッチ処理の基礎-リアルタイム処理との違いにも迫る!

バッチ処理がもっとわかる!コラム集をダウンロード

【目次】
 ▶バッチ処理とは?
 ▶バッチ処理とリアルタイム処理の違い
 ▶バッチ処理の基礎 まとめ


今回は、バッチ処理とは?から、反対語として位置づけられるリアルタイム処理との違いまで、
バッチ処理の理解を深めるための基礎知識について触れてみたいと思います!


バッチ処理とは


バッチ処理とは、データをほしい結果に「まとめて処理」すること。

一言であらわすと、これに尽きます!(キリっ!)

Wikipedia(※)の解説文も、参考までに見てみましょう。

  • コンピュータでプログラム群を処理目的ごとに区切り、この区切り毎に順次実行してゆく処理のこと。
  • ひとつの設備である程度まとまった時間、または単位操作ごとに処理を区切り、原材料をこの区切りごとにまとめて投入する処理のこと。
  • 反対語は対話処理・インタラクティブ処理またはリアルタイム処理

なんとなくはわかる気がしますが、少し理解に時間がかかる気がしますね…


「バッチ処理とは、データをほしい結果に「まとめて処理」すること」
と前述しましたが、ここで言うところの「処理」とは、「データ操作を行う」ことを意味しています。

データ操作を行う、とは具体的には下記のようなことです。
・複数のデータをキーで結合
・明細データの合計値を計算
・単純に「A」という文字を「B」という文字に変換
・「1」という値があったら「A」というデータに変換
・入力の項目と出力の項目を関連づけ

  • 複数のデータをキーで結合イメージ

複数のデータをキーで結合


  • 明細データの合計値を計算イメージ

明細データの合計値を計算


  • 文字変換、データ加工イメージ

文字の変換とデータの加工


このように

「データを一括で加工して、ほしい結果にする行為」

これが「バッチ処理」なわけです。


「??」

ここで疑問がでてきたあなた!とてもするどいです!

Wikipediaの定義をよくみると、バッチ処理の反対語に「リアルタイム処理」とあります。


「データを一括で加工して、ほしい結果にする行為」

これがバッチ処理の定義だとすると、
システム間でデータを加工しながら受け渡しをする処理はリアルタイムでもできてしまいます。

となると...リアルタイム処理もバッチ処理に入ってしまうのか..!?

こんなことを書いていると、

「バッチ処理は大量のデータを扱うからリアルタイムではない?」

とか

「リアルタイム処理は即時実行だからバッチではないでしょ?」

とか

こんな声が聞こえてきそうです。

真相をお伝えしますと

リアルタイムで実行されるプログラムも、実はバッチ処理です!

すでに書いたように
「データを欲しい結果にまとめて出す行為」
このことをバッチ処理と定義するならば
リアルタイム処理で受け渡すプログラムもバッチ処理です。


もう、頭の中がぐるぐるしている..
混乱してきた..

という方も、もう少しお付き合いください。

ここから、
「バッチ処理」と「リアルタイム処理」の切り分け
をしていきたいと思います。

バッチ処理がもっとわかる!コラム集をダウンロード

バッチ処理とリアルタイム処理の特徴と違い


「バッチ処理」と「リアルタイム処理」との大きな違いのポイントは2つあります。

1.プログラムが実行される起点
2.プログラムの実行間隔の違い

この2つのポイントについてそれぞれ説明していきます。

1.プログラムの実行される起点による違い、切り分け


■リアルタイム処理
 「処理対象のデータに対して何かしらのイベントが発生したら」
  など、イベントを起点としてバッチ処理を動かす行為

■バッチ処理
 「ある決められたタイミングで定期的に」
  など、バッチ処理が起動される行為


2.プログラムの実行間隔の違いによる切り分け


■リアルタイム処理
 「数秒~数分」レベルの短いタイミングで定期的にプログラムを実行する場合

■バッチ処理
 「1日に1回」「1か月に1回」「1年に1回」というように実行間隔が長く開き
  定期的にプログラムを実行する場合

バッチ処理とリアルタイム処理の違いについて上記のように解説しました。
ただ、実際は杓子定規でその違いについて考えることはできません。

今回の切り分けの中で、バッチ処理は「ある決められたタイミングなど定期的」に実行されるものと記載しましたが、
数秒に1回、数分に1回実行される場合、時間軸で考えるとリアルタイムにデータを操作しているので、
この処理を「リアルタイム処理」とすることもあります。

バッチ処理とリアルタイム処理の特徴と切り分けイメージ

   バッチ処理とリアルタイム処理の切り分けイメージ

私もお客様と会話する中で
「バッチ処理とリアルタイム処理の軸は本当にさまざまだ!」
と日々感じている身です。

もし新しい切り分け方法がありましたら、コバヤシにも教えてくださいませ。


バッチ処理がもっとわかる!コラム集をダウンロード

バッチ処理の基礎 まとめ


バッチ処理の基礎知識についてまとめますと、ポイントは3つあります。

バッチ処理の基礎、ポイントまとめ

簡単ではありますが、バッチ処理の考え方と処理イメージについて解説してみました。


バッチ処理にまつわるオススメ資料

バッチ処理の開発はスクラッチで上手くいく? ETLツールとの生産性比較と費用対効果を解説

データ連携/バッチ処理の要件で、開発方法を検討する際に役立つ資料です。設計・開発・テストのフェーズに分け、スクラッチとETLツールでの開発生産性を比較。スクラッチ開発による 属人化 や ブラックボックス化が引き起こす様々な課題を、ETLツールで改善するアプローチを解説し、費用対効果をご紹介いたします。



バッチ処理の成功事例をご紹介

NTTコムウェア社によるバッチ処理成功事例

【エヌ・ティ・ティ・コムウェア株式会社】
月間3,000万件の会計明細レコードを加工し連携する管理会計バッチシステムの更改を「製造バグ0件」で実現

AGS社によるバッチ処理成功事例

【AGS株式会社】
メインフレームと同等の処理性能を持つバッチプログラムの開発を短期間で実現!

あわせて読みたい記事

(※出典:Wikipedia「バッチ処理」



執筆者情報

小林 良平(Ryohei Kobayashi)
東日本技術本部 情報基盤技術統括部

1999年アシストに新卒入社以来、販売管理システムの開発/保守業務、ワークフロー製品のプリセールス/フィールドサポートなどを担当。DataSpiderの立ち上げから携わり、現在はデータインテグレーション系製品全般の主管に従事。

執筆者

関連している記事

  • バッチ処理とは
2019.08.07

ETL/バッチ処理のパフォーマンスチューニングを考える

パフォーマンスが低下した時にはどうすればいいの?ETL処理、バッチ処理観点でパフォーマンスチューニングの最適解をご提案します!

  • バッチ処理とは
2019.07.18

バッチ処理の開発時によくある課題と最適なバッチ処理の開発手法についてまとめました

DXの要になる!?バッチ処理の開発時によくある課題を挙げ、最適なバッチ処理の開発手法について考察しています。

DataSpider DMExpress(DMX)

ページの先頭へ戻る