
システム開発では脚光を浴びない事も多いわりに、実際には非常に重要なタスクに「データ移行」があります。「データ移行」について有益な情報を提供したいと思います。
目次
1.データ移行のイメージ
2.データ移行の流れ
3.データ移行の流れ:計画
4.最後に
1.データ移行のイメージ
まずデータ移行と聞いて皆様はどのようなイメージを持たれるでしょうか。もしかして「データ移行って、右から左にデータ持って行くだけだから簡単」、と思っていませんか。
そんな事はありません。
完全に新規で、なおかつ過去の遺産が無いシステム開発であれば、データ移行という名の初期データ設定くらいなので苦労をしないのですが、システム刷新時に過去システムのデータを移行する場合は一筋縄ではいきません。
まずデータ移行の流れをまとめたいと思います。
2.データ移行の流れ
ここでは旧システムのデータベースにあるデータを新システムのデータベースにデータ移行するケースで考えます。
データ移行を最後の最後で行うのではなくシステム開発と並行して進めることが成功のキーポイントになります。
なぜならばデータ移行は、移行プログラムの作成や新規システムへの影響調査など「事前」に行う作業が多いからです。
実際のデータ移行の流れは以下になります。
No | 大項目 | 中項目 | 小項目 |
1 | 計画 | 移行のスケジュールと体制の明確化 | ・限られた時間の中で並行して複数の作業を実施するためのスケジュールを作成する ・ユーザ(業務担当者)を含む移行の体制と役割分担を定める ・移行のスケジュールと体制、役割分担を関係者に説明し、合意形成する |
2 | 計画 | 移行テスト計画の作成 | ・移行テストの方針と方法を定める ・移行テスト環境の作成方針、システム構成、作成スケジュール等を定める ・移行リハーサルの方法、実施形態、対象、範囲等を定め、移行リハーサル計画を立案する |
3 | 要求整理 方針決定 | 移行の要件と方針の明確化 | ・移行の期間、環境、リソース等の制約条件を明らかにする ・移行作業において問題が発生した場合の方針(連絡体制、中止・既存システムへの切戻し、部分的な稼動等)を明らかにする ・移行作業の実施中に、業務や他のシステムに与える影響やリスクを明らかにし、関係者に説明して合意形成する |
4 | 要求整理 方針決定 | 移行対象の明確化 | ・移行対象(データ)を明らかにする ・移行データ確認やシステム動作等、対象毎の移行結果の検証方法を定める |
5 | 設計 | 移行データ定義 | ・移行データの内容を明らかにし新旧データのマッピングを行う ・旧システムにイレギュラーデータが無いか調査を行う ・イレギュラーデータが無いか確認し、その扱いと修正可能か、をユーザ(業務担当者)と合意形成する ・データのコンバート等、対象毎の移行方法を定める |
6 | 設計 | 移行手順定義 | ・移行作業の手順を明確にする |
7 | 設計 | 移行プログラム設計 | ・イレギュラーデータを加味して移行プログラムのIN/OUTと変換仕様を明確化する ・データ量を加味した移行プログラムのアーキテクチャ検討 |
8 | 開発 | 移行プログラム開発 | ・移行プログラムの開発、もしくはツールの設定を行う |
9 | データ補正 | データ補正 | ・旧システム側のレギュラーデータを補正する事が可能であれば実施する |
10 | テスト | 移行の準備 | ・移行プログラム単体でのテストケースを作成し、テストを実施する ・移行の対象、移行テスト環境、本環境との相違を踏まえたテストデータ、検証項目、テスト用プログラム等を準備する ・ユーザや現場担当者に移行計画を説明し、判断や協力を仰ぐ等の事前準備を行う ・連携するシステムの担当者と調整し、連携箇所の移行・確認作業を計画する ・事前に移行テスト(移行のリハーサル)を計画、実施し、移行計画を改善する |
11 | 移行リハーサルの実施 | ・移行の実施計画に従い、手順を検証する ・切り戻しのポイントと条件、手順を検証する ・移行の所用時間を測り、ボトルネックを確認する ・システムの移行だけでなく、業務の移行も正しく行われることを検証する ・移行に要した時間、発生したトラブル、改善項目を記録し、移行計画を改善する | |
12 | リリース | 移行の実施 | ・移行計画に基づいた作業を実施し、作業状況や発生した課題を随時報告する ・移行データやシステムの動作に対して、移行計画に基づいた検証を行う ・移行計画やタイムスケジュールに基づいた移行を推進する ・問題が発生した際、計画に基づいた作業の中止、切り戻し等の判断や、定められた連絡体制に基づいた連絡と対策の提示を行う ・移行計画に基づき、移行完了を判断する ・引継ぎに必要なドキュメントを作成し、運用担当へ引き渡す |
https://icd.ipa.go.jp/icd/icd/task-dictionary/profref/taskref?p=102
3.データ移行の流れ:計画
まずは「どうやってデータ移行を完遂するか」を計画します。
旧システムからデータ移行をして新システムに移行する場合、ほんどのケースで移行作業時間に時間的な制約があります。 たとえば新システム切替までユーザが利用していてデータに更新が入る時間帯があり、その時間はデータ移行が出来ない事があります。
そのためシステムを停止していられる時間がどの程度あるかを念頭に置いて計画を立てる必要があります。
また1回のデータ移行で済むケースもあるかもしれませんが、たいていは複数回行うことになることが多いでしょう。
データ移行が複数回の場合は既に移行したデータに対して更新・削除が発生する想定で、計画を策定・準備しないと移行最終日に、非常に困った状態に陥ることになります。
合わせて体制・役割分担も重要です。
特に新旧システムともに担当していたケースではない場合は新旧システム担当者がお互いに協力しないとイレギュラーなデータ・事態に遭遇し、データ移行が失敗する確率が上がります。
責任が明確かつタイムリーに協力しあえるような体制作りを心掛けてください。
最後に移行のテストとリハーサルについてデータの対象や環境を定めておきましょう。早めに計画をしておかないとリハーサルを行う環境が無いままシステム開発している環境を再利用する事態に陥り、検証時間が確保出来ずに問題を潜在的に抱えたまま本番移行時に問題が発覚するような事態に陥ると思います。
最後に
今回はデータ移行の流れと計画まで、注意したいポイントをご紹介しました。
データ移行は成功させるには「何が必要か」を洗出し、計画を立ててしっかりと準備することが重要です。
まだ現状ではデータ移行は軽視されがちです。体系的な方法論も、あまり見かけません。ですので、多くの読者の方に役立つよう、さらにデータ移行を成功させるヒントをご紹介していきたいと思います。