このトピックでは、data Transmission Service (DTS) を使用して、MaxComputeプロジェクトからApsaraDB RDS for MySQLインスタンスにデータを移行する方法について説明します。
前提条件
以下の操作が実行されます。
注意事項
DTSは、完全データ移行中にソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを使用します。 これは、データベースサーバの負荷を増加させる可能性がある。 データベースのパフォーマンスが悪い場合、仕様が低い場合、またはデータ量が多い場合、データベースサービスが利用できなくなる可能性があります。 たとえば、ソースデータベースで多数の低速SQLクエリが実行されている場合、テーブルにプライマリキーがない場合、またはターゲットデータベースでデッドロックが発生する場合、DTSは大量の読み取りおよび書き込みリソースを占有します。 データを移行する前に、移行元データベースと移行先データベースのパフォーマンスに対するデータ移行の影響を評価します。 オフピーク時にデータを移行することを推奨します。 たとえば、ソースデータベースとターゲットデータベースのCPU使用率が30% 未満の場合にデータを移行できます。
DTSは、ターゲットApsaraDB RDS for MySQLインスタンスにデータベースを自動的に作成します。 ただし、ソースデータベースの名前が無効な場合は、データ移行タスクを設定する前に、ターゲットインスタンスにデータベースを手動で作成する必要があります。
説明ApsaraDB RDSの命名規則とデータベースの作成方法の詳細については、「アカウントとデータベースの作成」をご参照ください。
データの一貫性を確保するために、フルデータ移行中はソースMaxComputeプロジェクトにデータを書き込まないことを推奨します。
データ移行タスクが失敗した場合、DTSは自動的にタスクを再開します。 ワークロードをターゲットインスタンスに切り替える前に、データ移行タスクを停止またはリリースします。 それ以外の場合、タスクの再開後、ソースデータベースのデータがターゲットインスタンスのデータを上書きします。
MaxComputeはPRIMARY KEY制約をサポートしていません。 ネットワークエラーが発生した場合、DTSはデータ移行タスクを再試行します。 この場合、重複するデータレコードは、主キーを持たない宛先テーブルに移行され得る。
DTSは、MaxComputeプロジェクトからApsaraDB RDS for MySQLインスタンスに増分データを移行できません。
説明データの一貫性を確保するために、データ移行中にソースMaxComputeプロジェクトにデータを書き込まないことを推奨します。
サポートされているターゲットデータベースタイプ
DTSを使用して、次のタイプのMySQLデータベースにデータを移行できます。
Elastic Compute Service (ECS) でホストされる自己管理型データベース
Express Connect、VPN Gateway、またはSmart Access Gatewayを介して接続された自己管理型データベース
database Gateway経由で接続された自己管理型データベース
MaxComputeプロジェクトと同じAlibaba Cloudアカウント、またはMaxComputeプロジェクトとは異なるAlibaba Cloudアカウントが所有するApsaraDB RDS for MySQLインスタンス
このトピックでは、ApsaraDB RDS for MySQLインスタンスを使用して、データ移行タスクを設定する方法を説明します。 手順に従って、他のタイプのMySQLデータベースのデータ移行タスクを設定することもできます。
移行先データベースが自己管理型MySQLデータベースの場合、移行元データベースのネットワーク環境をデプロイする必要があります。 詳細については、「準備の概要」をご参照ください。
課金
移行タイプ | タスク設定料金 | インターネットトラフィック料金 |
スキーマ移行とフルデータ移行 | 無料です。 | インターネット経由でAlibaba Cloudからデータが移行された場合にのみ課金されます。 詳細については、「課金の概要」をご参照ください。 |
移行タイプ
移行タイプ | 説明 |
スキーマの移行 | DTSは、必要なオブジェクトのスキーマをターゲットデータベースに移行します。 DTSは、ビュー、テーブル、およびデータベースのスキーマ移行をサポートします。 警告 このトピックでは、ソースデータベースとターゲットデータベースは異種データベースです。 DTSは、スキーマ移行後にソースデータベースとターゲットデータベースのスキーマが一貫していることを保証しません。 データ型変換がビジネスに与える影響を評価することを推奨します。 詳細については、「異種データベース間のデータ型マッピング」をご参照ください。 |
フルデータ移行 | DTSは、必要なオブジェクトの履歴データをターゲットデータベースに移行します。 説明 完全データ移行中、同時INSERT操作により、ターゲットデータベースのテーブルが断片化されます。 完全データ移行が完了すると、移行先データベースの使用表領域のサイズが移行元データベースのサイズよりも大きくなります。 |
手順
にログインします。 DTSコンソール。
説明データ管理 (DMS) コンソールにリダイレクトされている場合は、にある
アイコンをクリックして、以前のバージョンのDTSコンソールに移動し
。左側のナビゲーションウィンドウで、[データ移行] をクリックします。
[移行タスク] ページの上部で、移行先クラスターが存在するリージョンを選択します。
ソースデータベースとターゲットデータベースを設定します。

セクション
パラメーター
説明
移行元データベース
インスタンスタイプ
[MaxCompute] を選択します。
インスタンスリージョン
ソースMaxComputeプロジェクトが存在するリージョン。
プロジェクト
MaxComputeプロジェクトの名前。 DataWorksコンソールの [ワークスペース] ページでプロジェクトを検索できます。

ターゲットデータベース
インスタンスタイプ
RDS インスタンスを選択します。
インスタンスリージョン
ターゲットApsaraDB RDS for MySQLインスタンスが存在するリージョン。
RDS インスタンス ID
ターゲットApsaraDB RDS for MySQLインスタンスのID。
データベースアカウント
ターゲットApsaraDB RDS for MySQLインスタンスのデータベースアカウント。 アカウントには、ターゲットデータベースに対する読み取りおよび書き込み権限が必要です。
データベースパスワード
データベースアカウントのパスワードを設定します。
ターゲットデータベースパラメーターを指定した後、[データベースパスワード] の横にある [接続のテスト] をクリックして、指定したパラメーターが有効かどうかを確認します。
説明指定されたパラメーターが有効な場合、[合格] メッセージが表示されます。 [失敗] メッセージが表示された場合、[失敗] の横にある [確認] をクリックします。 チェック結果に基づいて、ターゲットデータベースのパラメーターを変更します。
暗号化
[暗号化なし] または[SSL 暗号化] を選択します。 SSL暗号化を選択する場合、データ移行タスクを設定する前に、ApsaraDB RDS for MySQLインスタンスのSSL暗号化を有効にする必要があります。 詳細については、次をご参照ください: クラウド証明書を使用してSSL暗号化を有効にします。
ページの右下隅にある [ホワイトリストと次への設定] をクリックします。
警告DTSサーバーのCIDRブロックがデータベースまたはインスタンスのホワイトリスト、またはECSセキュリティグループルールに自動的または手動で追加されると、セキュリティリスクが発生する可能性があります。 したがって、DTSを使用してデータを移行する前に、潜在的なリスクを理解して認識し、次の対策を含む予防策を講じる必要があります。VPNゲートウェイ、またはSmart Access Gateway。
ページの右下隅にある [次へ] をクリックします。 このステップでは、MaxComputeプロジェクトに対する権限が移行アカウントに付与されます。 次の図に例を示します。

移行タイプと移行するオブジェクトを選択します。

設定
説明
移行タイプの選択
[スキーマ移行] および [フルデータ移行] を選択します。
説明DTSは、MaxComputeプロジェクトからApsaraDB RDS for MySQLインスタンスに増分データを移行できません。
移行するオブジェクトを選択します。
[ソースオブジェクト] セクションから1つ以上のオブジェクトを選択し、
アイコンをクリックして [選択済みオブジェクト] セクションにオブジェクトを追加します。 説明移行するオブジェクトとして、列、テーブル、またはデータベースを選択できます。
既定では、オブジェクトがターゲットデータベースに移行された後、オブジェクトの名前は変更されません。 オブジェクト名マッピング機能を使用して、移行先データベースに移行するオブジェクトの名前を変更できます。 詳細は、オブジェクト名のマッピングをご参照ください。
オブジェクト名マッピング機能を使用してオブジェクトの名前を変更すると、そのオブジェクトに依存する他のオブジェクトの移行に失敗する可能性があります。
ソースデータベースまたはターゲットデータベースへの接続が失敗した場合のリトライ時間範囲の指定
デフォルトでは、DTSがソースデータベースまたはターゲットデータベースへの接続に失敗した場合、DTSは次の12時間以内に再試行します。 業務要件に基づいて再試行時間範囲を指定できます。 指定された時間範囲内にDTSがソースデータベースとターゲットデータベースに再接続された場合、DTSはデータ移行タスクを再開します。 それ以外の場合、データ移行タスクは失敗します。
説明DTSが接続を再試行すると、DTSインスタンスに対して課金されます。 ビジネスニーズに基づいて再試行時間範囲を指定することを推奨します。 ソースインスタンスとターゲットインスタンスがリリースされた後、できるだけ早くDTSインスタンスをリリースすることもできます。
ページの右下隅にある [事前チェック] をクリックします。
重要データ移行タスクを開始する前に、事前チェックが実行されます。 データ移行タスクは、タスクが事前チェックに合格した後にのみ開始できます。
タスクが事前チェックに合格しなかった場合は、失敗した各項目の横にある
アイコンをクリックして詳細を表示できます。 原因に基づいて問題をトラブルシューティングした後、再度事前チェックを実行できます。
問題をトラブルシューティングする必要がない場合は、失敗した項目を無視して、再度事前チェックを実行できます。
タスクが事前チェックに合格したら、[次へ] をクリックします。
[設定の確認] ダイアログボックスで、[チャネル仕様] パラメーターを指定し、[データ送信サービス (従量課金) サービス規約] を選択します。
[購入と開始] をクリックして、データ移行タスクを開始します。
説明フルデータ移行中は、手動でタスクを停止しないことをお勧めします。 そうしないと、ターゲットデータベースに移行されたデータが不完全になる可能性があります。 フルデータ移行タスクが自動的に停止するまで待つことができます。
ワークロードをApsaraDB RDS for MySQLインスタンスに切り替えます。
次のステップ
ソースMaxComputeプロジェクトのメンバーには読み取り権限があります。 ターゲットApsaraDB RDS for MySQLインスタンスのデータベースアカウントに読み取りおよび書き込み権限があります。 データベースのセキュリティを確保するには、データ移行の完了後に次の操作を実行します。 ソースMaxComputeプロジェクトのメンバーを削除するか、ロールを変更します。 2. ターゲットApsaraDB RDS for MySQLインスタンスのデータベースアカウントを削除します。 詳細については、「プロジェクトメンバーの追加とロールの設定」および「アカウントの削除」をご参照ください。