バッチ処理とは

バッチ処理は、大量の反復なデータジョブを実行する方法です。コンピューティングリソースが利用可能なときにデータを処理でき、ユーザー操作をほとんど/まったく伴いません。

バッチ処理では、ユーザーはデータを収集して保存し、「バッチウィンドウ」と呼ばれるイベント中にデータを処理します。処理の優先順位を設定し、最も理にかなったタイミングでデータジョブを完了することにより、効率が向上します。

The Definitive Guide to Data Integrationをダウンロードする
詳細

バッチ処理の方法は、世界初のタビュレーティングマシンを作成した米国の発明家ハーマン・ホレリスによって19世紀に初めて使用されました。現代のコンピューターの前身となったこの装置は、パンチカードに記録されたデータを集計・分類できました。カードの収集とカードに含まれていた情報の処理は一括して行われました。この技術革新により、大量のデータを手動で入力するよりも迅速かつ正確に処理できるようになりました。

バッチ処理の基本

企業や組織が大量のデータを効率的に管理するうえで、バッチ処理は重要な役割を果たします。特に、会計プロセスなどの頻繁に発生する繰り返しの多いタスクの処理に適しています。あらゆる業界や仕事においても、バッチ処理の基本は同じです。重要なパラメーターは次のとおりです。

  1. ジョブを送信するユーザー
  2. 実行されるプログラム
  3. 入力と出力の場所
  4. ジョブを実行すべき時刻

つまり、「誰が、何を、どこで、何のために」実行するのか、です。

例 — 財務データのバッチ処理

多くの企業が請求処理の自動化を目的にバッチ処理を用いています。

銀行口座履歴にクレジットカード取引が表示されるのは、買い物をした数日後です。このトランザクションは、買い物の後しばらくしてからバッチ処理された可能性があります。

また、ある卸売企業は月に一度顧客に請求し、従業員には2週間ごとに給与を支払います。この月1回の請求サイクルも2週間に1度の給与サイクルも、バッチ処理が行われている例です。

メリット

バッチ処理が一般的になったのは、企業のデータ管理にとって多くの利点があるためです。企業にもたらされるバッチ処理のメリットには、次のようなものがあります。

効率化

バッチ処理を用いることで、コンピューティングリソースやその他リソースが利用可能になったタイミングでジョブを処理できます。企業は、期限のあるジョブを優先し、緊急ではないジョブについてはバッチプロセスを設定します。さらに、バッチシステムをオフラインで実行して、プロセッサーへの負担を最小限に抑えることができます。

The Definitive Guide to Data Qualityをダウンロードする
詳細

簡素化

ストリーム処理と比較すると、バッチ処理はデータ入力のために特別なハードウェアやシステムサポートを必要としない、複雑ではないシステムです。 一度確立されたバッチ処理システムでは、必要な保守作業はストリーム処理よりも少なくて済みます。

データクオリティの向上

バッチ処理では、処理ジョブの大部分またはすべてのコンポーネントが自動化され、ユーザーとのやり取りが最小限に抑えられるため、エラーの可能性は低くなります。精度と正確さが向上し、データクオリティがさらに高まります。

ビジネスインテリジェンスの加速

バッチ処理により、企業は大量のデータを迅速に処理できます。多くのレコードを一度に処理できるため、処理時間は短縮され、タイムリーな対応に必要なデータが提供されます。また、複数のジョブを同時に処理できるため、ビジネスインテリジェンスがかつてないほど迅速に利用可能になります。

お客様事例

Affinity Water社 — 顧客数は数百万件、使用される水は数十億リットル

英国最大の水道会社であるAffinity Water社は、自動システムを使用して、1日に9億リットル以上の水を使用する360万件の顧客のメーターを読み取っています。水道インフラの管理が複雑であること、顧客基盤が巨大であること、そして幅広いサービスを提供していることから、同社は膨大な量のデータを処理する最も効率的で効果的な戦略を見つける必要がありました。

バッチ処理を導入したAffinity Water社は、重要なリソースを他のデータ処理ジョブから不必要に流用することなく、検針や請求などの処理が迅速かつ正確に行われるようにコンピューティングプロセスの優先順位を決定できるようになりました。

Almerys社 — 医療分野におけるバッチ処理

Almerys社は、医療費請求で生成される膨大な量のデータを処理する際にバッチ処理を活用しています。同社が採用しているカスタマイズされた戦略は、一部のジョブにはバッチ処理を、それ以外のジョブにはストリーム処理を使用するというものです。その結果、毎日100万件を超えるサードパーティトランザクションをペーパーレスで管理できています。

データのジレンマ:バッチ処理とストリーム処理のどちらにすべきか

最適なデータの処理方法は1つだけとは限りません。重要なのは、その会社、データ、状況に最も適したソリューションを見つけることです。最も費用対効果の高いジョブ管理の方法がバッチ処理である場合もあれば、ストリーミングデータへのアクセスが不可欠な場合もあります。多くの企業が両方の方法を使用しています。

バッチ処理は大量の非連続データを処理します。データを迅速に処理し、ユーザーとのやり取りの必要性を抑制/排除し、ジョブ処理を効率化できます。バッチ処理が適しているのは、データベースの更新管理、トランザクション処理、ファイルのフォーマット変換などです。

ストリーム処理は連続データに適しており、リアルタイムでデータにアクセスする必要のあるシステムやプロセスに効果的です。即時性が重要なプロセスの場合はストリーム処理が最適な選択肢となります。たとえば、サイバーセキュリティ企業や、医療機器などのコネクテッドデバイスを扱う企業は、リアルタイムデータを配信するためにストリーム処理を使用しています。

場合によっては、同じ会社が期限のあるデータタスクにはストリーム処理を使用し、他の処理にはバッチ処理を使用することがあります。たとえば、ウェアラブル医療デバイスを販売するヘルスケア企業がデバイスからのデータの収集と監視にストリーム処理を使用していても、顧客への請求サイクルの管理にはバッチ処理の費用対効果の方が高い可能性があります。

https://youtube.com/embed/tnhdwTFg064

バッチ処理とクラウド

バッチ処理は進化し続けています。クラウドテクノロジーが登場し、さまざまな種類のプログラムのデータをシームレスにマージおよび統合してリモートに保存できるようになったことで、あらゆる種類の処理方法に革命がもたらされました。バッチ処理における最も重要な変更点は、データをオンサイトの場所から、世界中の複数の場所にデータウェアハウスデータレイクを格納できる分散システムへの移行です。

クラウドネイティブのテクノロジーとストレージの台頭によって変化がもたらされましたが、バッチ処理が便利であることに変わりはありません。実際、データを移動および変換するための一般的なETL(抽出、ロード、変換)プロセスは、それ自体が一種のバッチ処理です。他の方法も登場していますが、バッチ処理が無くなることは当分ありません。

バッチ処理の今後に備える

企業は、これまで以上に多様で複雑なデータセットへの対処を迫られています。つまり、バッチ処理だけでデータを管理することはできなくなりました。現在大半の企業は、競争力を維持するためにさまざまな処理方法を用いています。

Talend Data Management Platformは、企業が常に最適なツールをデータ処理に利用できるようにするための、多様なデータ処理ツールと機能を提供します。Talendは、ますます複雑化するデータ統合、ビッグデータ処理、データアナリティクスのニーズに対応する企業を支援します。

あらゆる状況に対応できるよう、備えが必要です。Talend Data Management Platformの無償トライアル版をダウンロードして、データの未来図をご確認ください。