Data Transmission Service (DTS) は、データ出荷SDKを使用して、さまざまなタイプのデータソースからDTSにデータを出荷してから、宛先データベースにデータを同期できるデータ出荷機能を提供します。 これにより、より多くの種類のデータソースを使用できます。
シナリオ
次のシナリオでデータ配布機能を使用できます。
DTSでサポートされていないデータベース (別の中国のベンダーが提供するデータベースなど) のデータを同期する場合。
同期するデータは、ログデータまたは特殊なタイプのデータです。
データベースアカウントやパスワードの機密性などのセキュリティ上の理由により、ソースデータベースをDTSに直接接続することはできません。
前提条件
データを受信するターゲットデータベースインスタンスが作成されます。 AnalyticDB for PostgreSQLインスタンスのみがサポートされています。 詳細については、「インスタンスの作成」をご参照ください。
データを受信するために、ターゲットAnalyticDB for PostgreSQLインスタンスにデータベースとスキーマが作成されます。 この例では、dts_delivery_testスキーマが作成されています。 詳細については、「SQLを使用してベクターデータをインポートする」トピックの「データのインポート」セクションをご参照ください。
ソースデータベースのアクセス方法パラメーターをExpress Connect、VPN Gateway、または Smart Access Gatewayに設定した場合、DTSがVPNゲートウェイ経由でデータベースにアクセスできるようにする必要があります。 詳細については、「VPN Gatewayを使用したデータセンターのDTSへの接続」をご参照ください。
使用上の注意
データ送信SDKを使用してデータソースからDTSにデータを送信する場合は、エンコード機能が必要です。
移行先のAnalyticDB for PostgreSQLインスタンスのスキーマ名は、データオブジェクトの設定をドロップ ステップで指定されたデータベース名と、データ配布SDKのdbNameパラメーターの値と同じである必要があります。 そうしないと、宛先データベースがデータの受信に失敗する可能性があります。
データ配布インスタンスの作成後、インスタンスのシャード数を変更することはできません。
データシッピングインスタンスが作成された後、データシッピングSDKを使用して、できるだけ早い機会にデータを発送する必要があります。 そうしないと、増分データを収集できず、インスタンスが失敗します。
課金ルール
詳細については、「課金の概要」をご参照ください。
データ配布インスタンスの作成
[データ同期タスク] ページに移動します。
データ管理 (DMS) コンソールにログインします。
上部のナビゲーションバーで、DTSをクリックします。
左側のナビゲーションウィンドウで、を選択します。
説明操作は、DMSコンソールのモードとレイアウトによって異なります。 詳細については、「シンプルモード」および「DMSコンソールのレイアウトとスタイルのカスタマイズ」をご参照ください。
新しいDTSコンソールのデータ同期タスクページに行くこともできます 。
データ同期タスクの右側で、データ同期インスタンスが存在するリージョンを選択します。
説明新しいDTSコンソールを使用する場合は、上部のナビゲーションバーでデータ同期インスタンスが存在するリージョンを選択する必要があります。
[タスクの作成] をクリックします。 タスクの作成ウィザードで、ソースデータベースとターゲットデータベースを設定します。 下表にパラメーターを示します。
セクション
パラメーター
説明
非該当
タスク名
DTSタスクの名前。 タスク名は自動生成されます。 タスクを簡単に識別できるように、わかりやすい名前を指定することをお勧めします。 一意のタスク名を指定する必要はありません。
移行元データベース
既存のDMSデータベースインスタンスの選択
既存のデータベースインスタンスは選択しないでください。 データ配布タスクのデータベースパラメーターを手動で設定する必要があります。
データベースタイプ
移行元ディスクのタイプを設定します。 [データ配送] を選択します。
アクセス方法
ソースデータベースのアクセス方法。 この例では、パブリック IP アドレス が選択されています。
説明Express Connect、VPN Gateway、または Smart Access Gatewayを選択した場合、使用するVPNゲートウェイのVPCおよびvSwitchパラメーターも設定する必要があります。
インスタンスのリージョン
ソースデータベースが存在するリージョン。
説明ソースデータベースが存在するリージョンがドロップダウンリストに表示されない場合は、ソースデータベースに地理的に最も近いリージョンを選択します。
移行先データベース
既存のDMSデータベースインスタンスの選択
使用するデータベースインスタンス。 ビジネス要件に基づいて、既存のインスタンスを使用するかどうかを選択できます。
既存のインスタンスを選択すると、DTSはデータベースのパラメーターを自動的に入力します。
既存のインスタンスを選択しない場合は、次のデータベース情報を設定する必要があります。
データベースタイプ
ターゲットデータベースのタイプ。 AnalyticDB for PostgreSQL を選択します。
アクセス方法
ターゲットデータベースのアクセス方法。 Alibaba Cloud インスタンス を選択します。
インスタンスのリージョン
移行先のAnalyticDB for PostgreSQLインスタンスが存在するリージョン。
インスタンス ID
移行先のAnalyticDB for PostgreSQLインスタンスのID。
データベース名
ターゲットAnalyticDB for PostgreSQLインスタンスでデータを受信するために使用されるデータベースの名前。
データベースアカウント
移行先のAnalyticDB for PostgreSQLインスタンスのデータベースアカウント。 アカウントには、ターゲットデータベースに対する読み取りおよび書き込み権限が必要です。 データベースアカウントの作成方法の詳細については、「データベースアカウントの作成」をご参照ください。
データベースのパスワード
データベースインスタンスへのアクセスに使用されるパスワード。
ページの下部で、接続性をテストして続行をクリックします。
ソースまたはターゲットデータベースが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デフォルトポリシーが選択されています。 他のオプションを選択して、オブジェクト名の大文字化をソースまたはターゲットデータベースの大文字化と一致させることができます。 詳細については、「ターゲットインスタンスのオブジェクト名の大文字化の指定」をご参照ください。
データオブジェクトの設定をドロップ
ライブラリの追加 をクリックします。 新しいデータベース ダイアログボックスで、ソースデータベースの名前を入力します。
重要ソースデータベースの名前は、ターゲットAnalyticDB for PostgreSQLインスタンスのスキーマ名と同じである必要があります。 この例では、dts_delivery_testを入力します。
リストにデータベースが表示され、新しいデータベースを追加する場合は、既存のデータベースの右側にある [追加] をクリックします。
[OK] をクリックします。
追加したデータベースの左側にあるアイコンをクリックして、データベースリストを表示します。
[テーブル] の右側にある テーブルの追加 をクリックします。 テーブルの追加 ダイアログボックスで、テーブル名を入力します。
重要ソースデータベースのテーブル名は、データ配布SDKで指定されているtableNameパラメーターと一致している必要があります。 この例では、tab1、tab2、およびtab3が入力されます。 詳細については、このトピックの「SDKを使用してデータをDTSに送信する」セクションで説明されているパラメーターをご参照ください。
[OK] をクリックします。
オプションです。 テーブル名と列名のマッピングを設定します。
作成したテーブルの右側にある [編集] をクリックします。
テーブル名のマッピングを設定します。
[テーブル名] パラメーターを変更します。
列名のマッピングを設定します。
すべてのテーブルを同期 をクリアし、[列名] および [マップ列名] パラメーターを変更します。
重要[列名] および [マップ列名] パラメーターは、データ配布SDKと一緒に使用する必要があります。 Column Nameパラメーターの値は、FakeSource.javaファイルのcreateFieldメソッドのnameです。 [Map column name] パラメーターの値は、移行先のAnalyticDB for PostgreSQLインスタンスの列の名前です。
ボタンをクリックして列を追加します。
設定が完了したら、[OK] をクリックします。
説明上記の手順を繰り返して、ビジネス要件に基づいてデータベースまたはテーブルを追加、編集、または削除できます。
次へ:詳細設定 をクリックして詳細設定を設定します。 下表にパラメーターを示します。
パラメーター
説明
タスクのスケジュールに使用する専用クラスターの選択
デフォルトでは、DTSはタスクを共有クラスターにスケジュールします。 このパラメーターを設定する必要はありません。 指定した仕様の専用クラスターを購入してDTSタスクを実行することもできます。 詳細については、「DTS専用クラスターとは 」をご参照ください。
アラートの設定
データ同期タスクのアラートを設定するかどうかを指定します。 タスクが失敗するか、同期レイテンシが指定されたしきい値を超えると、アラート送信先は通知を受け取ります。 有効な値:
No: アラートを有効にしません。
Yes: アラートを設定します。 この場合、アラートしきい値と アラート通知設定 詳細については、「モニタリングとアラートの設定」トピックの「DTSタスクを作成するときのモニタリングとアラートの設定」をご参照ください。
失敗した接続の再試行時間
失敗した接続のリトライ時間範囲。 データ同期タスクの開始後にソースデータベースまたはターゲットデータベースの接続に失敗した場合、DTSはその時間範囲内ですぐに接続を再試行します。 有効な値: 10 ~ 1440 単位は分です。 デフォルト値: 720 このパラメーターを30より大きい値に設定することを推奨します。 DTSが指定された時間範囲内にソースデータベースとターゲットデータベースに再接続すると、DTSはデータ同期タスクを再開します。 それ以外の場合、データ同期タスクは失敗します。
説明ソースまたはターゲットデータベースが同じである複数のデータ同期タスクに対して異なるリトライ時間範囲を指定した場合、最も短いリトライ時間範囲が優先されます。
DTSが接続を再試行すると、DTSインスタンスに対して課金されます。 業務要件に基づいて再試行時間範囲を指定することを推奨します。 ソースインスタンスとターゲットインスタンスがリリースされた後、できるだけ早くDTSインスタンスをリリースすることもできます。
移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。
その他の問題の再試行時間範囲。 たとえば、データ同期タスクの開始後にDDLまたはDML操作の実行に失敗した場合、DTSはその時間範囲内ですぐに操作を再試行します。 有効な値: 1 ~ 1440 単位は分です。 デフォルト値は 10 です。 このパラメーターを10より大きい値に設定することを推奨します。 指定された時間範囲内で失敗した操作が正常に実行されると、DTSはデータ同期タスクを再開します。 それ以外の場合、データ同期タスクは失敗します。
重要移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。 パラメーターの値は、失敗した接続の再試行時間 パラメーターの値よりも小さくする必要があります。
増分同期率を制限するかどうか
増分データ同期のスロットリングを有効にするかどうかを指定します。 ビジネス要件に基づいて、増分データ同期のスロットリングを有効にできます。 スロットリングを設定するには、増分データ移行の RPSおよび増分データ移行の BPSパラメーターを設定する必要があります。 これにより、移行先データベースサーバーの負荷が軽減されます。
環境タグ
DTSインスタンスを識別するために使用される環境タグ。 ビジネス要件に基づいて環境タグを選択できます。
ETL の設定
抽出、変換、および読み込み (ETL) 機能を有効にするかどうかを指定します。 詳細については、「ETLとは何ですか?」をご参照ください。 有効な値:
Yes: ETL機能を設定します。 コードエディターでデータ処理ステートメントを入力できます。 詳細については、「データ移行またはデータ同期タスクでのETLの設定」をご参照ください。
No: ETL機能を設定しません。
タスク設定を保存し、事前チェックを実行します。
関連するAPI操作を呼び出してDTSタスクを設定するときに指定するパラメーターを表示するには、ポインターを 次:タスク設定の保存と事前チェック に移動し、OpenAPI パラメーターのプレビュー をクリックします。
パラメーターを表示または表示する必要がない場合は、ページ下部の 次:タスク設定の保存と事前チェック をクリックします。
説明データ同期タスクを開始する前に、DTSは事前チェックを実行します。 データ同期タスクは、タスクが事前チェックに合格した後にのみ開始できます。
データ同期タスクが事前チェックに失敗した場合は、失敗した各項目の横にある [詳細の表示] をクリックします。 チェック結果に基づいて原因を分析した後、問題のトラブルシューティングを行います。 次に、プレチェックを再実行します。
事前チェック中にアイテムに対してアラートがトリガーされた場合:
アラートアイテムを無視できない場合は、失敗したアイテムの横にある [詳細の表示] をクリックして、問題のトラブルシューティングを行います。 次に、もう一度プレチェックを実行します。
アラート項目を無視できる場合は、[アラート詳細の確認] をクリックします。 [詳細の表示] ダイアログボックスで、[無視] をクリックします。 表示されたメッセージボックスで、[OK] をクリックします。 次に、[再度事前チェック] をクリックして、事前チェックを再度実行します。 アラート項目を無視すると、データの不整合が発生し、ビジネスが潜在的なリスクにさらされる可能性があります。
成功率が100% になるまで待ちます。 次に、[次へ: インスタンスの購入] をクリックします。
[インスタンスの購入] ページで、データ同期インスタンスの課金方法とインスタンスクラスのパラメーターを設定します。 下表にパラメーターを示します。
カテゴリ
パラメーター
説明
新しいインスタンスクラス
Billing Method
サブスクリプション: インスタンスの作成時にサブスクリプションの料金を支払います。 サブスクリプションの課金方法は、長期使用の場合、従量課金の課金方法よりも費用対効果が高くなります。
従量課金: 従量課金インスタンスは1時間ごとに課金されます。 短期使用の場合は、従量課金の課金方法を選択することを推奨します。 従量課金インスタンスが不要になった場合は、インスタンスをリリースしてコストを削減できます。
シャードの数
ターゲットトピックのパーティション数。
重要インスタンスの作成後、インスタンスのシャード数を変更することはできません。 作業は慎重に行ってください。
リソースグループの設定
インスタンスが属するリソースグループ。 デフォルト値: Default resource group 詳細については、「リソース管理とは 」をご参照ください。
インスタンスクラス
DTSは、異なるパフォーマンスを提供するさまざまな同期仕様を提供します。 同期速度は、選択した同期仕様によって異なります。 ビジネス要件に基づいて同期仕様を選択できます。 詳細については、「データ同期インスタンスのインスタンスクラス」をご参照ください。
サブスクリプション期間
サブスクリプションの課金方法を選択した場合は、サブスクリプション期間と作成するインスタンスの数を設定します。 サブスクリプション期間は、1〜9か月、1年、2年、3年、または5年とすることができる。
説明このパラメーターは、サブスクリプション の課金方法を選択した場合にのみ使用できます。
データ伝送サービス (従量課金) サービス規約を読んで選択します。
[購入して開始] をクリックします。 表示されるダイアログボックスで、OK をクリックします。
タスクリストでタスクの進行状況を確認できます。
SDKを使用してデータをDTSに送信する
データ配布SDKを設定します。
IntelliJ IDEAなどのSDK開発ツールを開き、ビジネスプロジェクトを作成します。
作成したプロジェクトで、pom.xmlファイルを見つけます。
次の依存関係をpom.xmlファイルに追加します。
<dependency> <groupId>com.aliyun.dts.deliver</groupId> <artifactId>dts-deliver-client</artifactId> <version>1.0.0</version> </dependency>
説明データ配布SDKの最新バージョンは、dts-delivery-clientページで確認できます。
サンプルコードをダウンロードし、dts-delivery-testフォルダー内のDtsDeliverTest.javaファイルに基づいてサンプルコードを変更します。 詳細については、「dts-delivery-test」をご参照ください。
説明FakeSource.javaファイルのreadメソッドはデータソースの例を示し、createFieldメソッドのnameはソーステーブルの列名です。 実際の状況に基づいてエンコードを実行します。
データ同期タスク ページで、作成したデータ配布インスタンスのIDをクリックします。 インスタンスの詳細ページで、左側のウィンドウで 基本情報 をクリックして、データ配布SDKのパラメーターの値を取得します。 下表に、各パラメーターを説明します。
パラメーター
説明
パラメータ値を取得するメソッド
ip: ポート
データ配布インスタンスのエンドポイント。
[配送チャネル情報] セクションで、パブリックエンドポイント または VPC エンドポイント パラメーターの右側にある コピー をクリックします。
重要ソースデータベースがデータシッピングインスタンスのVPCにある場合にのみ、VPC エンドポイントを使用できます。
ak
データ配布インスタンスが属するアカウントのAccessKey IDとAccessKey secret。
詳細については、「AccessKeyペアの作成」および「RAMユーザーのAccessKeyペアに関する情報の表示」をご参照ください。
秘密
dts_job_id
説明DTS_JOB_ID.getKey() に入力する情報。
データ配布インスタンスのタスクID。
重要データ配布インスタンスのIDは入力しないでください。
DescribeDtsJobs を呼び出して、タスクIDを照会できます。
説明Shipped Topicパラメーターの値を取得し、dts_job_idパラメーターを値の _vpc_ と _data_delivery_ の間のフィールドに設定します。 たとえば、[出荷済みトピック] パラメーターの値がcn_hangzhou_vpc_cxti86dc11z ***_data_delivery_version2の場合、dts_job_idパラメーターをcxti86dc11z *** に設定します。
トピック
データ配布インスタンスの宛先トピック。
[出荷チャネル情報] セクションで、[出荷済みトピック] パラメーターの右側にある コピー をクリックします。
パーティション
ターゲットトピック内のシャードの数。
[配送チャネル情報] セクションで、宛先トピックのシャード数を表示します。
region
データ配布インスタンスが存在するリージョン。
[配送チャネル情報] セクションで、[インスタンスリージョン] パラメーターの値を表示します。
dbName
ソースデータベースの名前。 ソースデータベースの名前は、ターゲットAnalyticDB for PostgreSQLインスタンスのスキーマ名と同じである必要があります。
この例では、dts_delivery_testを入力します。
tableName
ソーステーブルの名前です。 ソーステーブルの名前は、データオブジェクトの設定をドロップ ステップで指定したテーブル名と同じである必要があります。
この例では、tab1、tab2、およびtab3が入力されます。
パラメーターを設定したら、現在の時刻を記録し、データ配布SDKを開始します。
データ配布インスタンスの現在のオフセットを変更します。 詳細については、「データ同期または移行インスタンスの現在のオフセットの変更」をご参照ください。
説明デフォルトでは、データシッピングインスタンスの現在のオフセットは、増分書き込みモジュールの実行が開始された時点です。 現在のオフセットを、データ配布SDKの実行を開始する時点に変更する必要があります。
ターゲットデータベースに同期されたデータを表示します。