Amazon Web Services ブログ
AWS DMS バージョン 3.1.3 を使用したデータ変換
AWS は最新の AWS Database Migration Service (AWS DMS) バージョン 3.1.3 の新しいデータ変換機能をサポートするようになりました。スキーマ、テーブル、および列の名前を変更し、Oracle ターゲットの個々の表領域名を指定し、そして任意のターゲット上のテーブルの主キーと一意キーを更新することができます。DMS バージョン 3.1.3 は、以下の新しいデータ変換機能をサポートしています。
- 明示的なテーブルマッピング
- Oracle のソースおよびターゲットの表領域の変換規則
- Oracle のソースおよびターゲットの索引表領域の変換規則
- 主キーまたは一意キーのインデックスの定義
- 対象列のデータ型の変更
明示的なテーブルマッピング
以前の DMS バージョンでは、AWS マネジメントコンソールを使用してテーブルマッピングを実行したり、テーブル選択を指定したり、スキーマやテーブルのルールアクションを変換したりしていました。
バージョン 3.1.3 では、AWS DMS により明示的なテーブルの選択を行えます。明示的なテーブルマッピングルールを使用すると、サポートされている DMS ターゲットへの移行用に特定のソーステーブルを選択できます。また、より良い粒度のためにソースからテーブルのサブセットを除外します。明示的な選択規則を使用するときは、テーブルマッピングのスキーマ名とテーブル名にワイルドカード (%) を使用することはできません。
次の例では、ソースに 7 つのテーブルがあります。明示的な変換規則を使用すると、残りのテーブルを移行から除外する一方、DEPT テーブルのみを移行することを選択できます。
DMS コンソールの対応する変換規則は、次のようになります。
次のクエリを使用して、ターゲットデータベーススキーマのテーブル「DEPT」をクエリできます。
Oracle ソースおよびターゲットの表領域の変換規則
表領域の変換規則を使用すると、テーブルを Oracle ターゲット上の特定の表領域に移行できます。次のコード例を使用すると、テーブル MYTABLENAME
を別の表領域に配置することができます。
Oracle のソースおよびターゲットの索引表領域の変換規則
索引表領域の変換規則を使用すると、Oracle ターゲット上で選択した表領域に表索引を移行できます。次のコード例を使用すると、テーブル MYTABLENAME
のインデックスを別の表領域に配置できます。
主キーまたは一意のインデックスの定義
テーブル列の主キーの管理と作成は、いつも難題を突きつけます。新しい DMS 機能により、ターゲットの主キーを更新できます。
次の例は、必要な列にテーブルの主キーを作成する方法を示しています。変換規則で定義されている列の順序は、ターゲットに作成された主キーの列の順序を示します。オリジンフィールドを指定して、主キーまたは一意のインデックスとしてターゲット上にキーを作成できます。DMS はデフォルトでそれを主キーとして作成します。
この例では、ID はソース上の唯一の主キー列です。このサンプルテーブルマッピングルールを使用して、SNO を主キーとして移行することもできます。
ターゲット側で、このコード例は主キーとして ID と SNO の両方を持つテーブル DMS を作成します。主キー制約の構文は次のようになります。
対象列のデータ型の変更
移行中に change-data-type 変換を使用して、列の型をその場で変換できます。DMS は現在、以下のデータ型のデータ型変換をサポートしています。
次の例では、SQL Server をソースとターゲットとして使用して、ターゲットの変換規則を使用して列のデータ型を変更する方法を示します。
ステップ 1: ソーステーブルを作成する
次のコード例を使用して、ソースにテーブルを作成します。
ステップ 2: タスクを作成する
次のタスクマッピング JSON を使用して、次のソースエンドポイントとターゲットエンドポイントを使ってタスクを作成します。
ステップ 3: テーブルを変更します。
変換規則によって、テーブルが次のように変更されるはずです。
結論
AWS DMS レプリケーションエンジンバージョン 3.1.3 では、この記事で紹介した機能が利用できます。明示的なマッピング規則 (すべてのエンジン)、Oracle のソースとターゲットに異なる変換規則を使用でき、さらにすべてのエンジンのターゲット列に主キーインデックスと一意キーインデックスを定義できます。
ご質問またはご提案いついては、以下でコメントを残してください。移行がうまくいきますように!
著者について
Harish Bannai は AWS のクラウドサポートエンジニアです。 彼は当社の顧客と協力してデータベースプロジェクト上の指導や技術支援を行い、AWS を使用する際にソリューションの価値を向上させる手助けをしています。