■バッチ処理とは
一定期間に一定量のデータをまとめて一括処理すること
■書こうと思ったきっかけ
★とある日の会話★
機械:バッチがアベンド(異常終了)しました
Aさん:バッチがアベンドしたぞ!こんな夜遅い時間に最悪だ.... なんのバッチだ?
Bさん:売上のバッチでこけたみたいです....
私:???
Aさん:重要なバッチでアベンドしたな。
Bさん:原因を調査します!
Aさん:お客様に影響があったら大変だ!
Bさん:承知しました。私さん一緒にどのデータがうまく処理されなかったか原因調査してくれ!
私:!?!?
バッチについて無頓着であった私は何も力になれず...
これを機に簡単にバッチについて調べようと思い、
また、知識定着のためにもこの場をお借りしてスライドを作ろう思いました
■あのとき何が起きていたのか?
<言語化>
お店から売上依頼の命令がされて、バッチが起動したがデータ3がうまく処理されずにアベンドしてしまいエラーを検知した
■バッチについて深堀
・バッチ処理とは・・・一定期間に一定量のデータをまとめて一括処理する処理のこと
・バッチの処理時間・・・基本的に長め
・バッチの起動時間・・・毎時・日時・夜間等々
・バッチの種類・・・オフラインバッチ・オンラインバッチ
・オフラインバッチ・・・システムから切り離されたバッチ
・オンラインバッチ・・・システムと繋がっており、特定の時間にデータの処理をにしている
■バッチのメリット
・好きな時間に処理が可能
・大量データの処理が可能(限界あり)
・入力ミスのような人的ミスがない
・複雑な処理を任せられる
■バッチのデメリット
・大量データによる処理の遅延
・中身の仕組みが理解しにくいブラックボックス化
・アベンドしたときの対応・原因調査の難しさ
・現代はリアルタイムが当たり前の考え方が浸透している
■あのときの深堀
<言語化>
お店から売上依頼の命令がされて、機械が自動的に21時にオンラインバッチを起動させた。
しかし、データ3がうまく処理されずにアベンドしてしまいエラーを検知、原因調査を行うもバッチの仕組みが理解しずらく影響調査に時間が掛かってしまったが原因は異常データによるものと判明し、データ3を除きバッチを再実行し成功した。
これによるお客様の影響はないと判明し対応は終了した。再発防止策や今後の対応について検討した。
■まとめ
現代はリアルタイムが当たり前の時代となり、私も当たり前の感覚を持ってしまった。
そのため、バッチのような処理は無頓着となってしまっていた。
今回起きたバッチの異常終了の原因は異常なデータによるものだった。
影響調査の中で難しいと感じたのは、データ1と2は正常にうまく処理されているのか?
それともデータ3だけ処理されなかったのか?データ4があった場合は処理がされるのか?等
バッチの仕組みを理解するのが難しい感じた。
また、もしこれが数百万単位のデータであったら処理ができるのかなどバッチ処理は調べれば調べるほど奥が深いと感じた。