このトピックでは、data Transmission Service (DTS) を使用して、ApsaraDB RDS for SQL ServerインスタンスからAnalyticDB for MySQL V3.0クラスターにデータを同期する方法について説明します。 データ同期機能を使用すると、データの転送と分析が簡単になります。
前提条件
ソースApsaraDB RDS for SQL Serverインスタンスが作成されました。 詳細については、「データ同期シナリオの概要」および「迅速なApsaraDB RDS For SQL Serverインスタンスの作成」をご参照ください。
重要SQL Server増分同期モードパラメーターが非ヒープテーブルのログベース解析とヒープテーブルのCDCベースの増分同期に設定されている場合、データはハイブリッドログベース解析モードで同期され、次のバージョンのソースデータベースがサポートされます。
EnterpriseまたはEnterprise Evaluationエディションの自己管理型SQL ServerまたはApsaraDB RDS for SQL Serverデータベース: バージョン2012、2014、2016、または2019。
Standard edition: バージョン2016 2019の自己管理型SQL ServerまたはApsaraDB RDS for SQL Serverデータベース。
ターゲットAnalyticDB for MySQL V3.0クラスターが作成されました。 詳細については、「クラスターの作成」をご参照ください。
移行先AnalyticDB for MySQL V3.0クラスターの使用可能なストレージ容量が、移行元ApsaraDB RDS for SQL Serverインスタンスのデータの合計サイズよりも大きいこと。
ソースApsaraDB RDS for SQL Serverインスタンスが次のいずれかの条件を満たしている場合、同期タスクを複数のサブタスクに分割することを推奨します。
ソースインスタンスには10を超えるデータベースが含まれています。
ソースインスタンスの1つのデータベースは、1時間未満の間隔でログをバックアップします。
ソースインスタンスの1つのデータベースで、1時間に100を超えるDDLステートメントが実行されます。
ログは、ソースインスタンスの1つのデータベースに対して20メガバイト/秒の割合で書き込まれます。
ソースApsaraDB RDS for SQL Serverインスタンスの1,000を超えるテーブルに対して、変更データキャプチャ (CDC) 機能を有効にする必要があります。
制限事項
スキーマ同期中、DTSはソースデータベースからターゲットデータベースに外部キーを同期します。
完全データ同期および増分データ同期中、DTSはセッションレベルで外部キーに対する制約チェックおよびカスケード操作を一時的に無効にします。 データ同期中にソースデータベースに対してカスケード更新および削除操作を実行すると、データの不整合が発生する可能性があります。
カテゴリ | 説明 |
ソースインスタンスの制限 |
|
その他の制限 |
|
課金
同期タイプ | タスク設定料金 |
スキーマ同期と完全データ同期 | 無料です。 |
増分データ同期 | 有料。 詳細については、「課金の概要」をご参照ください。 |
サポートしている同期トポロジ
一方向の 1 対 1 の同期
一方向の 1 対多の同期
一方向のカスケード同期
一方向の多対 1 の同期
DTSでサポートされている同期トポロジの詳細については、「同期トポロジ」をご参照ください。
同期可能なSQL操作
操作タイプ | SQL文 |
DML | 挿入、更新、および削除 |
DDL |
説明
|
手順
新しいDTSコンソールのデータ同期ページに移動します。
説明データ管理 (DMS) コンソール にログインすることもできます。 上部のナビゲーションバーで、[DTS] をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
ページの左上隅で、データ同期タスクを作成するリージョンを選択します。
[タスクの作成] をクリックします。 表示されるページで、ソースデータベースとターゲットデータベースを設定します。
警告ソースデータベースとターゲットデータベースを設定した後、ページの上部に表示される制限を読むことをお勧めします。 そうしないと、タスクが失敗したり、データの不一致が発生します。
セクション
パラメーター
説明
N/A
タスク名
タスクの名前。 DTSはタスクに名前を自動的に割り当てます。 タスクを簡単に識別できるように、わかりやすい名前を指定することをお勧めします。 一意のタスク名を指定する必要はありません。
ソースデータベース
データベースタイプ
移行元ディスクのタイプを設定します。 [SQL Server] を選択します。
アクセス方法
ソースデータベースのアクセス方法。 [Alibaba Cloudインスタンス] を選択します。
インスタンスリージョン
ソースApsaraDB RDS for SQL Serverインスタンスが存在するリージョン。
インスタンスID
ソースApsaraDB RDS for SQL ServerインスタンスのID。
データベースアカウント
ソースApsaraDB RDS for SQL Serverインスタンスのデータベースアカウント。 アカウントには、同期するオブジェクトに対する所有者権限が必要です。
データベースパスワード
データベースアカウントのパスワードを設定します。
宛先データベース
データベースタイプ
ターゲットデータベースのタイプ。 [AnalyticDB for MySQL 3.0] を選択します。
アクセス方法
ターゲットデータベースのアクセス方法。 [Alibaba Cloudインスタンス] を選択します。
インスタンスリージョン
ターゲットAnalyticDB for MySQL V3.0クラスターが存在するリージョン。
インスタンスID
ターゲットAnalyticDB for MySQL V3.0クラスターのID。
データベースアカウント
ターゲットAnalyticDB for MySQL V3.0クラスターのデータベースアカウント。 アカウントには、ターゲットデータベースに対する読み取りおよび書き込み権限が必要です。
データベースパスワード
データベースアカウントのパスワードを設定します。
ページの下部で、[接続をテストして続行] をクリックします。
ソースまたはターゲットデータベースが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は選択したオブジェクトの履歴データをソースインスタンスからターゲットインスタンスに同期します。 履歴データは、その後の増分同期の基礎となる。
説明[フルデータ同期] が選択されている場合、CREATE tableステートメントを実行して作成されたテーブルのスキーマとデータをターゲットデータベースに同期できます。
競合テーブルの処理モード
事前チェックエラーとレポートエラー: ターゲットデータベースに、ソースデータベースのテーブルと同じ名前のテーブルが含まれているかどうかを確認します。 ソースデータベースとターゲットデータベースに同じテーブル名のテーブルが含まれていない場合は、事前チェックに合格します。 それ以外の場合、事前チェック中にエラーが返され、データ同期タスクを開始できません。
説明オブジェクト名マッピング機能を使用して、ターゲットデータベースに同期されるテーブルの名前を変更できます。 この機能は、ソースデータベースとターゲットデータベースに同じテーブル名が含まれていて、ターゲットデータベースのテーブルを削除または名前変更できない場合に使用できます。 詳細については、「マップオブジェクト名」をご参照ください。
エラーを無視して続行: ソースデータベースとターゲットデータベースの同じテーブル名の事前チェックをスキップします。
警告[エラーを無視して続行] を選択すると、データの不整合が発生し、ビジネスが潜在的なリスクにさらされる可能性があります。
ソースデータベースとターゲットデータベースが同じスキーマを持ち、データレコードがターゲットデータベースの既存のデータレコードと同じ主キー値を持つ場合:
完全データ同期中、DTSはデータレコードをターゲットデータベースに同期しません。 ターゲットデータベースの既存のデータレコードが保持されます。
増分データ同期中、DTSはデータレコードをターゲットデータベースに同期します。 ターゲットデータベースの既存のデータレコードが上書きされます。
ソースデータベースとターゲットデータベースのスキーマが異なる場合、データの初期化に失敗したり、一部の列のみが同期されたり、データ同期タスクが失敗したりすることがあります。 注意して操作してください。
DDL操作とDML操作の同期
同期するSQL操作。 詳細については、「同期可能なSQL操作」をご参照ください。
説明特定のデータベースまたはテーブルで実行されるSQL操作を選択するには、次の手順を実行します。[選択されたオブジェクト] セクションで、オブジェクトを右クリックします。 表示されるダイアログボックスで、同期するSQL操作を選択します。
SQL Server増分同期モード
非ヒープテーブルのログベースの解析とヒープテーブルのCDCベースの増分同期:
利点:
ヒープテーブル、主キーのないテーブル、圧縮テーブル、計算列のあるテーブルをサポートします。
より高い安定性とさまざまな完全なDDLステートメントを提供します。
短所:
ソースデータベースにトリガーdts_cdc_sync_ddl、ハートビートテーブルdts_sync_progress、およびDDLストレージテーブルdts_cdc_ddl_historyを作成し、ソースデータベースと特定のテーブルの変更データキャプチャ (CDC) を有効にします。
ソースデータベースのCDC対応テーブルでSELECT INTOステートメントをサポートしていません。 ソースデータベースでDTSによって作成されたトリガーは手動で削除できません。
ソースデータベースのログに基づく増分同期:
利点:
ソースデータベースの設定は変更しません。
不利な点:
ヒープテーブル、主キーのないテーブル、圧縮テーブル、または計算列のあるテーブルはサポートされません。
オブジェクトの選択
[ソースオブジェクト] セクションから1つ以上のオブジェクトを選択し、アイコンをクリックして [選択済みオブジェクト] セクションにオブジェクトを追加します。
説明このシナリオでは、異種データベース間でデータ同期が実行されます。 したがって、同期できるのはテーブルだけです。 ビュー、トリガー、ストアドプロシージャなどの他のオブジェクトは、ターゲットデータベースに同期されません。
データベースとテーブルの名前変更
同期先のインスタンスに同期するオブジェクトの名前を変更するには、[選択済みオブジェクト] セクションでオブジェクトを右クリックします。 詳細については、「単一オブジェクトの名前のマッピング」をご参照ください。
一度に複数のオブジェクトの名前を変更するには、[選択済みオブジェクト] セクションの右上隅にある [一括編集] をクリックします。 詳細については、「一度に複数のオブジェクト名をマップする」をご参照ください。
フィルターデータ
WHERE条件を指定してデータをフィルタリングできます。 詳細については、「フィルター条件の設定」をご参照ください。
同期するSQL操作の選択
[選択済みオブジェクト] セクションで、オブジェクトを右クリックします。 表示されるダイアログボックスで、同期するDDL操作とDML操作を選択します。 詳細については、「同期可能なSQL操作」をご参照ください。
[次へ: 詳細設定] をクリックして詳細設定を構成します。
パラメーター
説明
Set Alerts
データ同期タスクのアラートを設定するかどうかを指定します。 タスクが失敗するか、同期レイテンシが指定されたしきい値を超えると、アラート送信先は通知を受け取ります。 有効な値:
No: アラートを設定しません。
Yes: アラートを設定します。 この場合、アラートしきい値とアラート連絡先も設定する必要があります。 詳細については、「新しいDTSタスクのモニタリングとアラートの設定」をご参照ください。
失敗した接続のリトライ時間範囲の指定
失敗した接続のリトライ時間範囲。 データ同期タスクの開始後にソースデータベースまたはターゲットデータベースの接続に失敗した場合、DTSはその時間範囲内ですぐに接続を再試行します。 有効な値: 10 ~ 1440 単位は分です。 デフォルト値: 720 パラメーターを30より大きい値に設定することを推奨します。 DTSが指定された時間範囲内にソースデータベースとターゲットデータベースに再接続すると、DTSはデータ同期タスクを再開します。 それ以外の場合、データ同期タスクは失敗します。
説明同じソースまたはターゲットデータベースを持つ複数のDTSタスクに対して異なるリトライ時間範囲を設定した場合、設定された最短のリトライ時間範囲が優先されます。
DTSが接続を再試行すると、DTSインスタンスに対して課金されます。 業務要件に基づいて再試行時間範囲を指定することを推奨します。 ソースインスタンスとターゲットインスタンスがリリースされた後、できるだけ早くDTSインスタンスをリリースすることもできます。
移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。
その他の問題の再試行時間範囲。 たとえば、データ同期タスクの開始後にDDLまたはDML操作の実行に失敗した場合、DTSはその時間範囲内ですぐに操作を再試行します。 有効な値: 1 ~ 1440 単位は分です。 デフォルト値は 10 です。 パラメーターを10より大きい値に設定することを推奨します。 指定された時間範囲内で失敗した操作が正常に実行されると、DTSはデータ同期タスクを再開します。 それ以外の場合、データ同期タスクは失敗します。
重要ソースデータベースとターゲットデータベースで他の問題が発生した場合の再試行までの待機時間パラメーターの値は、[失敗した接続の再試行時間] パラメーターの値よりも小さくする必要があります。
ETLの設定
抽出、変換、および読み込み (ETL) 機能を有効にするかどうかを指定します。 詳細については、「ETLとは」をご参照ください。 有効な値:
Yes: ETL機能を設定します。 コードエディターでデータ処理ステートメントを入力できます。 詳細については、「データ移行またはデータ同期タスクでのETLの設定」をご参照ください。
No: ETL機能を設定しません。
ページの下部で、[次へ]: [データベースフィールドとテーブルフィールドの設定] をクリックします。 表示されるページで、同期するテーブルのプライマリキー列と配布キー列をAnalyticDB for MySQLクラスターに設定します。
説明同期タイプ として [スキーマ同期] を選択した場合、AnalyticDB for MySQL V3.0クラスターに同期するテーブルの [タイプ] 、[プライマリキー列] 、および [配布キー] パラメーターを設定する必要があります。 詳細については、「CREATE TABLE」をご参照ください。
[プライマリキー列] フィールドでは、複数の列を指定して複合プライマリキーを形成できます。 この場合、1つ以上の主キー列を配布キー列として指定する必要があります。
ページの下部にある [次へ: タスク設定と事前チェック] をクリックします。
ポインタを 次:タスク設定の保存と事前チェック に移動し、[OpenAPIパラメーターのプレビュー] をクリックして、インスタンスを設定するために呼び出されるAPI操作のパラメーター設定を表示します。
説明データ同期タスクを開始する前に、DTSは事前チェックを実行します。 データ同期タスクは、タスクが事前チェックに合格した後にのみ開始できます。
タスクが事前チェックに合格しなかった場合は、失敗した各項目の横にある [詳細の表示] をクリックします。 原因に基づいて問題をトラブルシューティングした後、再度事前チェックを実行します。
事前チェック中にアイテムに対してアラートがトリガーされた場合:
アラートアイテムを無視できない場合は、失敗したアイテムの横にある [詳細の表示] をクリックして問題のトラブルシューティングを行います。 次に、もう一度プレチェックを実行します。
アラート項目を無視できる場合は、[アラート詳細の確認] をクリックします。 [詳細の表示] ダイアログボックスで、[無視] をクリックします。 表示されたメッセージボックスで、[OK] をクリックします。 次に、[再度事前チェック] をクリックして、事前チェックを再度実行します。 アラート項目を無視すると、データの不整合が発生し、ビジネスが潜在的なリスクにさらされる可能性があります。
成功率が100% になるまで待ちます。 次に、[次へ: インスタンスの購入] をクリックします。
[インスタンスの購入] ページで、データ同期インスタンスの課金方法とインスタンスクラスのパラメーターを設定します。 下表に、各パラメーターを説明します。
セクション
パラメーター
説明
新しいインスタンスクラス
Billing Method
サブスクリプション: インスタンスの作成時にインスタンスの料金を支払います。 サブスクリプションの課金方法は、長期使用の場合、従量課金の課金方法よりも費用対効果が高くなります。
従量課金: 従量課金インスタンスは1時間ごとに課金されます。 従量課金方法は、短期使用に適しています。 従量課金インスタンスが不要になった場合は、従量課金インスタンスをリリースしてコストを削減できます。
リソースグループ
インスタンスが実行されるリソースグループ。 デフォルト値: Default resource group 詳細については、「リソース管理とは」をご参照ください。.
インスタンスクラス
DTSは、異なるパフォーマンスを提供するさまざまな同期仕様を提供します。 同期速度は、選択した同期仕様によって異なります。 ビジネスシナリオに基づいて同期仕様を選択できます。 詳細については、「データ同期インスタンスの仕様」をご参照ください。
サブスクリプション期間
サブスクリプションの課金方法を選択した場合は、サブスクリプション期間と作成するインスタンスの数を設定します。 サブスクリプション期間は、1〜9か月、1年、2年、3年、または5年とすることができる。
説明このパラメーターは、サブスクリプション の課金方法を選択した場合にのみ使用できます。
[読み取り] チェックボックスをオンにして、[データ送信サービス (従量課金) サービス規約] に同意します。
[購入と開始] をクリックして、データ同期タスクを開始します。 タスクリストでタスクの進行状況を確認できます。