データ移行

データ移行（データいこう）またはデータマイグレーション（）は、異なる種類のストレージ、フォーマット、コンピュータなどの間でデータを移行(
データ転送）するプロセスである。
手順を誤れば重大なシステム障害を起こしうる、ミッションクリティカルな作業である。
解説.
組織や個人がコンピュータを替えたり新しいものにアップグレードするとき、あるいはシステムを統合するとき（企業が合併してシステムを1つにする場合）などに必要となる。現在ではデータ移行は一般に自動的に行われるが、自動化するまでもない場合は手動を介する場合もある。手動の場合は、操作誤りを防ぐために入念にレビューされた手順書を用意する事が多い。大きなシステムの場合、自動か手動かを問わず、リハーサルを繰り返して問題点の洗い出しも行う。
効率的にデータ移行を行うため、古いシステム上のデータを新しいシステムにマッピングし、データの抽出とロードを行う。しかし、最も重要なのは古いシステムでのデータがそのままでは新しいシステムで使えない場合で、何らかの変換や加工を必要とする。データ移行はこれら全体を指すが、その大部分は変換・加工の自動化である。
新システムにデータをロードしたら、転送が正しく行われたか（そのデータを使って新システムが正しく動作するか）検証する必要がある。この際に新旧のシステムを並行して動作させ、結果を照合するなどの作業が必要な場合もある。
自動または手動で移行時にデータをきれいにし（データクレンジング）、品質を向上させるのが一般的である。冗長な情報やもはや使われなくなった情報を除去し、新たなシステムの要求仕様にあわせてデータを変換する。
データ移行の工程（設計、抽出、クレンジング、ロード、検証）は、新システムが実際に稼動するまでに何度か行われるのが普通である。
分類.
データは各種媒体上のファイルやデータベースに格納されており、ビジネスプロセスをサポートするアプリケーションソフトウェアがそのデータを生成し利用している。データ移行は様々なビジネス上の必要性から実施され、移行の手法はその必要性に応じて異なる。基本的には以下の4種類の移行に分類される。
ストレージ移行.
記憶装置の技術革新により、新たな種類の記憶装置への移行が要求される場合である。異なる記憶装置であっても仮想化技術を使うため、データそのものには全く手を加えずにコピーし、上位層にはほとんど手を加えずにアクセス可能にすることが多い。
デジタルデータを長期的に保管するには、古くなった媒体から新たな媒体へのデータ移行が必須である。デジタルではないが、古い新聞をマイクロフィルム化して保管するのはその一例である。ただし、記録媒体の更新をしても、そのデータを扱えるソフトウェアやシステムが存在しなくなる可能性はある。そのためにはエミュレータを使うなどの対策がある。
データベース移行.
データベースソフトを別のものにする場合や、同じソフトでもバージョンアップする場合のデータ移行である。バージョンアップでは移行が必要になることは滅多にないが、大きなアップグレードでは必要なこともある。この場合フォーマットが変わるため、変換が必要となる。アプリケーションにも影響することがあるが、それはデータ操作言語やプロトコルが変更されるかどうかに依存する。最近はアプリケーション側がデータベースについて知識を持たない形式で書いてあることが多く、OracleからMySQL、DB2、Microsoft SQL Serverへの移行でも単に機能確認のためのテストをすればよいだけということが多い。
アプリケーション移行.
CRMやERPなどのアプリケーションベンダーを乗り換える場合のデータ移行である。これらはそれぞれ独自のデータモデルを使っており、変換が必須となる。さらに、アプリケーションをより広範囲な市場で販売できるよう、商用オフザシェルフパッケージは一般に顧客毎にメタデータを使って設定する。APIはデータ完全性を保持するよう提供されている。APIの利用はソフトウェア利用契約で保証されているが、それは「ベンダーまたはパートナーのサービスやツールを使っている限りにおいて」という但し書きがある場合も多い。
ビジネスプロセス移行.
ビジネスプロセスとは、人間とアプリケーションシステムの絡み合ったプロセスであり、一般にビジネスプロセス管理ツールを使って運用される。ビジネスプロセスが変わると、組織や顧客・製品・オペレーションに関する情報の変化が生じ、データ、データベース、アプリケーションを変更する必要が出てくる。例えば、企業の買収や合併、ビジネスの最適化や組織変更、新市場への参入などがこの移行のきっかけとなる。
先に挙げたストレージ移行とデータベース移行は、企業のIT部門が普通に行う業務である。アプリケーション移行とビジネスプロセス移行はかなり大掛かりで、サービス停止期間を設けずに実施することはかなり困難である。そのような移行では、高度に適応的な手法、並行同期、ビジネス指向の監査機能、関係者への透明性を確保した移行などが主な要求となる。
プロジェクトとプロセス.
データ移行とデータ統合（データインテグレーション）の違いを明らかにすることが理解の助けとなる。データ移行は一般に、データがある環境から別の環境にコピーされ、その後元の環境からデータを消去するプロジェクトを指す用語である。移行には数カ月から数年かかることもあり、その間はデータは複数個所に保持され、そのために何度も移行をすることになる。ETL作業が必須だが、その手段はETLという用語の一般的意味に含まれる手段とは限らない。
一方データ統合はITアーキテクチャの不変な一部であり、各種アプリケーションやデータ格納域の間のデータの流れを指す。したがって、一時的なプロジェクトというよりも定常的なプロセスである。運用系からデータウェアハウスへデータを供給する一般的なETL技術は、データ統合の一種といえる。