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