こんにちは!なししです。
ブログ書くの久しぶりだなぁと思ったら、なんと一年ぶりでした!
(今年も花粉には悩まされています‥)
さて今回は、データ移行のお話をしていきたいと思います。
というのも普段は、設計・開発・保守運用というところを主に担当しているのですが、ありがたいことに大きい規模のデータ移行を任せていただきました。
小規模なデータ移行は行ったことがあったのですが、何十万件あるデータの移行作業は初めてでドキドキの毎日でした。
たくさんの学びがあった中で、今回はデータ移行を行うにあたって大変だったことを中心に共有できればと思います!
ミッション
業務システムのリプレースを行うにあたって、旧システム(外部システム)のデータを新システム(内部システム)にデータ移行するというものでした。
初めて大きなデータ移行に携わる中で「成功するかな。大丈夫かな。不安だな。」っていう気持ちがありつつも、「やってやるぞ!成功させるぞ!」という強い気持ちを持って取り組みました。
データ移行で大変だったこと
不整合データのチェック
旧システムでは不整合になっているデータがわかりづらく、移行テストをしてみたら
「ここデータ不整合でシステムがうまく動かない!画面が表示されない!」
というケースが何件かありました。
旧システムのDBをみることはできなく、データ移行テストをして初めてデータ不整合に気づくという流れだったので気づくのに時間がかかってしまいました。 画面がうまく動かない、表示されないのはアプリケーションバグであるかどうかという切り口で入って調査していたので、その分の時間もかかってしまったというのもあります。
旧システムの画面上からデータ不整合に気づくことはかなり難しく、すごーく注意して画面を遷移しながらそれぞれのデータを見比べる作業をしなければ気付けない、かつデータが何十万件もあるので、旧システムからデータ不整合を見つけるのは時間的にも厳しい状態でした。
新システムにデータを入れてみて、データ不整合になってしまう根本原因を探り、移行したらデータ不整合が発生してしまうデータ一覧を出し、旧システムで修正していくという手順で解決することができました。
データ移行テスト
データ移行テストについては、正直なにが正解だったかまだ答えはみつけてられてないです。
データ移行テストは、何十万件とデータがある中ですべてのデータパターンをチェックすると膨大な時間がかかってしまうというところもあり、完璧なテストをすることは難しかったです。 旧システムの項目1を新システムの項目2に移行した結果をチェックするのは簡単なのですが、項目の値だったり、データが入ってるか入ってないかなどで条件分岐し、データを入れてくというのも多かったので、すべてをチェックするのは残された時間や人力も足りず難しい状況でした。
今回は旧システムの項目と新システムの項目のマッピングが期待通りになっているかということを確認すること、またここが移行できてなかったら業務が止まってしまう!というところをメインに目視チェックをしデータ移行が期待通りに行われているかというのを確認しました。
CSVで出力することにより改行後が1行とみなされる
移行方法として、旧システムからCSVデータをエクスポートしてそれを私たちが普段から使ってるETLツールを使って移行作業を行ったのですが、改行が含まれていると改行後の文字列が1行としてみなされてしまうので、移行処理がうまくいかないということがありました。
これについては、時間を作って調べれば解決できたかも‥と思うことではあるのですがそれよりも優先することが山のようにあったので、エクスポートしたCSVをエクセルにすることでなんとか乗り越えました。 エクセルにすることによって、文字コードを変換するという作業も発生したのですが、特殊文字が入ってる項目がそんなに多くなかったこともあり別途移行処理を追加することで解決しました。
まとめ
今回は大きいデータ移行を経験して、大変だったこと3つあげてみました。
大変の裏側には得るものも多く、貴重な経験ができて本当によかったです。
予定通り新システムはリリースでき、リリース後業務が止まってしまうようなデータ不備もなく大成功に終わりました!
(残念ながら軽いデータ不備は何件かありました‥が、すぐ対応しました)
リリース当日は寝坊してデータ移行が失敗する夢を見てヒヤヒヤしましたが、無事終えられてよかったです!
今後またデータ移行に携わることがあれば、今回の経験を生かして頑張りたいと思います!
\\『真のユーザーファーストでマーケットを創造する』仲間を募集中です!! //