EAI/ETL技術者のブログ

  • バッチ処理とは
2019.07.18

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

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

こんにちは!
データ連携製品の技術担当をしている中村です。

今回は
「バッチ処理を開発する際によくある課題」と「バッチ処理を開発するベストな手法とは?」
についてまとめてみました!

バッチ処理の基礎については、別の記事にて考察していますので、ぜひこちらもあわせてご覧ください。
(→記事を見る「バッチ処理の基礎-リアルタイム処理との違いにも迫る!」)

「2025年の崖」問題で、多くの企業がDX(デジタル・トランスフォーメーション)に乗り出そうとする中、注目を集めるレガシーシステムのマイグレーションやモダナイゼーション。

レガシーシステムの中には、多くのバッチ処理が残されています。

レガシーマイグレーションやモダナイゼーションの鍵を握ると言っても過言ではない「バッチ処理」を開発する際の課題をあらためて整理し、その解決策について考察してみたいと思います。

どうぞお付き合いくだい!


バッチ処理を開発する時によくある課題

日々お客様とお話する中で、バッチ処理にまつわる次のような問題をよく耳にします。

  • バッチ処理の開発生産性が想定よりも低く、納期までに開発が間に合わない…
  • バッチ処理のテストフェーズで不具合が多く確認され、対応に時間が掛かっている…
  • バッチ処理の処理性能が想定よりも低く、チューニングが大変だ...

バッチ処理開発に携わる方なら一度は直面したことがあるのではないでしょうか?
このような問題はシステムのカットオーバー時期を遅らせてしまい、
結果的に開発費用の増加させてしまったりと、影響範囲がとても大きいですよね。

そこで、この問題が発生する原因を解明しようとお客様にヒアリングをしてみたところ
下記のような具体的な原因が挙がってきました。

原因1:
開発生産性が開発者のスキルに大きく依存している

原因2:
開発者のスキルによって開発された資産の品質がばらばら

原因3:
開発した資産を開発者しか理解できず、チェック作業で抜け漏れが発生している

原因4:
既存資産がブラックボックス化しており、改修作業時に改修箇所の特定に時間が掛かる

そうです。共通するのは「開発者」に依存しているということ!

つまり、問題解決のためには、バッチ処理の開発を属人化させないことが鍵になることがわかります。

属人化をさせないためには
「バッチ処理の開発手法を選択する際に正しい選択ができているかどうか?」
がポイントになります。

バッチ処理の開発手法にどんなものがあって、何を選択するのがベストなのか、続いて整理してみましょう。


バッチ処理の開発手法

別記事「ETL/EAIツールでデータ連携処理を構築するベストプラクティスとは?
でも触れていますが、開発を行う際の手法は大きく2つに分類されます。

1)プログラミング言語を利用したスクラッチ開発
・C言語
・Java
・PL/SQL など

2)データ連携、加工機能を保有するETLツールを利用した開発

この2つの手法を先ほどの開発者の属人性の観点で比較してみます。


1)スクラッチ開発
制限事項はほとんどなく、自由に開発できる反面、開発者のスキルが開発生産性や品質に直結する

 >>開発者の属人性「大」


2)ETLツール
ツールの機能や仕様によって制限が掛けられる反面、その制限によって、開発者毎の差異が出にくい
※ツールベンダーから設計思想のナレッジ共有も有るため、開発規約が明確にしやすい

 >>開発者の属人性「小~中」


属人性の観点からいうと、ETLツールに分がありそうですね。

では、その他の観点だとどのようなことがいえるでしょうか。


1.スクラッチ開発
メリット デメリット
・ツールの導入/保守コストが掛からない
・プログラミング言語さえ理解していれば、開発できる 
・自由度が高い為、開発規約を明確にして開発しないと開発した
内容がわかりづらくなりやすく、ブラックボックス化しやすい
・プログラミング言語を理解しているメンバーが少ない場合、
開発作業の負荷が偏ってしまう
2.ETLツール
メリット デメリット
・GUIの専用ツールで開発できる為、
プログラミング言語等の開発スキルが無くても開発できる
・GUIで開発できる為、開発生産性は高い
・データベース等のデータ連携はツール側が提供
する標準機能でカバーでき、考慮が不要となる
・ツールの導入/保守コストが継続的に掛かる
・ツールの仕様や制約によって、実装できない処理が発生することもある

ここで挙げたように、スクラッチ開発にももちろんメリットはあります。
しかし、属人化が及ぼす影響を考えると、ツールの利用をオススメせざるを得ません。

ソフトウェアを長年提供する立場だからこそ、
お客様にツールを使うことのメリットや効率化をお伝えし、
お客様の業務が少しでも改善されたら私はそれで満足なのです!!

ちょっとアツくなりすぎましたが(笑)
バッチ処理をETLツールで開発することのメリット、
弊社で扱うETLツール「DMExpress」の費用対効果について資料としてまとめましたので、
最後にご紹介します。

本資料では、設計、開発、テストフェーズ毎にスクラッチ開発時の課題に対して、
ETLツールの適用メリット、また、弊社のお客様の事例をまとめて
いますので、ご参考にしていただけると嬉しいです!


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

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





執筆者情報:

執筆者 中村遼平

中村 遼平 (なかむら りょうへい)
東日本技術本部 情報基盤技術統括部

2008年株式会社アシストに入社。
入社以来、ETL、EAI製品の担当部署に配属し現在「DMExpress」「DataSpider」の
技術担当として活動中。

関連している記事

  • バッチ処理とは
2021.03.30

データベース負荷軽減の実践事例-DMExpressができること

データベースの負荷軽減を実現し、高い成果を出されている2社のお客様事例をご紹介しています。

  • バッチ処理とは
2020.05.28

2025年の崖とバッチ処理との関係

DXの課題となる「レガシーマイグレーション」。バッチ処理のかたまりともいえるレガシーシステムを性能を担保しながらマイグレーションするにはどうしたらよいでしょう?

  • バッチ処理とは
2019.11.18

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

レガシーシステムからのDXなど、再び注目を浴びる「バッチ処理」の基礎について解説します。バッチ処理とリアルタイム処理の違いについても考察しています!

DataSpider DMExpress(DMX)

ページの先頭へ戻る