このトピックでは、data Transmission Service (DTS) を使用して、ApsaraDB RDS for MySQLインスタンスからMaxComputeプロジェクトにデータを移行する方法について説明します。
サポートされているソースデータベース
DTSを使用して、次のタイプのMySQLデータベースからMaxComputeプロジェクトにデータを移行できます。- ApsaraDB RDS for MySQL インスタンス
- 自己管理型MySQLデータベース:
- パブリックIPアドレスを持つ自己管理型データベース
- Elastic Compute Service (ECS) でホストされる自己管理型データベース
- database Gateway経由で接続されている自己管理型データベース
- Cloud Enterprise Network (CEN) 経由で接続された自己管理型データベース
- Express Connect、VPN Gateway、またはSmart Access Gatewayを介して接続された自己管理型データベース
前提条件
- ApsaraDB RDS for MySQLインスタンスがソースデータベースとして作成されます。 詳細については、「ApsaraDB RDS For MySQLインスタンスの作成」をご参照ください。
- MaxComputeプロジェクトがターゲットデータベースとして作成されます。 詳細については、「MaxComputeプロジェクトの作成」をご参照ください。
- ターゲットMaxComputeプロジェクトの使用可能なストレージ容量が、ソースApsaraDB RDS for MySQLインスタンスのデータの合計サイズよりも大きいこと。
制限事項
DTSは、ソースデータベースの外部キーをターゲットデータベースに移行しません。 したがって、ソースデータベースのカスケードおよび削除操作は、ターゲットデータベースに移行されません。
カテゴリ | 説明 |
ソースインスタンスの制限 |
|
その他の制限 |
|
課金
移行タイプ | タスク設定料金 | インターネットトラフィック料金 |
スキーマ移行とフルデータ移行 | 無料 | インターネット経由でAlibaba Cloudからデータが移行された場合にのみ課金されます。 詳細については、「課金の概要」をご参照ください。 |
増分データ移行 | 有料。 詳細については、「課金の概要」をご参照ください。 |
移行タイプ
- スキーマ移行
DTSは、オブジェクトのスキーマをソースデータベースからターゲットデータベースに移行します。
- 完全なデータ移行
DTSは、オブジェクトの履歴データをソースデータベースからターゲットデータベースに移行します。
- 増分データ移行
完全データ移行が完了すると、DTSは増分データをソースデータベースからターゲットデータベースに移行します。 増分データ移行により、データ移行中に自己管理型アプリケーションのサービスを中断することなく、データをスムーズに移行できます。
増分データ移行中に移行できるSQL操作
操作タイプ | SQL文 |
DML | 挿入、更新、および削除 |
DDL | CREATE TABLE、DROP TABLE、RENAME TABLE、TRUNCATE TABLE、ADD COLUMN、およびDROP COLUMN |
データベースアカウントに必要な権限
データベース | スキーマ移行 | 完全なデータ移行 | 増分データ移行 |
ApsaraDB RDS for MySQL | SELECT 権限 | SELECT 権限 | 移行するオブジェクトに対するSELECT権限、REPLICATION SLAVE権限、およびREPLICATION CLIENT権限。 DTSは、これらの権限をデータベースアカウントに自動的に付与します。 |
MaxCompute | 読み書き権限 |
データベースアカウントを作成し、ApsaraDB RDS For MySQLインスタンスのデータベースアカウントに権限を付与する方法の詳細については、「アカウントの作成」および「アカウントの権限の変更」をご参照ください。
手順
[データ移行タスク] ページに移動します。
にログインします。 データ管理 (DMS) コンソール
上部のナビゲーションバーで、ポインタを上に移動します。DTS.
選択 .
説明実際の操作は、DMSコンソールのモードとレイアウトによって異なります。 詳細については、「シンプルモード」および「DMSコンソールのレイアウトとスタイルのカスタマイズ」をご参照ください。
に行くこともできます 新しいDTSコンソールのデータ移行ページ。
- [データ移行タスク] の右側にあるドロップダウンリストから、データ移行インスタンスが存在するリージョンを選択します。 説明 新しいDTSコンソールを使用する場合は、左上隅にあるデータ移行インスタンスが存在するリージョンを選択します。
- [タスクの作成] をクリックします。 [データ移行タスクの作成] ページで、ソースデータベースとターゲットデータベースを設定します。 次の表にパラメーターを示します。
セクション パラメーター 説明 非該当 タスク名 DTSが自動的に生成するタスク名。 わかりやすい名前を指定することをお勧めします。 一意のタスク名を指定する必要はありません。 ソースデータベース 既存のDMSデータベースインスタンスの選択 使用するデータベースインスタンス。 ビジネス要件に基づいて、既存のインスタンスを使用するかどうかを選択できます。 - 既存のインスタンスを選択した場合、DTSはインスタンスのパラメーター設定を自動的に適用します。 対応するパラメーターを再度設定する必要はありません。
- 既存のインスタンスを使用しない場合は、データベースのパラメーターを設定する必要があります。
データベースタイプ 移行元ディスクのタイプを設定します。 [MySQL] を選択します。 アクセス方法 ソースデータベースのアクセス方法。 [クラウドインスタンス] を選択します。 インスタンスリージョン ソースApsaraDB RDS for MySQLインスタンスが存在するリージョンを選択します。 Alibaba Cloudアカウント全体でのデータの複製 Alibaba Cloudアカウント間でデータを移行するかどうかを指定します。 この例では、[いいえ] が選択されています。 RDSインスタンスID ソースApsaraDB RDS for MySQLインスタンスのID。 データベースアカウント ソースApsaraDB RDS for MySQLインスタンスのデータベースアカウント。 アカウントに必要な権限については、「データベースアカウントに必要な権限」をご参照ください。 データベースパスワード データベースインスタンスへのアクセスに使用されるパスワード。
暗号化 ソースデータベースインスタンスへの接続を暗号化するかどうかを指定します。 ビジネス要件に基づいて、[非暗号化] または [SSL暗号化] を選択します。 このパラメーターをSSL暗号化に設定する場合、DTSタスクを設定する前に、ApsaraDB RDS for MySQLインスタンスのSSL暗号化を有効にする必要があります。 詳細については、「クラウド証明書を使用したSSL暗号化の有効化」をご参照ください。
宛先データベース 既存のDMSデータベースインスタンスの選択 使用するデータベースインスタンス。 ビジネス要件に基づいて、既存のインスタンスを使用するかどうかを選択できます。
既存のインスタンスを選択すると、DTSはデータベースのパラメーターを自動的に入力します。
既存のインスタンスを選択しない場合は、次のデータベース情報を設定する必要があります。
データベースタイプ ターゲットデータベースのタイプ。 [MaxCompute] を選択します。 アクセス方法 ターゲットデータベースのアクセス方法。 [Alibaba Cloudインスタンス] を選択します。 インスタンスリージョン ターゲットMaxComputeプロジェクトが存在するリージョン。 プロジェクト MaxCompute プロジェクトの名前を設定します。 Alibaba CloudアカウントのAccessKey ID ターゲットMaxComputeプロジェクトへの接続に使用するアカウントのAccessKey ID。 詳細については、「AccessKey の作成」をご参照ください。 Alibaba CloudアカウントのAccessKey Secret ターゲットMaxComputeプロジェクトへの接続に使用するアカウントのAccessKeyシークレット。 詳細については、「AccessKey の作成」をご参照ください。 ページの下部で、[接続のテストと続行] をクリックします。
、ソースまたはターゲットデータベースがAlibaba Cloudデータベースインスタンス (ApsaraDB RDS for MySQL、ApsaraDB for MongoDBインスタンスなど) の場合、DTSは自動的にDTSサーバーのCIDRブロックをインスタンスのIPアドレスホワイトリストに追加します。 ソースデータベースまたはターゲットデータベースがElastic Compute Service (ECS) インスタンスでホストされている自己管理データベースの場合、DTSサーバーのCIDRブロックがECSインスタンスのセキュリティグループルールに自動的に追加されます。ECSインスタンスがデータベースにアクセスできることを確認する必要があります。 自己管理データベースが複数のECSインスタンスでホストされている場合、DTSサーバーのCIDRブロックを各ECSインスタンスのセキュリティグループルールに手動で追加する必要があります。 ソースデータベースまたはターゲットデータベースが、データセンターにデプロイされているか、サードパーティのクラウドサービスプロバイダーによって提供される自己管理データベースである場合、DTSサーバーのCIDRブロックをデータベースのIPアドレスホワイトリストに手動で追加して、DTSがデータベースにアクセスできるようにする必要があります。 詳細については、「DTSサーバーのCIDRブロックの追加」トピックの「DTSサーバーのCIDRブロック」セクションをご参照ください。
警告DTSサーバーのパブリックCIDRブロックがデータベースインスタンスのホワイトリストまたはECSインスタンスのセキュリティグループルールに自動的または手動で追加されると、セキュリティリスクが発生する可能性があります。 したがって、DTSを使用してデータを移行する前に、潜在的なリスクを理解して認識し、ユーザー名とパスワードのセキュリティの強化、公開されるポートの制限、API呼び出しの認証、ホワイトリストまたはセキュリティグループルールの定期的なチェック、CIDRブロックの禁止、またはExpress Connectを使用したデータベースインスタンスのDTSへの接続、VPNゲートウェイ、またはSmart Access Gateway。
- [OK] をクリックして、MaxComputeアカウントに権限を付与します。
- 移行するオブジェクトと詳細設定を設定します。
パラメーター 説明 移行タイプ フルデータ移行のみを実行するには、[スキーマ移行] と [フルデータ移行] を選択します。
データ移行中のサービスの継続性を確保するには、[スキーマ移行] 、[フルデータ移行] 、および [増分データ移行] を選択します。
説明増分データ移行を選択しない場合、データ移行中にソースデータベースにデータを書き込まないことを推奨します。 これにより、ソースデータベースとターゲットデータベース間のデータの整合性が確保されます。
競合テーブルの処理モード 事前チェックエラーとレポートエラー: 移行元データベースのテーブルと同じ名前のテーブルがターゲットクラスターに含まれているかどうかを確認します。 ソースデータベースとターゲットデータベースに同じ名前のテーブルが含まれていない場合は、事前チェックに合格します。 それ以外の場合、事前チェック中にエラーが返され、データ移行タスクを開始できません。
説明 オブジェクト名マッピング機能を使用して、移行先データベースに移行するテーブルの名前を変更できます。 この機能は、ソースデータベースとターゲットデータベースに同じ名前のテーブルが含まれていて、ターゲットデータベースのテーブルを削除または名前変更できない場合に使用できます。 詳細については、「マップオブジェクト名」をご参照ください。- エラーを無視して続行: ソースデータベースとターゲットデータベースの同じテーブル名の事前チェックをスキップします。 警告 [エラーを無視して続行] を選択すると、データの一貫性が保証されず、ビジネスが潜在的なリスクにさらされる可能性があります。
- ソースデータベースとターゲットデータベースのスキーマが同じである場合、DTSは、ターゲットデータベースのデータレコードと同じ主キーを持つデータレコードを移行しません。
- ソースデータベースとターゲットデータベースのスキーマが異なる場合、一部の列のみが移行されるか、データ移行タスクが失敗します。
追加列の命名規則 MaxComputeプロジェクトにデータを移行すると、DTSは移行先テーブルに追加の列を追加します。 追加の列の名前がターゲットテーブルの既存の列の名前と同じである場合、データ移行は失敗します。 ビジネス要件に基づいて、[新しいルール] または [以前のルール] を選択します。 警告 このパラメーターを指定する前に、宛先テーブルの追加の列と既存の列に名前の競合があるかどうかを確認してください。宛先インスタンスでのオブジェクト名の大文字化 ターゲットインスタンスのデータベース名、テーブル名、および列名の大文字化。 デフォルトでは、DTSデフォルトポリシーが選択されています。 他のオプションを選択して、オブジェクト名の大文字化がソースまたはターゲットデータベースの大文字化と一致していることを確認できます。 詳細については、「ターゲットインスタンスのオブジェクト名の大文字化の指定」をご参照ください。
ソースオブジェクト ソースオブジェクト セクションから1つ以上のオブジェクトを選択します。 アイコンをクリックし、[選択済みオブジェクト] セクションにオブジェクトを追加します。
説明移行するオブジェクトとして、列、テーブル、またはスキーマを選択できます。 移行するオブジェクトとしてテーブルまたは列を選択した場合、DTSは、ビュー、トリガー、ストアドプロシージャなどの他のオブジェクトを移行先データベースに移行しません。
[選択済みオブジェクト] - 移行先インスタンスに移行するオブジェクトの名前を変更するには、[選択済みオブジェクト] セクションでオブジェクトを右クリックします。 詳細については、「単一オブジェクトの名前のマッピング」をご参照ください。
- 一度に複数のオブジェクトの名前を変更するには、[選択済みオブジェクト] セクションの右上隅にある [一括編集] をクリックします。 詳細については、「一度に複数のオブジェクト名をマップする」をご参照ください。
説明- オブジェクト名マッピング機能を使用してオブジェクトの名前を変更すると、そのオブジェクトに依存する他のオブジェクトの移行に失敗する可能性があります。
- データをフィルタリングするWHERE条件を指定するには、[選択済みオブジェクト] セクションでオブジェクトを右クリックします。 表示されるダイアログボックスで、条件を指定します。 手順の詳細については、「フィルター条件の指定」をご参照ください。
- 特定のデータベースまたはテーブルで実行されたSQL操作を選択するには、[選択済みオブジェクト] セクションでオブジェクトを右クリックします。 表示されるダイアログボックスで、移行するSQL操作を選択します。 移行できるSQL操作の詳細については、このトピックの「増分データ移行中に移行できるSQL操作」をご参照ください。
- クリック次へ:詳細設定詳細設定を設定します。
パラメーター 説明 Set Alerts データ移行タスクのアラートを設定するかどうかを指定します。 タスクが失敗するか、移行の待ち時間が指定されたしきい値を超えると、アラート送信先は通知を受け取ります。 有効な値:
No: アラートを設定しません。
Yes: アラートを設定します。 この場合、アラートしきい値と アラート通知設定 詳細については、「モニタリングとアラートの設定」トピックの「DTSタスクを作成するときのモニタリングとアラートの設定」をご参照ください。
失敗した接続の再試行時間 失敗した接続のリトライ時間範囲。 データ移行タスクの開始後にソースデータベースまたはターゲットデータベースの接続に失敗した場合、DTSはその時間範囲内ですぐに接続を再試行します。 有効な値: 10 ~ 1440 単位は分です。 デフォルト値: 720 パラメーターを30より大きい値に設定することを推奨します。 DTSが指定された時間範囲内にソースデータベースとターゲットデータベースに再接続すると、DTSはデータ移行タスクを再開します。 それ以外の場合、データ移行タスクは失敗します。説明- ソースまたはターゲットデータベースが同じである複数のデータ移行タスクに対して異なるリトライ時間範囲を設定した場合、設定された最短のリトライ時間範囲が優先されます。
- DTSが接続を再試行すると、DTSインスタンスに対して課金されます。 業務要件に基づいて再試行時間範囲を指定することを推奨します。 ソースインスタンスとターゲットインスタンスがリリースされた後、できるだけ早くDTSインスタンスをリリースすることもできます。
ETLの設定 抽出、変換、および読み込み (ETL) 機能を有効にするかどうかを指定します。 詳細については、「」をご参照ください。ETLとは何ですか? 有効な値:
Yes: ETL機能を設定します。 コードエディターでデータ処理ステートメントを入力できます。 詳細については、「データ移行またはデータ同期タスクでのETLの設定」をご参照ください。
No: ETL機能を設定しません。
- ページの下部で、[次へ: タスク設定の保存と事前チェック] をクリックします。
ポインタを 次:タスク設定の保存と事前チェック に移動し、[OpenAPIパラメーターのプレビュー] をクリックして、関連するAPI操作を呼び出してDTSタスクを設定するときに指定するパラメーターを表示できます。
説明データ移行タスクを開始する前に、DTSは事前チェックを実行します。 データ移行タスクは、タスクが事前チェックに合格した後にのみ開始できます。
タスクが事前チェックに合格しなかった場合は、失敗した各項目の横にある [詳細の表示] をクリックします。 チェック結果に基づいて原因を分析した後、問題のトラブルシューティングを行います。 次に、もう一度プレチェックを実行します。
事前チェック中にアイテムに対してアラートがトリガーされた場合:
アラートアイテムを無視できない場合は、失敗したアイテムの横にある [詳細の表示] をクリックして問題のトラブルシューティングを行います。 次に、もう一度プレチェックを実行します。
アラート項目を無視できる場合は、[アラート詳細の確認] をクリックします。 [詳細の表示] ダイアログボックスで、[無視] をクリックします。 表示されたメッセージボックスで、[OK] をクリックします。 次に、[再度事前チェック] をクリックして、事前チェックを再度実行します。 アラート項目を無視すると、データの不整合が発生し、ビジネスが潜在的なリスクにさらされる可能性があります。
成功率が100% になるまで待ちます。 次に、[次へ: インスタンスの購入] をクリックします。
[インスタンスの購入] ページで、データ移行インスタンスのインスタンスクラスパラメーターを設定します。 下表にパラメーターを示します。
セクション
パラメーター
説明
新しいインスタンスクラス
リソースグループ
データ移行インスタンスが属するリソースグループ。 デフォルト値: Default resource group 詳細については、「」をご参照ください。リソース管理とは
インスタンスクラス
DTSは、移行速度が異なるインスタンスクラスを提供します。 ビジネスシナリオに基づいてインスタンスクラスを選択できます。 詳細については、「データ移行インスタンスのインスタンスクラス」をご参照ください。
読んで同意するデータ伝送サービス (従量課金) サービス規約チェックボックスを選択します。
[購入して開始] をクリックします。 表示されるメッセージで、 [OK] をクリックします。
[データ移行] ページでタスクの進行状況を確認できます。