とある新人のブラック就労記 その10
20××年11月某日。
本来ならテストが終了し、システム導入についての詰めを行わないといけない段階だが、まだテストが終わっていなかった。
本格的なデスマーチが始まろうとしていた。
「おい! 八九寺! データ移行のテスト、終わってんのかっ!?」
「無茶言わないでっつーの。単体の再テストが終わってないんだから」
「来週データ移行だぞ!? そっちが先だろ!」
「それよりもビル閉まる前にタバコ行きたいんだけど」
「ふざけるな!」
「うわー、鈴木がいじめるー、新人助けて―!」
夜10時の会話である。
特に八九寺さんのマイペースさと鈴木さんの几帳面さが相性最悪で、なにかにつけて怒号が飛び交っていた。
ちなみに八九寺さんは逃げるようにタバコを吸いに行った。
「ったく……仕方ない。新人、データ移行の説明するから、こっちきてくれ」
データ移行。
それは文字通り、現在現場で動いている現行の旧システムから現在開発している新システムへと、データを移行する作業のことだ。
全くシステムを使っていない現場に新しくシステムを導入する場合を除いて、基本的にはシステムを導入する際、データ移行作業というものが発生する。
新システムに必要なデータを登録するのもシステムを提案したIT企業の領分で、客先にデータ提供の協力はしてもらうものの、そのデータを加工し、システムに落とし込み、運用できるようにするまでの作業はほぼ提案したIT企業――つまり新人くんの会社が請け負う。
今回のプロジェクトでは現場で使われている旧システムが新人くんの会社が作ったシステムのため、データの吸出し、仕様の確認、切り替えの立会いについては客先と自社のみであり、構造はシンプルであった。
ただ、旧システムと新システムではデータベースの構造が大きく変わっているため、データベースからデータベースへのデータ移行には何度かデータの変換を挟む必要があった。
「基本的には変換プログラムを自分で作っていくことになる。これから先、何度も作るようになるから、ここで覚えてくれ」
鈴木さんから教えられたデータ移行の作業は、大きくわけて3つの段階があった。
・現行システムのデータベースから必要なデータを選定、出力するプログラムを作る。
・出力したデータを新システム用に加工する。
・新システムのデータベースに登録する。
吸い出すプログラムをわざわざ作成する理由は、新システム導入のその日まで、旧システムが稼働しているため。
つまり、切り替えのその瞬間まで次々と新しいデータが登録されているので、切り替え日より前にデータを用意することができない。
もちろん、なるべく新しいデータを登録しないでください、などのお願いはすることもあるが、それによって業務が回らないのは本末転倒なので、基本的には客先の営業時間――今回の場合は食料品倉庫が閉まる夜8時まで待ち、そこからデータ移行をする必要があった。
「新システム用に加工する方法はいくつかあるんだが、ま、俺はDB(データベース)畑の人間だから、基本はストアドプロシージャを使うかな」
鈴木さん流の旧システムデータ→新システムデータの変換方法を具体的に説明すると――。
・まず、旧システム(現行システム)のデータベースと同じ構造のテーブルを新システムのデータベースに用意する。
・旧システムからデータを吸い出したらそのまま新システムに用意したテーブルに登録する。(Oracleの場合、SQL*LOADERを使用)
・その後、予め作成した移行用ストアドプロシージャを実行し、新システム上にある旧システムのデータを変換しつつ、新システムのテーブルに登録しなおす。
・作業が終了したら新システム上にある変換前データはテーブルごとドロップし、移行用ストアドプロシージャも削除する。
「ということで、移行用プログラムの作成、できるな?」
それは、YES以外の返答ができない質問だった。
ちなみに八九寺さんはタバコに行ったまま帰ってこなかった。