Alibaba Cloud DataHub は、ストリーミングデータを処理するためのプラットフォームです。ストリーミングデータの公開、サブスクライブ、配信が可能で、ストリーミングデータに基づく分析やアプリケーションを簡単に構築できます。Data Transmission Service (DTS) を使用して、RDS for MySQL インスタンスから DataHub にデータを同期できます。これにより、ストリームコンピューティングなどのビッグデータプロダクトを使用して、リアルタイムのデータ分析を迅速に実行できます。
前提条件
ソース RDS for MySQL インスタンスが作成されていること。
説明ソース RDS for MySQL インスタンスの作成方法の詳細については、「RDS for MySQL インスタンスの作成」をご参照ください。
サポートされているバージョンの詳細については、「データ同期シナリオの概要」をご参照ください。
DataHub サービスが有効化され、同期データを受信するためのプロジェクトが作成されていること。詳細については、「クイックスタート」および「プロジェクトの管理」をご参照ください。
注意
DTS は、ソースデータベースからターゲットデータベースに外部キーを同期しません。したがって、ソースデータベースでのカスケードおよび削除操作は、ターゲットデータベースに同期されません。
タイプ | 説明 |
ソースデータベースの制限 |
|
その他の制限 |
|
特殊なケース |
|
サポートされている同期トポロジ
一方向の 1 対 1 同期。
一方向の 1 対多同期。
一方向の多対 1 同期。
サポートされている同期トポロジの詳細については、「データ同期トポロジ」をご参照ください。
サポートされている SQL 操作
操作タイプ | SQL 操作 |
DML | INSERT, UPDATE, DELETE |
DDL | ADD COLUMN |
手順
次のいずれかの方法を使用してデータ同期ページに移動し、データ同期インスタンスが存在するリージョンを選択します。
DTS コンソール
DTS コンソールにログインします。
左側のナビゲーションウィンドウで、データ同期 をクリックします。
ページの左上隅で、データ同期タスクが存在するリージョンを選択します。
DMS コンソール
説明実際の操作は、DMS コンソールのモードとレイアウトによって異なる場合があります。詳細については、「シンプルモード」および「DMS コンソールのレイアウトとスタイルをカスタマイズする」をご参照ください。
DMS コンソールにログインします。
上部のナビゲーションバーで、[Data + AI] にポインターを合わせ、 を選択します。
データ同期タスク の右側にあるドロップダウンリストから、データ同期インスタンスが存在するリージョンを選択します。
タスクの作成 をクリックして、タスク構成ページに移動します。
ソースデータベースとターゲットデータベースを構成します。次の表にパラメーターを示します。
警告ソースデータベースとターゲットデータベースを構成した後、ページに表示される [制限] を読むことをお勧めします。そうしないと、タスクが失敗したり、データが不整合になったりする可能性があります。
カテゴリ
構成
説明
N/A
タスク名
DTS タスクの名前。DTS は自動的にタスク名を生成します。タスクを簡単に識別できるわかりやすい名前を指定することをお勧めします。一意のタスク名を指定する必要はありません。
ソースデータベース
既存のDMSデータベースインスタンスの選択
使用するデータベース。ビジネス要件に基づいて、既存のデータベースを使用するかどうかを選択できます。
既存のデータベースを選択すると、DTS はデータベースのパラメーターを自動的に入力します。
既存のデータベースを選択しない場合は、次のデータベース情報を構成する必要があります。
データベースタイプ
[MySQL] を選択します。
アクセス方法
[クラウドインスタンス] を選択します。
インスタンスリージョン
ソース RDS for MySQL インスタンスが存在するリージョンを選択します。
Alibaba Cloudアカウント全体でのデータの複製
この例では、同じ Alibaba Cloud アカウント内でデータを移行する方法を示します。[いいえ] を選択します。
RDS インスタンス ID
ソース RDS for MySQL インスタンスの ID を選択します。
データベースアカウント
ソース RDS for MySQL インスタンスのデータベースアカウントを入力します。アカウントには、同期するオブジェクトに対する読み取り権限が必要です。
データベースパスワード
データベースへのアクセスに使用されるパスワード。
暗号化
データベースへの接続を暗号化するかどうかを指定します。ビジネス要件に基づいて、[非暗号化] または [SSL 暗号化] を選択できます。このパラメーターを [SSL 暗号化] に設定する場合は、DTS タスクを構成する前に、ApsaraDB RDS for MySQL インスタンスの SSL 暗号化を有効にする必要があります。詳細については、「クラウド証明書を使用して SSL 暗号化を有効にする」をご参照ください。
宛先データベース
既存のDMSデータベースインスタンスの選択
使用するデータベース。ビジネス要件に基づいて、既存のデータベースを使用するかどうかを選択できます。
既存のデータベースを選択すると、DTS はデータベースのパラメーターを自動的に入力します。
既存のデータベースを選択しない場合は、次のデータベース情報を構成する必要があります。
データベースタイプ
[DataHub] を選択します。
アクセス方法
[クラウドインスタンス] を選択します。
インスタンスリージョン
DataHub インスタンスが存在するリージョンを選択します。
プロジェクト
宛先 DataHub の [プロジェクト] を選択します。
ページの下部にある 接続をテストして続行 をクリックします。
説明DTS サーバーの CIDR ブロックが、ソースおよびターゲットデータベースのセキュリティ設定に自動または手動で追加され、DTS サーバーからのアクセスが許可されることを確認してください。詳細については、「DTS サーバーの IP アドレスをホワイトリストに追加する」をご参照ください。
ソースまたはターゲットデータベースが自己管理データベースで、その アクセス方法 が Alibaba Cloud インスタンス に設定されていない場合は、DTS サーバーの CIDR ブロック ダイアログボックスで 接続テスト をクリックします。
同期するオブジェクトを構成します。
オブジェクト設定 ステップで、同期するオブジェクトを構成します。
構成
説明
同期タイプ
同期タイプ。デフォルトでは、[増分データ同期] が選択されています。[スキーマ同期] と [完全データ同期] も選択する必要があります。事前チェックが完了すると、DTS は選択したオブジェクトの既存データをソースデータベースから宛先クラスターに同期します。既存データは、後続の増分同期の基礎となります。
追加列の命名規則
DTS が DataHub にデータを同期するとき、宛先テーブルにいくつかの追加列を追加します。追加列の名前が宛先テーブルの既存の列の名前と競合する場合、データ同期タスクは失敗します。必要に応じて [新しいルール] または [古いルール] を選択します。
警告命名規則を選択する前に、追加列の名前が宛先テーブルの既存の列の名前と競合しないか確認してください。そうしないと、データ損失やタスクの失敗が発生する可能性があります。追加列のルールと定義の詳細については、「追加列の名前と定義」をご参照ください。
競合するテーブルの処理モード
エラーの事前チェックと報告: ターゲットデータベースにソースデータベースのテーブルと同じ名前のテーブルが含まれているかどうかをチェックします。ソースデータベースとターゲットデータベースに同じテーブル名のテーブルが含まれていない場合、事前チェックは合格します。それ以外の場合、事前チェック中にエラーが返され、データ同期タスクを開始できません。
説明ソースデータベースとターゲットデータベースに同じ名前のテーブルが含まれており、ターゲットデータベースのテーブルを削除または名前変更できない場合は、オブジェクト名マッピング機能を使用して、ターゲットデータベースに同期されるテーブルの名前を変更できます。詳細については、「オブジェクト名のマッピング」をご参照ください。
エラーを無視して続行: ソースデータベースとターゲットデータベースの同一テーブル名の事前チェックをスキップします。
警告エラーを無視して続行 を選択すると、データの不整合が発生し、ビジネスに潜在的なリスクが生じる可能性があります。
ソースデータベースとターゲットデータベースのスキーマが同じで、ターゲットデータベースのデータレコードがソースデータベースのデータレコードと同じプライマリキー値または一意キー値を持つ場合:
完全データ同期中、DTS はデータレコードをターゲットデータベースに同期しません。ターゲットデータベースの既存のデータレコードは保持されます。
増分データ同期中、DTS はデータレコードをターゲットデータベースに同期します。ターゲットデータベースの既存のデータレコードは上書きされます。
ソースデータベースとターゲットデータベースのスキーマが異なる場合、データの初期化に失敗する可能性があります。この場合、一部の列のみが同期されるか、データ同期インスタンスが失敗します。注意して進めてください。
宛先インスタンスでのオブジェクト名の大文字化
宛先インスタンスのデータベース名、テーブル名、列名の大文字/小文字。デフォルトでは、[DTS デフォルトポリシー] が選択されています。他のオプションを選択して、オブジェクト名の大文字/小文字がソースまたは宛先データベースのものと一致するようにすることができます。詳細については、「宛先インスタンスでのオブジェクト名の大文字/小文字を指定する」をご参照ください。
ソースオブジェクト
ソースオブジェクト セクションから 1 つ以上のオブジェクトを選択し、
アイコンをクリックしてオブジェクトを 選択中のオブジェクト セクションに追加します。説明同期するオブジェクトとしてテーブルを選択できます。
選択中のオブジェクト
宛先インスタンスに同期するオブジェクトの名前を変更するには、選択中のオブジェクト セクションでオブジェクトを右クリックします。詳細については、「オブジェクト名のマッピング」トピックの「単一オブジェクトの名前をマッピングする」セクションをご参照ください。
一度に複数のオブジェクトの名前を変更するには、選択中のオブジェクト セクションの右上隅にある 一括編集 をクリックします。詳細については、「オブジェクト名のマッピング」トピックの「一度に複数のオブジェクト名をマッピングする」セクションをご参照ください。
説明WHERE 条件を指定してデータをフィルタリングするには、選択中のオブジェクト ボックスでテーブルを右クリックし、表示されるダイアログボックスでフィルター条件を設定します。詳細については、「フィルター条件の設定」をご参照ください。
選択中のオブジェクト ボックスでテーブルを右クリックします。表示されるダイアログボックスで、すべてのテーブルを同期 の選択を解除します。その後、パーティショニングに使用されるキーである Shardkey を設定できます。
次へ:詳細設定 をクリックして詳細設定を構成します。
構成
説明
タスクのスケジュールに使用する専用クラスターの選択
デフォルトでは、専用クラスターを指定しない場合、DTS はタスクを共有クラスターにスケジュールします。データ同期インスタンスの安定性を向上させたい場合は、専用クラスターを購入してください。詳細については、「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 パラメーターを構成する必要があります。これにより、ターゲットデータベースサーバーの負荷が軽減されます。
環境タグ
要件に基づいてインスタンスを識別するために環境タグを選択できます。この例では、タグを選択する必要はありません。
順方向および逆方向タスクのハートビートテーブル SQL を削除
DTS インスタンスの実行中にハートビートテーブルに対する SQL 操作をソースデータベースに書き込むかどうかを指定します。有効な値:
[はい]: ハートビートテーブルに対する SQL 操作を書き込みません。この場合、DTS インスタンスの遅延が表示されることがあります。
[いいえ]: ハートビートテーブルに対する SQL 操作を書き込みます。この場合、ソースデータベースの物理バックアップやクローニングなどの機能が影響を受ける可能性があります。
ETL の設定
抽出・変換・書き出し (ETL) 機能を有効にするかどうかを指定します。詳細については、「ETL とは」をご参照ください。有効な値:
[はい]: ETL 機能を構成します。コードエディタにデータ処理文を入力できます。詳細については、「データ移行またはデータ同期タスクで ETL を構成する」をご参照ください。
[いいえ]: ETL 機能を構成しません。
監視アラート
データ同期インスタンスのアラートを構成するかどうかを指定します。タスクが失敗した場合、または同期遅延が指定されたしきい値を超えた場合、アラート連絡先は通知を受け取ります。有効な値:
[いいえ]: アラートを有効にしません。
[はい]: アラートを構成します。この場合、アラートのしきい値と アラート通知設定も構成する必要があります。詳細については、「監視とアラートの構成」トピックの「DTS タスク作成時の監視とアラートの構成」セクションをご参照ください。
タスク設定を保存し、事前チェックを実行します。
関連する API 操作を呼び出して DTS タスクを構成するときに指定するパラメーターを表示するには、次:タスク設定の保存と事前チェック にポインターを合わせ、OpenAPI パラメーターのプレビュー をクリックします。
パラメーターを表示する必要がない場合、または表示した場合は、ページの下部にある 次:タスク設定の保存と事前チェック をクリックします。
説明データ同期タスクを開始する前に、DTS は事前チェックを実行します。タスクが事前チェックに合格した後にのみ、データ同期タスクを開始できます。
データ同期タスクが事前チェックに失敗した場合は、失敗した各項目の横にある [詳細の表示] をクリックします。チェック結果に基づいて原因を分析した後、問題をトラブルシューティングします。その後、事前チェックを再実行します。
事前チェック中に項目のアラートがトリガーされた場合:
アラート項目を無視できない場合は、失敗した項目の横にある [詳細の表示] をクリックして問題をトラブルシューティングします。その後、再度事前チェックを実行します。
アラート項目を無視できる場合は、[アラート詳細の確認] をクリックします。[詳細の表示] ダイアログボックスで、[無視] をクリックします。表示されるメッセージで、[OK] をクリックします。次に、[再度事前チェック] をクリックして再度事前チェックを実行します。アラート項目を無視すると、データの不整合が発生し、ビジネスに潜在的なリスクが生じる可能性があります。
インスタンスを購入します。
[成功率] が [100%] になるまで待ってから、[次へ: インスタンスの購入] をクリックします。
[購入] ページで、データ同期タスクの課金方法とインスタンスクラスのパラメーターを構成します。次の表にパラメーターを示します。
セクション
パラメーター
説明
新しいインスタンスクラス
課金方法
サブスクリプション: データ同期インスタンスを作成するときにサブスクリプションの料金を支払います。サブスクリプション課金方法は、長期使用の場合、従量課金方法よりも費用対効果が高くなります。
従量課金: 従量課金インスタンスは時間単位で課金されます。従量課金方法は短期使用に適しています。従量課金データ同期インスタンスが不要になった場合は、インスタンスをリリースしてコストを削減できます。
リソースグループ設定
データ同期インスタンスが属するリソースグループ。デフォルト値: [デフォルトのリソースグループ]。詳細については、「Resource Management とは」をご参照ください。
インスタンスクラス
DTS は、同期速度が異なるインスタンスクラスを提供します。ビジネス要件に基づいてインスタンスクラスを選択できます。詳細については、「データ同期インスタンスのインスタンスクラス」をご参照ください。
サブスクリプション期間
サブスクリプション課金方法を選択した場合は、サブスクリプション期間と作成するデータ同期インスタンスの数を指定します。サブスクリプション期間は、1 ~ 9 か月、1 年、2 年、3 年、または 5 年にすることができます。
説明このパラメーターは、サブスクリプション 課金方法を選択した場合にのみ使用できます。
[Data Transmission Service (従量課金) サービス規約] を読んで選択します。
[購入して開始] をクリックします。表示されるダイアログボックスで、OK をクリックします。
タスクリストでタスクの進行状況を表示できます。
Topic スキーマ定義
DTS が DataHub トピックにデータ変更を同期するとき、変更されたデータに加えてメタデータを格納するために、トピックに追加の列を追加します。以下に例を示します。
この例では、ビジネスフィールドは id、name、および address です。追加列の命名規則の古いバージョンが使用されているため、DTS はビジネスフィールドに dts_ プレフィックスを追加します。

スキーマ定義:
古い追加列名 | 新しい追加列名 | データ型 | 説明 |
|
| String | 増分ログレコードの一意の ID。 説明
|
|
| String | 操作タイプ。有効な値:
|
|
| String | データベースのサーバー ID。 |
|
| String | データベース名。 |
|
| String | テーブル名。 |
|
| String | 操作のタイムスタンプ。バイナリログのタイムスタンプ (UTC 時間) です。 |
|
| String | すべての列の値が更新前の値であるかどうかを示します。有効な値: Y および N。 |
|
| String | すべての列の値が更新後の値であるかどうかを示します。有効な値: Y および N。 |
dts_before_flag と dts_after_flag に関する追加情報
増分ログレコードの dts_before_flag と dts_after_flag の値は、操作タイプによって異なります:
INSERT
INSERT 操作の場合、すべての列の値は新しく挿入された値であり、操作後の値です。したがって、
dts_before_flagの値は N で、dts_after_flagの値は Y です。以下に例を示します。
UPDATE
UPDATE 操作の場合、DTS は操作を 2 つの増分ログレコードに分割します。これらの 2 つのログレコードは、
dts_record_id、dts_operation_flag、およびdts_utc_timestampの値が同じです。最初の増分ログレコードには、更新前の値が含まれています。したがって、
dts_before_flagの値は Y で、dts_after_flagの値は N です。2 番目の増分ログレコードには、更新後の値が含まれています。したがって、dts_before_flagの値は N で、dts_after_flagの値は Y です。以下に例を示します。
DELETE
DELETE 操作の場合、増分ログには削除されたレコードの値が含まれます。したがって、
dts_before_flagの値は Y で、dts_after_flagの値は N です。以下に例を示します。