Data Transmission Service (DTS) を使用して、PolarDB-X 1.0 インスタンスから DataHub プロジェクトへ増分データを同期し、リアルタイムのデータ処理と分析を行います。
前提条件
開始する前に、以下を確認してください。
同期されたデータを受信するプロジェクトが作成された、アクティブ化された DataHub インスタンスがあること。「DataHub の開始」および「プロジェクトの管理」をご参照ください。
ターゲット DataHub プロジェクトに、ソース PolarDB-X 1.0 インスタンスのデータ総量よりも十分なストレージスペースがあること。
制限事項
DTS は、ソースデータベースからターゲットデータベースへ外部キーを同期しません。ソースでのカスケード削除操作はターゲットに伝播されません。
サポートされている同期タイプ
増分データ同期とスキーマ同期のみがサポートされています。完全データ同期はサポートされていません。
同期オブジェクトとしてテーブルのみを選択できます。タスク開始後、DTS はソースデータベースに追加された列をターゲット DataHub プロジェクトに同期しません。
ソースデータベースの制約
テーブルにはプライマリキーまたは一意制約が必要であり、すべてのフィールドは一意である必要があります。一意制約のみを持つテーブルはスキーマ同期をサポートしていません。プライマリキー制約を持つテーブルを使用してください。セカンダリインデックスを持つテーブルは同期できません。
同期オブジェクトとしてテーブルを選択し、ターゲットでテーブルまたは列の名前を変更する場合、単一のタスクは最大 5,000 テーブルをサポートします。5,000 を超えるテーブルの場合は、複数のタスクを構成するか、データベース全体を同期してください。
PolarDB-X 1.0 インスタンスのストレージタイプは ApsaraDB RDS for MySQL (カスタムまたは購入済みインスタンス) である必要があります。PolarDB for MySQL はサポートされていません。
PolarDB-X 1.0 ストレージリソースは、水平分割 (データベースとテーブル) のみをサポートします。垂直分割はサポートされていません。
PolarDB-X 1.0 コンピューティングレイヤーの読み取り専用インスタンスはサポートされていません。
バイナリログの要件
PolarDB-X 1.0 インスタンスにアタッチされた ApsaraDB RDS for MySQL インスタンスのバイナリログには、以下の要件が適用されます。
バイナリロギングを有効にし、
binlog_row_imageパラメーターをfullに設定する必要があります。そうしないと、事前チェックが失敗し、タスクを開始できません。増分データ同期の場合、バイナリログは少なくとも 24 時間保持する必要があります。
完全データ同期と増分データ同期の場合、バイナリログは少なくとも 7 日間保持する必要があります。
バイナリログが必要な期間保持されない場合、DTS はそれらを取得できず、タスクの失敗やデータ損失を引き起こす可能性があります。完全データ同期が完了した後、保持期間を 24 時間以上に短縮できます。上記の要件に従ってバイナリログの保持期間を設定してください。そうしないと、DTS の Service Level Agreement (SLA) に記載されているサービス信頼性とパフォーマンスは達成できません。
操作上の制限
データ同期中:
ソースインスタンス (アタッチされた ApsaraDB RDS for MySQL インスタンスを含む) をスケールしたり、論理データベースまたはテーブルの物理データベースのディストリビューションを変更したりしないでください。
ホットテーブルの移行、シャードキーの変更、またはソースインスタンスでのオンライン DDL 操作を実行しないでください。これを行うと、タスクの失敗やデータの不整合が発生します。
同期オブジェクトに対して DDL 操作を実行するために gh-ost または pt-online-schema-change を使用しないでください。
DTS を介してのみターゲットデータベースにデータを書き込んでください。他のツールを使用してターゲットに書き込むと、データの不整合が発生し、DMS がオンライン DDL 操作を実行するときにデータ損失が発生する可能性があります。
同期中に PolarDB-X 1.0 インスタンスのネットワークタイプを変更した場合は、後でタスク構成のネットワーク接続情報を更新してください。
データを同期する前に、データ同期がソースデータベースとターゲットデータベースのパフォーマンスに与える影響を評価してください。オフピーク時間中にデータを同期することをお勧めします。
課金
| 同期タイプ | 料金 |
|---|---|
| スキーマ同期と完全データ同期 | 無料 |
| 増分データ同期 | 有料です。詳細については、「課金概要」をご参照ください。 |
サポートされている同期トポロジ
DTS は、このシナリオで以下の単方向同期トポロジをサポートしています。
1対1
1対多
カスケード
多対1
サポートされているトポロジの完全なリストについては、「同期トポロジ」をご参照ください。
同期可能な SQL 操作
| 操作タイプ | SQL ステートメント |
|---|---|
| DML | INSERT, UPDATE, DELETE |
| DDL | ADD COLUMN |
必要な権限
| データベース | 必要な権限 |
|---|---|
| ソース PolarDB-X 1.0 インスタンス | 同期対象のオブジェクトに対する読み取り権限が必要です。詳細については、「アカウントの管理」をご参照ください。 |
同期タスクの作成
ステップ 1: データ同期タスクページへの移動
Data Management (DMS) コンソールにログインします。
上部ナビゲーションバーで、[Data + AI] をクリックします。
左側のナビゲーションウィンドウで、DTS (DTS) > データ同期 を選択します。
ナビゲーション手順は、DMS コンソールモードとレイアウトによって異なる場合があります。詳細については、「シンプルモード」および「DMS コンソールのレイアウトとスタイルのカスタマイズ」をご参照ください。または、新しい DTS コンソールのデータ同期タスクページに直接移動してください。
ステップ 2: ソースデータベースとターゲットデータベースの設定
データ同期インスタンスが存在するリージョンを選択します。
新しい DTS コンソールでは、代わりに上部のナビゲーションバーでリージョンを選択します。
[タスクの作成] をクリックします。ウィザードで、以下のパラメーターを設定します。
タスク設定
| パラメーター | 説明 |
|---|---|
| タスク名 | DTS タスクの名前。DTS は自動的に名前を生成します。タスクを識別しやすくするために、わかりやすい名前を指定してください。名前は一意である必要はありません。 |
ソースデータベース
| パラメーター | 説明 |
|---|---|
| DMS データベースインスタンスの選択 | 既存のデータベースインスタンスを選択してパラメーターを自動入力するか、データベースを手動で設定します。 |
| データベース タイプ | PolarDB-X 1.0 を選択します。 |
| アクセス方法 | Alibaba Cloud インスタンス を選択します。 |
| インスタンスのリージョン | ソース PolarDB-X 1.0 インスタンスが存在するリージョン。 |
| Alibaba Cloud アカウント間でのデータレプリケーション | いいえソースとターゲットが同じ Alibaba Cloud アカウントにある場合は、 を選択します。 |
| インスタンス ID | ソース PolarDB-X 1.0 インスタンスの ID。 |
| データベースアカウント | ソースインスタンスのデータベースアカウント。必要な権限については、「必要な権限」セクションをご参照ください。 |
| データベースパスワード | データベースアカウントのパスワード。 |
ターゲットデータベース
| パラメーター | 説明 |
|---|---|
| DMS データベースインスタンスの選択 | 既存のデータベースインスタンスを選択してパラメーターを自動入力するか、データベースを手動で設定します。 |
| データベースタイプ | [DataHub] を選択します。 |
| アクセス方法 | [Alibaba Cloud インスタンス] を選択します。 |
| インスタンスリージョン | ターゲット DataHub プロジェクトが存在するリージョン。 |
| プロジェクト | ターゲット DataHub プロジェクトの名前。 |
ステップ 3: 接続性のテストと続行
[接続性のテストと続行] をクリックします。
DTS は、そのサーバー CIDR ブロックを Alibaba Cloud データベースインスタンス (ApsaraDB RDS for MySQL や ApsaraDB for MongoDB など) のホワイトリストに自動的に追加します。Elastic Compute Service (ECS) インスタンス上の自己管理データベースの場合、DTS はその CIDR ブロックを ECS セキュリティグループルールに追加します。ECS インスタンスがデータベースに到達できることを確認してください。複数の ECS インスタンス上のデータベースの場合、DTS CIDR ブロックを各インスタンスのセキュリティグループルールに手動で追加してください。オンプレミスまたはサードパーティのクラウドデータベースの場合、DTS CIDR ブロックをデータベースのホワイトリストに手動で追加してください。CIDR ブロックの完全なリストについては、「DTS サーバーの CIDR ブロックの追加」をご参照ください。
DTS CIDR ブロックをデータベースのホワイトリストまたは ECS セキュリティグループに追加すると、セキュリティリスクが発生します。DTS を使用する前に、強力な認証情報の使用、公開ポートの制限、API 呼び出しの認証、ホワイトリストとセキュリティグループルールの定期的な確認、Express Connect、VPN Gateway、または Smart Access Gateway を介した DTS とデータベースの接続など、予防措置を講じてください。
ステップ 4: オブジェクトと設定の構成
基本設定
| パラメーター | 説明 |
|---|---|
| 同期タイプ | 増分データ同期 がデフォルトで選択されています。スキーマ同期 のみを選択することもできます。このソースと送信先の組み合わせでは、フルデータ同期 は利用できません。スキーマ同期中、DTS は選択されたオブジェクト(テーブルなど)のスキーマを送信先の DataHub プロジェクトに同期します。 |
| 競合テーブルの処理モード | 事前チェックしてエラーを報告(デフォルト):送信先にソースと同じ名前のテーブルが存在するかどうかをチェックします。同名のテーブルが存在する場合、事前チェックは失敗し、タスクを開始できません。競合を回避するには、オブジェクト名マッピング機能を使用して送信先のテーブル名を変更してください。詳細については、「オブジェクト名のマッピング」をご参照ください。エラーを無視して続行:同名テーブルの事前チェックをスキップします。 警告 このオプションを選択すると、データの不整合が発生する可能性があります。スキーマが一致しており、送信先に同じプライマリキーまたは一意キーを持つレコードが存在する場合、フル同期中は送信先のレコードが保持され、増分同期中は送信先のレコードが上書きされます。スキーマが異なる場合、初期化が失敗するか、一部のカラムのみが同期されることがあります。 |
| 追加カラムの命名規則 | DataHub プロジェクトへの同期中に、DTS は送信先トピックに追加カラムを追加します。これらのカラム名がトピック内の既存カラムと競合する場合、同期は失敗します。要件に応じて、これを 新規ルール または 以前のルール に設定してください。この設定を変更する前に、追加カラムと既存カラムの間に名前の競合がないことを確認してください。詳細については、「追加カラムの命名規則の変更」をご参照ください。 |
| 送信先インスタンスにおけるオブジェクト名の大文字・小文字の扱い | 送信先におけるデータベース名、テーブル名、カラム名の大文字・小文字のポリシーです。デフォルト:DTS デフォルトポリシー宛先インスタンスにおけるオブジェクト名の大文字小文字の指定。詳細については、「」をご参照ください。 |
| ソースオブジェクト | 1 つ以上のオブジェクトを選択し、 |
| 選択済みオブジェクト | 送信先で単一のオブジェクトの名前を変更するには、そのオブジェクトを右クリックします。複数のオブジェクトの名前を一度に変更するには、右上にある 一括編集オブジェクト名のマップ をクリックします。詳細については、「」をご参照ください。WHERE 条件を使用して行をフィルターするには、オブジェクトを右クリックして条件を指定します。詳細については、「フィルター条件の指定」をご参照ください。 |
詳細設定
| パラメーター | 説明 |
|---|---|
| モニタリングとアラート | 同期タスクのアラートを設定します。[はい] を選択すると、アラートのしきい値や通知先連絡先を設定できます。タスクが失敗した場合や同期遅延がしきい値を超えた場合にアラートがトリガーされます。詳細については、「モニタリングとアラートの設定」をご参照ください。[いいえ] を選択すると、アラート機能を無効化します。 |
| 接続失敗時のリトライ時間 | タスク開始後に DTS が接続失敗をリトライする時間を設定します。有効な値:10~1440 分。デフォルト値:720 分。この値は少なくとも 30 分以上に設定してください。DTS がこの時間枠内で再接続できた場合はタスクが再開されますが、それ以外の場合はタスクが失敗します。複数のタスクで同じソースまたは送信先を共有している場合、最も短いリトライ時間枠が適用されます。DTS の課金はリトライ中も継続されるため、要件に基づいて適切な値を設定し、不要になったインスタンスは速やかにリリースしてください。 |
| ETL の設定 | [はい] を選択すると、抽出・変換・書き出し (ETL) 機能を有効化し、コードエディタにデータ処理文を入力できます。[いいえ] を選択すると、ETL をスキップします。詳細については、「ETL とは」および「データ同期タスクでの ETL の設定」をご参照ください。 |
ステップ 5: 設定の保存と事前チェックの実行
このタスクの構成に対する OpenAPI パラメーターをプレビューするには、次へ: タスク設定の保存と事前チェック にマウスを合わせて、[OpenAPI パラメーターのプレビュー] をクリックします。
[次へ:タスク設定の保存と事前チェック] をクリックします。
DTS はタスクを開始する前に事前チェックを実行します。事前チェックが失敗した場合は、各失敗項目の横にある [詳細の表示] をクリックし、問題を解決してから、再度事前チェックを実行してください。事前チェックのアラートを無視できる場合は、[アラートの詳細を確認] > [無視] > [OK] をクリックし、その後 [再事前チェック] をクリックします。アラートを無視すると、データの不整合が発生する可能性があります。
ステップ 6: 同期インスタンスの購入
「成功率」が[100%]に達するまで待ち、その後[次へ: インスタンスの購入]をクリックします。
購入ページで、以下のパラメーターを設定します。
| パラメーター | 説明 |
|---|---|
| 課金方法 | サブスクリプション: 固定期間の前払い。長期利用に費用対効果が高いです。従量課金: 時間単位で課金されます。短期利用に適しています。不要になった場合はインスタンスをリリースして課金を停止してください。 |
| リソースグループ設定 | 同期インスタンスのリソースグループ。 デフォルト: [デフォルトリソースグループ]。 「Resource Management とは」をご参照ください。 |
| インスタンスクラス | 同期速度を決定します。「データ同期インスタンスのインスタンスクラス」をご参照ください。 |
| サブスクリプション期間 | [サブスクリプション] 課金方法でのみ利用可能です。オプション: 1~9 か月、または 1、2、3、5 年。 |
読み取り、[Data Transmission Service(従量課金)サービス利用規約] を選択してください。
[今すぐ購入して開始] をクリックし、確認ダイアログで [OK] をクリックします。
タスクはタスクリストに表示されます。DTS が PolarDB-X 1.0 インスタンスからデータを同期すると、データはアタッチされた ApsaraDB RDS for MySQL インスタンス全体に分散され、DTS は各インスタンスに対してサブタスクを実行します。各サブタスクの実行状態は [タスクトポロジ] で確認できます。
次のステップ
タスクリストから同期タスクをモニタリングし、期待どおりに実行されていることを確認します。
送信先 DataHub プロジェクトで同期されたデータを表示および管理するには、「プロジェクトの管理」をご参照ください。
タスク開始後にアラート設定を調整するには、「モニタリングとアラートを構成」をご参照ください。