Data Transmission Service (DTS) は、PolarDB-X 2.0 から Tablestore へのデータ移行に対応しています。
前提条件
Tablestore インスタンスが作成されていること。詳細については、「インスタンスの作成」をご参照ください。
Tablestore インスタンスを所有する Alibaba Cloud アカウントの AccessKey ID と AccessKey Secret を取得していること。詳細については、「AccessKey の作成」をご参照ください。
注意事項
タイプ | 説明 |
ソースデータベースの制限 |
|
その他の制限 |
|
増分移行でサポートされる SQL 操作
| 操作タイプ | SQL ステートメント |
|---|---|
| DML | INSERT、UPDATE、DELETE |
必要なデータベースアカウント権限
| データベース | スキーマ移行 | 完全なデータ移行 | 増分データ移行 |
|---|---|---|---|
| ソース PolarDB-X 2.0 | SELECT | SELECT | REPLICATION SLAVE、REPLICATION CLIENT、および移行対象オブジェクトに対する SELECT |
アカウントの作成および権限の付与手順については、「データベースアカウントの管理」および「データ同期用アカウントに必要な権限」をご参照ください。
操作手順
データ移行タスクページに移動します。
Data Management (DMS) コンソールにログインします。
上部メニューで、[Integration & Development] をクリックします。
ナビゲーションペインで、 の順に選択します。
[移行タスク] の右側で、移行インスタンスのリージョンを選択します。
説明実際の操作は、DMS コンソールのモードとレイアウトによって異なる場合があります。詳細については、「シンプルモード」および「DMS UI のレイアウトとスタイルのカスタマイズ」をご参照ください。
新しい DTS データ移行タスクページにログインすることもできます。
[タスクの作成] をクリックして、タスク設定ページを開きます。
(オプション): ページの右上隅にある 新バージョンの設定ページを試してみる をクリックします。
説明新しい設定ページの右上隅にあるボタンが 旧バージョンの設定ページに戻る の場合は、この手順をスキップします。
新しい設定ページと古い設定ページではパラメータが異なります。新しい設定ページを使用してください。
ソースデータベースと移行先データベースを設定します。
カテゴリ
設定
説明
なし
[タスク名]
タスクの名前。 DTSはタスクに名前を自動的に割り当てます。 タスクを簡単に識別できるように、わかりやすい名前を指定することをお勧めします。 一意のタスク名を指定する必要はありません。
[移行元データベース]
[既存の DMS データベースインスタンスを選択します。(任意です。DMS データベースインスタンスが未登録の場合は、このオプションを無視して、以下のセクションでデータベース設定を行ってください。)]
使用するデータベースインスタンス。 ビジネス要件に基づいて、既存のインスタンスを選択するかどうかを選択できます。
既存のインスタンスを選択すると、DTSはデータベースのパラメーターを自動的に入力します。
既存のインスタンスを選択しない場合は、データベースのパラメーターを手動で設定する必要があります。
[データベースタイプ]
PolarDB-X 2.0 を選択します。
[アクセス方法]
Alibaba Cloud インスタンス を選択できます。
[インスタンスのリージョン]
ソース PolarDB-X 2.0 インスタンスが配置されているリージョンを選択します。
[Alibaba Cloud アカウント間でデータを複製]
この例では、同じ Alibaba Cloud アカウント内のインスタンス間でデータを移行する方法を示します。× を選択します。クロスアカウントシナリオの詳細については、「クロスアカウントデータ移行のタスク設定」をご参照ください。
[インスタンス ID]
ソース PolarDB-X 2.0 インスタンスの ID を選択します。
[データベースアカウント]
ソース PolarDB-X 2.0 インスタンスのデータベースアカウントを入力します。権限要件については、「データベースアカウントに必要な権限」をご参照ください。
[データベースのパスワード]
データベースアカウントのパスワードを設定します。
[移行先データベース]
[既存の DMS データベースインスタンスを選択します。(任意です。DMS データベースインスタンスが未登録の場合は、このオプションを無視して、以下のセクションでデータベース設定を行ってください。)]
使用するデータベースインスタンス。 ビジネス要件に基づいて、既存のインスタンスを選択するかどうかを選択できます。
既存のインスタンスを選択すると、DTSはデータベースのパラメーターを自動的に入力します。
既存のインスタンスを選択しない場合は、データベースのパラメーターを手動で設定する必要があります。
[データベースタイプ]
Tablestore を選択します。
[アクセス方法]
Alibaba Cloud インスタンス を選択します。
[インスタンスのリージョン]
移行先の Tablestore インスタンスが配置されているリージョンを選択します。
[インスタンス ID]
移行先の Tablestore インスタンスの名前を選択します。
[Alibaba Cloud アカウントの AccessKey ID]
Tablestore インスタンスを所有する Alibaba Cloud アカウントの AccessKey ID を入力します。AccessKey ID はユーザーを識別するために使用されます。
重要RAM ユーザーの AccessKey ID を入力する場合、RAM ユーザーに AliyunOTSFullAccess 権限を付与する必要があります。この権限により、RAM ユーザーは Tablestore を管理できます。詳細については、「RAM ポリシーを使用した RAM ユーザーへの権限付与」をご参照ください。
[Alibaba Cloud アカウントの AccessKey Secret]
Tablestore インスタンスを所有する Alibaba Cloud アカウントの AccessKey Secret を入力します。AccessKey Secret はユーザーの身元を確認するために使用されます。
ページの下部で、[接続のテストと続行] をクリックします。
、ソースまたはターゲットデータベースが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ブロックが、データベースインスタンスのIPアドレスホワイトリストまたはECSインスタンスのセキュリティグループルールに自動的または手動で追加されると、セキュリティリスクが発生する可能性があります。 したがって、DTSを使用してデータを移行する前に、潜在的なリスクを理解して認識し、アカウントとパスワードのセキュリティの強化、公開されるポートの制限、API呼び出しの認証、IPアドレスホワイトリストまたはECSセキュリティグループルールの定期的なチェック、および不正なCIDRブロックの禁止、Express Connectを使用したデータベースのDTSへの接続、VPNゲートウェイ、またはSmart Access Gateway。
タスクオブジェクトを設定します。
オブジェクト設定 ページで、移行するオブジェクトを設定できます。
設定
説明
[移行タイプ]
フルデータ移行のみを実行するには、[スキーマ移行] と [フルデータ移行] を選択します。
データ移行中のサービスの継続性を確保するには、[スキーマ移行] 、[フルデータ移行] 、および [増分データ移行] を選択します。
説明増分データ移行を選択しない場合、データ移行中にソースデータベースにデータを書き込まないことを推奨します。 これにより、ソースデータベースとターゲットデータベース間のデータの整合性が確保されます。
[競合するテーブルの処理モード]
事前チェックエラーとレポートエラー: ターゲットデータベースに、ソースデータベースのテーブルと同じ名前のテーブルが含まれているかどうかを確認します。 ソースデータベースとターゲットデータベースに同じテーブル名のテーブルが含まれていない場合は、事前チェックに合格します。 それ以外の場合、事前チェック中にエラーが返され、データ移行タスクを開始できません。
説明オブジェクト名マッピング機能を使用して、移行先データベースに移行するテーブルの名前を変更できます。 この機能は、ソースデータベースとターゲットデータベースに同じテーブル名のテーブルが含まれていて、ターゲットデータベースのテーブルを削除または名前変更できない場合に使用できます。 詳細については、「マップオブジェクト名」をご参照ください。
エラーを無視して続行: ソースデータベースとターゲットデータベースの同じテーブル名の事前チェックをスキップします。
警告[エラーを無視して続行] を選択すると、データの不整合が発生し、ビジネスが次の潜在的なリスクにさらされる可能性があります。
ソースデータベースとターゲットデータベースのスキーマが同じである場合、DTSは、ターゲットデータベースのデータレコードと同じ主キー値を持つデータレコードを移行しません。
ソースデータベースとターゲットデータベースのスキーマが異なる場合、特定の列のみが移行されるか、データ移行タスクが失敗します。 注意して進めてください。
[操作タイプ]
ビジネスニーズに基づいて移行する操作タイプを選択します。デフォルトでは、すべての操作タイプが選択されています。
[ダーティデータの処理ポリシー]
データ書き込みエラーを処理するポリシーを選択します。有効な値:
[スキップ]
[ブロック]
[データ書き込みモード]
データ書き込みモードを選択します。有効な値:
[行の上書き]:UpdateRowChange を使用して行レベルでデータを上書きします。
[行の更新]:PutRowChange を使用して行のデータを更新します。
[一括書き込みモード]
バッチ書き込みを呼び出す API 操作。有効な値:
[BulkImportRequest]:オフライン書き込みを実行します。
[BatchWriteRowRequest]:バッチ書き込み操作を実行します。
説明[BulkImportRequest] を選択して、読み書きの効率を向上させ、Tablestore インスタンスの請求コストを削減することを推奨します。
[詳細]
必要に応じて、詳細 をクリックして次のパラメータを設定します:
[キューサイズ]:Tablestore インスタンスにデータを書き込むプロセスのキューの長さ。
[スレッド数]:Tablestore インスタンスにデータを書き込むためのコールバックハンドラースレッドの数。
[並行数]:Tablestore インスタンスの最大同時リクエスト数。
[バケット]:増分データを順次書き込むために使用される同時バケットの数を指定します。この値を増やすと、同時書き込みパフォーマンスが向上する可能性があります。
説明バケット の値は 並行数 の値を超えることはできません。
[移行先インスタンスでのオブジェクト名の大文字化]
ターゲットインスタンスのデータベース名、テーブル名、および列名の大文字化。 デフォルトでは、DTSデフォルトポリシーが選択されています。 他のオプションを選択して、オブジェクト名の大文字化がソースまたはターゲットデータベースの大文字化と一致していることを確認できます。 詳細については、「ターゲットインスタンスのオブジェクト名の大文字化の指定」をご参照ください。
[ソースオブジェクト]
[ソースオブジェクト] セクションから1つ以上のオブジェクトを選択し、
アイコンをクリックして [選択済みオブジェクト] セクションにオブジェクトを追加します。 説明データベースまたはテーブルレベルで移行するオブジェクトを選択できます。テーブルを移行オブジェクトとして選択した場合、ビュー、トリガー、ストアドプロシージャなどの他のオブジェクトは移行先データベースに移行されません。
1 つのデータベースからのみテーブルを移行できます。つまり、1 つのデータベースまたは同じデータベースから複数のテーブルを選択できます。
[選択中のオブジェクト]
-
ターゲットインスタンスで単一の移行オブジェクトの名前を変更するには、選択中のオブジェクト ボックスでオブジェクトを右クリックします。詳細については、「個別のスキーマ、テーブル、および列名のマッピング」をご参照ください。
-
ターゲットインスタンスで複数の移行オブジェクトの名前を変更するには、一括編集 ボックスの右上隅にある 選択中のオブジェクト をクリックします。詳細については、「複数のスキーマ、テーブル、および列名のマッピング」をご参照ください。
説明データベース名のマッピングはサポートされていません。テーブルを移行オブジェクトとして選択した場合にのみ、テーブル名と列名をマッピングできます。マッピング機能を使用すると、マッピングされたオブジェクトに依存する他のオブジェクトの移行が失敗する可能性があります。
列名マッピング機能を使用すると、移行先の Tablestore インスタンスで対応する列のタイプを変更できます。
WHERE 句でデータをフィルタリングするには、選択中のオブジェクト ボックスでテーブルを右クリックし、表示されるダイアログボックスでフィルタ条件を設定します。詳細については、「フィルタ条件の設定」をご参照ください。
詳細設定へ をクリックします。
設定
説明
[タスクのスケジュールに使用する専用クラスターの選択]
既定では、専用クラスターを指定しない場合、DTSは共有クラスターへのデータ移行タスクをスケジュールします。 データ移行タスクを実行するために必要な仕様の専用クラスターを購入して指定することもできます。 詳細については、「DTS専用クラスターの概要」をご参照ください。
[失敗した接続の再試行時間]
失敗した接続のリトライ時間範囲。 データ移行タスクの開始後にソースデータベースまたはターゲットデータベースの接続に失敗した場合、DTSは再試行時間範囲内ですぐに接続を再試行します。 有効な値: 10 ~ 1440 単位: 分。 デフォルト値: 720 パラメーターを30より大きい値に設定することを推奨します。 指定した再試行時間内にDTSがソースデータベースとターゲットデータベースに再接続された場合、DTSはデータ移行タスクを再開します。 それ以外の場合、データ移行タスクは失敗します。
説明同じソースまたはターゲットデータベースを共有する複数のデータ移行タスクに対して異なるリトライ時間範囲を指定した場合、後で指定される値が優先されます。
DTSが接続を再試行すると、DTSインスタンスに対して課金されます。 業務要件に基づいて再試行時間範囲を指定することを推奨します。 ソースインスタンスとターゲットインスタンスがリリースされた後、できるだけ早くDTSインスタンスをリリースすることもできます。
[移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。]
その他の問題の再試行時間範囲。 たとえば、データ移行タスクの開始後にDDLまたはDML操作の実行に失敗した場合、DTSは再試行時間範囲内ですぐに操作を再試行します。 有効な値: 1 ~ 1440 単位: 分。 デフォルト値は 10 です。 パラメーターを10より大きい値に設定することを推奨します。 指定された再試行時間内に失敗した操作が正常に実行された場合、DTSはデータ移行タスクを再開します。 それ以外の場合、データ移行タスクは失敗します。
重要ソースデータベースとターゲットデータベースで他の問題が発生した場合の再試行までの待機時間パラメーターの値は、[失敗した接続の再試行時間] パラメーターの値よりも小さくする必要があります。
[完全移行率を制限するかどうか]
フルデータ移行のスロットリングを有効にするかどうかを指定します。 完全データ移行中、DTSはソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを使用します。 これは、データベースサーバの負荷を増加させる可能性がある。 ビジネス要件に基づいて、フルデータ移行のスロットリングを有効にできます。 スロットリングを設定するには、1 秒あたりのソースデータベースのクエリ率 QPS 、1 秒あたりの完全移行の行数 RPS、1 秒あたりの完全移行データ量 (MB) BPS パラメーターを設定する必要があります。 これにより、移行先データベースサーバーの負荷が軽減されます。
説明このパラメーターは、移行タイプ として 完全データ移行 が選択されている場合にのみ表示されます。
[増分移行率を制限するかどうか]
増分データ移行のスロットリングを有効にするかどうかを指定します。 スロットリングを設定するには、1 秒あたりの増分移行の行数 RPSと1 秒あたりの増分移行データ量 (MB) BPS パラメーターを設定する必要があります。 これにより、移行先データベースサーバーの負荷が軽減されます。
説明このパラメーターは、移行タイプとして増分データ移行が選択されている場合にのみ表示されます。
[環境タグ]
必要に応じて、環境タグを選択してインスタンスを識別できます。この例では、タグは選択されていません。
[ETL 機能の設定]
抽出、変換、ロード (ETL) 機能はサポートされていないため、× を選択します。
[順方向および逆方向タスクのハートビートテーブル SQL を削除]
DTSインスタンスの実行中に、ハートビートテーブルのSQL操作をソースデータベースに書き込むかどうかを指定します。
Yes: ハートビートテーブルにSQL操作を書き込みません。 この場合、DTSインスタンスのレイテンシが表示され得る。
No: ハートビートテーブルにSQL操作を書き込みます。 この場合、ソースデータベースの物理バックアップやクローニングなどの特定の機能が影響を受ける可能性があります。
[監視アラート]
データ移行タスクのアラートを設定するかどうかを指定します。 タスクが失敗するか、移行の待ち時間が指定されたしきい値を超えると、アラート送信先は通知を受け取ります。 有効な値:
No: アラートを設定しません。
Yes: アラートを設定します。 [はい] を選択した場合、アラートしきい値とアラート連絡先も指定する必要があります。 詳細については、「モニタリングとアラートの設定」をご参照ください。
次:データベースおよびテーブルのフィールド設定 をクリックし、表示された [注] のダイアログボックスで 注意 をクリックします。
デフォルトでは、DTS はソーステーブルのプライマリキーを プライマリキー列の追加 として設定します。これを変更するには、定義ステータス を すべて に設定します。
説明プライマリキー列の追加 に複数の列を選択することで、複合プライマリキーを作成できます。
ページの下部にある [次へ: タスクの保存と事前チェック] をクリックします。
このインスタンスを設定するための API 操作パラメータを表示するには、次:タスク設定の保存と事前チェック にカーソルを合わせ、表示されるポップアップで OpenAPI パラメーターのプレビュー をクリックします。
API パラメータを表示する必要がない場合、または表示が完了した場合は、ページ下部の 次:タスク設定の保存と事前チェック をクリックします。
説明移行タスクが開始される前に、DTS は事前チェックを実行します。移行タスクは、すべての事前チェック項目に合格した後にのみ開始できます。
事前チェックが失敗した場合は、失敗した項目の横にある [詳細の表示] をクリックします。問題を解決し、再度事前チェックを実行します。
チェック項目で警告が報告された場合:
無視できない失敗した項目については、チェックの横にある [詳細の表示] をクリックします。問題を解決し、再度事前チェックを実行します。
チェック項目の警告を無視するには、[警告詳細の確認]、[無視の確認]、[OK] の順にクリックします。その後、[事前チェックの再実行] をクリックして再度事前チェックを実行します。警告を無視することを選択した場合、データの不整合が発生し、ビジネスにリスクをもたらす可能性があります。
[事前チェック成功率] が [100%] の場合は、[次へ: 購入] をクリックします。
インスタンスを購入します。
[インスタンスの購入] ページで、データ移行インスタンスのインスタンスクラスパラメーターを設定します。 次の表にパラメーターを示します。
セクション
パラメーター
説明
新しいインスタンスクラス
リソースグループ
データ移行インスタンスが属するリソースグループ。 デフォルト値: Default resource group 詳細については、「リソース管理とは」をご参照ください。
インスタンスクラス
DTSは、移行速度が異なるインスタンスクラスを提供します。 ビジネスシナリオに基づいてインスタンスクラスを選択できます。 詳細については、「データ移行インスタンスの仕様」をご参照ください。
チェックボックスをオンにして、Data Transmission Service (Pay-as-you-go) Service Termsを読み、同意します。
[購入と開始] をクリックして、データ移行タスクを開始します。 タスクリストでタスクの進行状況を確認できます。
結果を確認します。
Tablestore コンソールにログインします。
ページの上部で、リソースグループとリージョンを選択します。
[概要] ページで、インスタンス名をクリックするか、インスタンスの [操作] 列にある [インスタンス管理] をクリックします。
[インスタンス詳細] タブで、[データテーブル一覧] をクリックして移行されたテーブルデータをクエリします。