Data Transmission Service (DTS) は、自己管理 Teradata データベースから AnalyticDB for PostgreSQL インスタンスへのスキーマ移行と完全データ移行をサポートしています。このシナリオでは増分データ移行はサポートされていません。移行中はソースデータベースにデータを書き込まないでください。
この移行シナリオは、中国 (上海)、中国 (青島)、および 中国 (張家口) リージョンでのみ利用可能です。
移行タイプ
移行タイプ | 説明 |
スキーマ移行 | 選択したオブジェクトのスキーマをソースデータベースから移行先データベースに移行します。 |
完全データ移行 | 選択したオブジェクトの既存データをソースデータベースから移行先データベースに移行します。 |
Teradata と AnalyticDB for PostgreSQL は異種データベースです。データ型の変換により、データ整合性の不一致やタスクの失敗が発生する可能性があります。移行前にビジネスへの影響を評価してください。詳細については、「異種データベース間のデータ型マッピング」をご参照ください。
前提条件
開始する前に、以下を確認してください。
新しい DTS コンソールを使用していること。この移行シナリオは、新しい DTS コンソールでのみ構成できます。
ソースの Teradata データベースのバージョンが 17 以前であること。
AnalyticDB for PostgreSQL インスタンスが作成されていること。詳細については、「インスタンスの作成」をご参照ください。
移行先の AnalyticDB for PostgreSQL インスタンスで利用可能なストレージが、Teradata データベースの合計データサイズよりも大きいこと。
必要な権限
データベース | スキーマ移行 | 完全データ移行 |
Teradata データベース | 移行対象オブジェクトに対する読み取り権限 | 移行対象オブジェクトに対する読み取り権限 |
AnalyticDB for PostgreSQL インスタンス | 移行先データベースに対する読み取りおよび書き込み権限 | 移行先データベースに対する読み取りおよび書き込み権限 |
データベースアカウントの作成と権限の付与については、以下をご参照ください。
自己管理 Teradata データベース:権限の追加
AnalyticDB for PostgreSQL インスタンス:データベースアカウントの作成 および ユーザーと権限の管理
制限事項
外部キーの処理
スキーマ移行中、DTS は外部キーをソースデータベースから移行先データベースに移行します。
完全データ移行中、DTS はセッションレベルで外部キーの制約チェックとカスケード操作を一時的に無効にします。移行中にソースデータベースでカスケード操作や削除操作を実行すると、データ不整合が発生する可能性があります。
ソースデータベースの制限事項
ソースサーバーには十分なエグレス帯域幅が必要です。そうでない場合、移行速度に影響が出ます。
移行するテーブルには PRIMARY KEY または UNIQUE 制約が必要であり、すべてのフィールドが一意である必要があります。そうでない場合、移行先データベースに重複したデータレコードが含まれる可能性があります。
移行オブジェクトとしてテーブルを選択し、テーブル名や列名の変更などの編集が必要な場合、1 つのタスクでサポートされるテーブルは最大 1,000 個です。タスクに 1,000 個を超えるテーブルが含まれている場合、リクエストエラーが発生します。テーブルを複数のタスクに分割するか、データベース全体を移行してください。
スキーマ移行および完全データ移行中に、データ定義言語 (DDL) 操作を実行してデータベースまたはテーブルのスキーマを変更しないでください。そうしないと、タスクは失敗します。
増分データ移行はサポートされていません。移行中はソースデータベースにデータを書き込まないでください。
パフォーマンスとデータ精度
移行がソースデータベースと移行先データベースに与える影響を評価してください。オフピーク時にデータを移行してください。完全データ移行中、DTS は両方のデータベースの読み取りおよび書き込みリソースを使用するため、サーバーの負荷が増加する可能性があります。
完全データ移行中の同時 INSERT 操作は、移行先テーブルに断片化を引き起こします。移行完了後、移行先データベースのテーブルスペースはソースよりも大きくなります。
DTS は FLOAT および DOUBLE 列に対して
ROUND(COLUMN,PRECISION)関数を使用します。精度を指定しない場合、DTS は FLOAT の精度を 38 桁、DOUBLE の精度を 308 桁に設定します。これらの精度設定がビジネス要件を満たしていることを確認してください。
タスクのリトライ動作
DTS は、過去 7 日以内に失敗した移行タスクの再開を試みます。ワークロードを移行先インスタンスに切り替える前に、データ移行タスクを停止またはリリースしてください。また、revoke コマンドを実行して、移行先インスタンスに対する DTS の書き込み権限を取り消すこともできます。そうしないと、再開されたタスクが移行先インスタンスのデータを上書きします。
課金
移行タイプ | インスタンス構成料金 | インターネットトラフィック料金 |
スキーマ移行と完全データ移行 | 無料 | Alibaba Cloud からインターネット経由でデータが移行される場合にのみ課金されます。詳細については、「課金の概要」をご参照ください。 |
データ移行タスクの作成
[データ移行タスク] ページに移動します。
Data Management (DMS) コンソールにログインします。
上部のナビゲーションバーで [DTS] をクリックします。
左側のナビゲーションウィンドウで、[DTS (DTS)] > [データ移行] を選択します。
- 操作は、DMS コンソールのモードおよびレイアウトによって異なる場合があります。詳細については、「シンプルモード」および「ビジネス要件に応じて DMS コンソールを設定する」をご参照ください。 - また、「新しい DTS コンソールのデータ移行タスクページ」に移動することもできます。
[データ移行タスク] の横にあるドロップダウンリストから、データ移行インスタンスが存在するリージョンを選択します。
新しい DTS コンソールを使用する場合は、左上隅でリージョンを選択します。
[タスクの作成] をクリックします。ソースデータベースと移行先データベースを構成します。
警告ソースインスタンスと移行先インスタンスを選択した後、データ不整合を防ぐためにページ上部の制限事項をお読みください。
自己管理データベースの場合、ネットワーク環境をデプロイする必要があります。詳細については、「準備の概要」をご参照ください。
タスク設定
パラメーター
説明
タスク名
DTS は自動的にタスク名を生成します。タスクを識別しやすいように、わかりやすい名前を指定してください。一意のタスク名である必要はありません。
ソースデータベース
パラメーター
説明
データベースタイプ
[Teradata] を選択します。
アクセス方法
[パブリックIPアドレス] を選択します。
インスタンスリージョン
Teradata データベースが存在するリージョン。
ホスト名または IP アドレス
Teradata データベースへのアクセスに使用するエンドポイント。この例では、パブリック IP アドレスが使用されます。
ポート番号
Teradata データベースのサービスポート番号です。デフォルト値: [1025]。
データベースアカウント
Teradata データベースのアカウント。必要な権限の詳細については、「必要な権限」をご参照ください。
データベースのパスワード
データベースアカウントのパスワード。
移行先データベース
パラメーター
説明
データベースタイプ
[AnalyticDB For PostgreSQL] を選択します。
アクセス方法
[Alibaba Cloud インスタンス] を選択します。
インスタンスリージョン
移行先の AnalyticDB for PostgreSQL インスタンスが存在するリージョン。
インスタンス ID
移行先の AnalyticDB for PostgreSQL インスタンスの ID。
データベース名
移行先の AnalyticDB for PostgreSQL インスタンス内の移行先データベースの名前。
データベースアカウント
移行先の AnalyticDB for PostgreSQL インスタンスのデータベースアカウント。必要な権限の詳細については、「必要な権限」をご参照ください。
データベースのパスワード
データベースアカウントのパスワード。
自己管理データベースにホワイトリストが設定されている場合は、DTS サーバーの CIDR ブロックをホワイトリストに追加します。その後、[接続テストと次へ] をクリックします。
警告DTS サーバーの CIDR ブロックがデータベースまたはインスタンスのホワイトリスト、あるいは ECS インスタンスのセキュリティグループルールに自動または手動で追加されると、セキュリティリスクが発生する可能性があります。DTS を使用してデータを移行する前に、潜在的なリスクを理解し、承認した上で、ユーザー名とパスワードのセキュリティ強化、公開するポートの制限、API 呼び出しの認証、ホワイトリストまたは ECS セキュリティグループルールの定期的な確認と不正な CIDR ブロックの禁止、Express Connect、VPN Gateway、または Smart Access Gateway を使用したデータベースの DTS への接続など、予防措置を講じてください。
移行するオブジェクトと詳細設定を構成します。
- DTS は、このシナリオでは増分データ移行をサポートしていません。データ整合性を維持するため、移行中にソースデータベースへのデータ書き込みを行わないでください。 - 移行対象のオブジェクトとして、列、テーブル、またはスキーマを選択できます。テーブルまたは列を移行対象のオブジェクトとして選択した場合、DTS はビュー、トリガー、ストアドプロシージャなどの他のオブジェクトをターゲットデータベースに移行しません。 - オブジェクト名マッピング機能を使用してオブジェクトの名前を変更した場合、そのオブジェクトに依存する他のオブジェクトが移行に失敗する可能性があります。 - WHERE 条件でデータをフィルタリングするには、[選択されたオブジェクト] セクション内のオブジェクトを右クリックします。表示されるダイアログボックスで条件を指定します。詳細については、「SQL 条件を使用したデータのフィルタリング」をご参照ください。 - ソースデータベースとターゲットデータベースに同じ名前のテーブルが存在し、ターゲットデータベースのテーブルを削除または名前変更できない場合、オブジェクト名マッピング機能を使用して、ターゲットデータベースに移行されるテーブルの名前を変更します。詳細については、「オブジェクト名のマップ」をご参照ください。
警告[エラーを無視して続行] を選択すると、データ不整合が発生し、ビジネスが潜在的なリスクにさらされる可能性があります。 - ソースデータベースとターゲットデータベースのスキーマが同じ場合、DTS はターゲットデータベースのデータレコードと同じプライマリキーを持つデータレコードを移行しません。 - ソースデータベースとターゲットデータベースのスキーマが異なる場合、一部の列のみが移行されるか、データ移行タスクが失敗します。 注意して続行してください。
- 同じソースデータベースまたは移行先データベースを共有する複数のデータ移行タスクに異なるリトライ時間範囲を設定した場合、後で設定した値が優先されます。- DTS が接続をリトライした場合、DTS インスタンスの操作に対して課金されます。ビジネスニーズに基づいてリトライ時間を指定し、ソースインスタンスと移行先インスタンスがリリースされた後、できるだけ早く DTS インスタンスをリリースしてください。
基本設定
パラメーター
説明
移行タイプ
[スキーマ移行] と [フルデータ移行] の両方を選択します。
競合するテーブルの処理モード
[事前チェックとエラー報告]: ターゲットデータベースにソースデータベースと同じ名前のテーブルが含まれているかどうかを確認します。ソースデータベースとターゲットデータベースに同名のテーブルが存在しない場合、事前チェックは通過します。その場合、事前チェック中にエラーが返され、データ移行タスクを開始できません。[エラーを無視して続行]: ソースデータベースとターゲットデータベースの同名テーブルに関する事前チェックをスキップします。
ソースオブジェクト
[ソースオブジェクト] セクションから 1 つ以上のオブジェクトを選択し、右向きの矢印アイコンをクリックして、オブジェクトを [選択済みオブジェクト] セクションに追加します。
選択したオブジェクト
オブジェクトの名前を変更するには、[選択されたオブジェクト] セクションで該当のオブジェクトを右クリックします。詳細については、「単一オブジェクトの名前をマップする」をご参照ください。複数のオブジェクトの名前を一度に変更するには、[選択されたオブジェクト] セクションの右上隅にある [一括編集] をクリックします。詳細については、「複数のオブジェクト名を一度にマップする」をご参照ください。
詳細設定
パラメーター
説明
アラートの設定
データ移行タスクのアラートを設定するかどうかを指定します。タスクが失敗した場合、または移行遅延がしきい値を超えた場合、アラート連絡先に通知が送信されます。有効な値: [いいえ] および [はい]。[はい] を選択した場合は、アラートのしきい値とアラート連絡先を設定します。詳細については、「DTS タスク作成時のモニタリングとアラートの設定」をご参照ください。
接続失敗時のリトライ時間
失敗した接続のリトライ時間範囲です。データ移行タスクの開始後、ソースデータベースまたはターゲットデータベースへの接続に失敗すると、DTS はこの時間範囲内に接続を即座にリトライします。有効な値: 10 ~ 1440。単位: 分。デフォルト値: 720。このパラメーターには 30 より大きい値を設定することを推奨します。
移行先インスタンスでのオブジェクト名の大文字/小文字
宛先インスタンスにおけるデータベース名、テーブル名、および列名の大文字小文字の区切り。デフォルトでは、DTS デフォルトポリシー が選択されています。ソースまたは宛先データベースのオブジェクト名の大文字小文字の区切りのデフォルト設定に合わせるには、他のオプションを選択します。詳細については、「宛先インスタンスにおけるオブジェクト名の大文字小文字の区切りを指定する」をご参照ください。
AnalyticDB for PostgreSQL インスタンスに移行するテーブルのプライマリキー列と分散キー列を指定します。

ページの下部で、[次へ: タスク設定を保存して事前チェック] をクリックします。
- データ移行タスクを開始する前に、DTS は事前チェックを実行します。 データ移行タスクは、タスクが事前チェックに合格した後にのみ開始できます。 - タスクが事前チェックに失敗した場合は、失敗した各項目の横にある [詳細を表示] をクリックします。 原因に基づいて問題を解決した後、再度事前チェックを実行します。 - 事前チェック中に項目に対してアラートがトリガーされた場合: - アラート項目を無視できない場合は、失敗した項目の横にある [詳細を表示] をクリックして問題を解決します。 その後、再度事前チェックを実行します。 - アラート項目を無視できる場合は、[アラート詳細を確認] をクリックします。 [詳細の表示] ダイアログボックスで、[無視] をクリックします。 表示されるメッセージで、[OK] をクリックします。 次に、[再度事前チェック] をクリックして、事前チェックを再実行します。 アラート項目を無視すると、データの不整合が発生したり、ビジネスが潜在的なリスクにさらされたりする可能性があります。
「成功率」の値が 100% になるまで待ちます。その後、[次へ: インスタンスの購入] をクリックします。
インスタンスの購入ページで、[インスタンスクラス] をデータ移行インスタンス用に指定します。インスタンスクラスによって、移行速度が異なります。詳細については、「データ移行インスタンスの仕様」をご参照ください。
「[Data Transmission Service (従量課金) サービス利用規約]」を読み、同意するには、チェックボックスを選択してください。
[Buy And Start] をクリックして、データ移行タスクを開始します。タスクリストでタスクの進捗を確認できます。
結果
[データ移行タスク] ページで移行の進行状況を監視します。タスクのステータスが [完了] に変更されたとき、選択したすべてのスキーマおよびデータが宛先の AnalyticDB for PostgreSQL インスタンスに移行されます。
次のステップ
移行完了後:
ソースの Teradata データベースと移行先の AnalyticDB for PostgreSQL インスタンスの行数を比較して、データの完全性を検証します。
FLOAT および DOUBLE 列の精度を確認し、ビジネス要件を満たしていることを確認します。
ワークロードを移行先インスタンスに切り替える前に、データ移行タスクを停止またはリリースします。これにより、DTS がタスクを再開して移行先のデータを上書きするのを防ぎます。