このユニットの結論
夜間処理(一括処理、バッチ)は、その日のデータがそろったあとで、たまったデータをまとめて処理し、翌朝の業務に間に合わせる仕組みです。
夜間処理を設計するときは、「いつ始められ、いつまでに終わっていなければならないか」という時間の枠と、「失敗したら翌朝の業務はどうなるか」をセットで決めます。
1. 何の話か
このユニットは、まとめて処理する連携の話です。
朝に分析の画面を開くと、前日までの実績が集計されている。こうした「朝には前日分がそろっている」状態の裏では、多くの場合、夜の間に一括処理が動いています。
2. なぜ必要か
夜間処理の設計があいまいだと、
- 朝になっても前日分がそろっておらず、業務の担当が古いデータで判断してしまう
- 処理が途中で止まったことに、誰も気づかない
- やり直すとき、どこから始めればよいか分からない
ということが起きます。夜間処理は目に見えないため、失敗に気づかれにくいのです。
3. このユニットで分かること
- 一括処理とは何か、なぜ夜にまとめるのか
- 夜間処理の「時間の枠」の考え方
- 失敗したときに決めておくこと
- 夜間処理で、AIに任せてよいことと人間が決めること
4. 一括処理とは何か
一括処理は、データが生まれるたびに渡すのではなく、決めた時刻に、たまったデータをまとめて処理する方法です。その場でやり取りする API(07-02)と対になる方法です。
夜にまとめる理由には、一般的に次のようなものがあります。
- その日のデータがそろってから処理したい:1日の入力が終わってから、まとめて集計・受け渡しをする
- 日中の業務とぶつけたくない:大量のデータを扱う処理を、利用者が画面を使う時間帯から外す
- 順番が決まっている:あるデータがそろわないと、次の処理が始められない
- 相手のシステムの受け取り時刻が決まっている:相手が決まった時刻にまとめて受け取る作りになっている
5. 時間の枠
夜間処理には、「この時刻より前には始められない」と「この時刻までには終わっていなければならない」の2つの境目があります。
| 境目 | 何で決まるか(一般的な説明) |
|---|---|
| 始められる時刻 | 日中の入力の締め、元になるデータの到着、前の処理の終わり |
| 終わっていなければならない時刻 | 翌朝、そのデータを使う業務が始まる時刻、相手のシステムが受け取る時刻 |
この2つの間が、夜間処理に使える枠です。枠の中に、どの処理を、どの順番で置くかを決めます。処理が増えたり、データが増えたりすると、枠に収まらなくなることがあります。そのため、稼働の直後だけでなく、データが増えた先の量でも収まるかを、テストで確かめておきます。枠と、枠を守れなかったときの扱いは、非機能要件(REQ-003)として決めておきます。
CASE FACTFROZEN正本に記載されたアステリア案件の事実
アステリア案件に関係する記載
- 約36本のシステム連携。正本で個別に定義されているのは IF-01〜IF-12
- IF-08 新基幹 → BI、IF-09 FIN-CORE → BI
- SYS-06 システム連携基盤、SYS-11 監視・ログ基盤。IF-12 連携基盤 → 監視・ログ
アステリア案件のどの連携が夜間の一括処理で動くか、処理の時刻・順番・時間の枠は、正本に記載がありません。未確定 分析の連携(IF-08・IF-09)も、方式やタイミングは正本に記載がありません。このユニットの例は教材上の例です。
6. 失敗したときに決めておくこと
人が見ていない時間に動くので、失敗したときの扱いを作る段階で決めておきます。
- 1件の誤りで全体を止めるか:誤った1件を除いて残りを進めるか、全体を止めるか。データの性質で決める
- どこから再開できるか:最初からやり直すのか、止まったところから続けるのか。二重に処理されないか(07-05)
- 誰が、どうやって気づくか:失敗を知らせる仕組みと、知らせる先(OPS-002)
- 誰が、何をするか:知らせを受けた人が最初にすること(OPS-003)
7. 翌朝の業務への影響
夜間処理が失敗すると、影響は翌朝、業務の側に出ます。これも事前に決めておきます。
- どの業務が、その処理の結果を使っているか
- 前日分がそろっていないことを、業務の担当がどうやって知るか(画面に「最終更新」の日時を出す、連絡する など)
- 前日分がそろっていないとき、業務を始めてよいか、待つか、別の方法で進めるか。誰が決めるか
「朝のデータは必ずそろっている」という前提で業務を組むと、そろわなかった日に、古いデータのまま判断が進んでしまいます。
8. THINK — 1件の誤りで全部止めるか
(教材上の例)社員の所属の変更を、夜間にまとめて別のシステムへ渡す処理を設計しています。担当者から次の提案がありました。
「1件でもおかしなデータがあったら、安全のために全体を止めて、朝に人が確かめてから流し直すことにしましょう。」
問題
この決め方でよいでしょうか。
判断例を開く
判断
データの性質と、翌朝の業務への影響を確かめてから決めます。
確認すること:
- 1件を除いて残りを進めても、業務上おかしなことにならないか(その1件がほかのデータの前提になっていないか)
- 全体を止めたとき、翌朝どの業務が、どれだけ困るか
- 除いた1件を、誰がいつ直し、どうやって流し直すか
- 除いたこと・止めたことを、誰がどうやって知るか
「全部止める」も「1件だけ除く」も、それぞれに困ることがあります。処理ごとに、どちらにするかと、その後の扱いを決めて記録します。
9. よくある失敗
- 失敗を知らせる仕組みがなく、朝に利用者が気づく
- 再開のしかたを決めておらず、最初からやり直して二重になる
- データが増えた先の量で、枠に収まるかを確かめていない
10. 成果物との接続
- ARC-004 システム連携一覧:どの連携が夜間の一括処理で動くかと、その時刻を書く
- REQ-003 非機能要件一覧:夜間処理の枠と、守れなかったときの扱いを要件として決める
- OPS-002 監視・アラート一覧:夜間処理の失敗を、誰にどう知らせるかを決める
- OPS-003 運用手順書:知らせを受けた人が行う手順を書く
11. AI WORKFLOW — 夜間処理の決めごとの抜けを探させる
指示例:
「次の夜間処理の一覧について、処理ごとに、①始められる条件、②終わっていなければならない時刻、③失敗したときに全体を止めるか一部を除くか、④再開のしかた、⑤知らせる先、⑥結果を使う業務、のうち記載がない項目を挙げてください。空欄を推測で埋めないでください。」
REVIEW — AIの結果を確認する
- AIが、時刻や再開のしかたを一般的な例で埋めていないか
- 「結果を使う業務」を、業務の担当に確かめたか
- 別の設計書で決まっている項目を、空欄としていないか
人間が判断すること
- 処理ごとに、失敗したとき全体を止めるか、一部を除いて進めるか
- 前日分がそろっていない朝に、業務を始めるか待つか。その判断をする人
- 夜間処理の枠を守れないとき、処理を見直すか、枠を見直すか
判断演習
(教材上の例)前日の実績を集計し、朝に分析の画面で見せる夜間処理があります。この処理が失敗した日に、分析の画面を使う人が「今日のデータは前日分がそろっていない」とすぐに分かるようにしたいと考えています。
どんな仕組みや決めごとが必要か、2つ以上挙げてください。
あなたの記録あなたの考え。事実ではありません
判断ノート
このユニットで覚えてほしいこと
夜間処理は、始められる時刻と終わっていなければならない時刻の間の枠で動く、目に見えない連携です。
失敗したときに、誰がどう気づき、どこから再開し、翌朝の業務をどうするかを、作る段階で決めておきます。