【システム設計】バッチ処理


処理定義

  • 入力
    DB、CSV、画像、ログファイル、Webサービス

  • 加工
    抽出、削除、加工、集計、マージ

  • 出力
    DB、CSV、メッセージ、Webサービス

起動タイミング

  • トリガー起動
    データの閾値、APIリクエスト

  • 定時起動
    月次、週次、日次

処理方法

  • 処理件数
    バッチ処理が1回起動するごとに対象となる処理件数。

  • 処理時間
    いつ起動するか。
    いつまでに終えなければならないか。
    どのくらい処理時間がかかるか。

  • 回復可能か、リラン設計
    処理が完了した次のデータから処理が再開できる
    再度同じ処理が開始されるが、結果が冪等になる(二重に処理されない)
    失敗したIDを控えることができ、再実行できるコマンドオプションを用意する

  • 多重起動可能か
    多重起動により処理するデータを破壊しかねない場合は、実行をロックできる機構を設ける。

  • バッチの突き抜け対策
    並列実行
    インフラの増強・チューニング
    処理の分割

  • 例外処理
    アラート通知方針
    バッチがエラーとなったときの影響
    リカバリ対応方針
    後続バッチへの影響

ログ

・バッチ処理時刻
・処理内容、処理件数

注意点

・オンライン処理との兼ね合い