すべてのプロダクト
Search
ドキュメントセンター

Data Transmission Service:PolarDB for MySQL から Elasticsearch へのデータ同期

最終更新日:Feb 13, 2026

このトピックでは、Data Transmission Service (DTS) を使用して、PolarDB for MySQL クラスターから Elasticsearch インスタンスにデータを同期する方法について説明します。

前提条件

ターゲットリージョンに Elasticsearch インスタンスを作成済みであること。 このインスタンスのストレージ容量は、ソース PolarDB for MySQL クラスターのストレージ容量よりも大きい必要があります。 詳細については、「Alibaba Cloud Elasticsearch インスタンスの作成」をご参照ください。

説明
  • ソースデータベースとターゲットデータベースでサポートされているバージョンについては、「同期の概要」をご参照ください。

  • Elasticsearch インスタンスの仕様が異なると、サポートされるストレージ容量も異なります。

注意事項

タイプ

説明

ソースデータベースの制限

  • 同期するテーブルには、プライマリキーまたは一意制約が必要であり、フィールドは一意である必要があります。 そうでない場合、ターゲットデータベースに重複データが出現する可能性があります。

  • テーブルレベルでデータを同期し、列名のマッピングなどのテーブル編集が必要な場合、単一のデータ同期タスクでサポートされるテーブルは最大 1,000 です。 この制限を超えると、タスクの送信時にエラーが報告されます。 この場合、テーブルを複数の同期タスクに分割するか、データベース全体を同期するタスクを設定してください。

  • バイナリログ:

    • バイナリログを有効にして、loose_polar_log_bin パラメーターを ON に設定する必要があります。これを実行しない場合、事前チェック中にエラーが報告され、DTS インスタンスの起動に失敗します。バイナリログの有効化およびパラメーターの変更方法の詳細については、「バイナリログを有効化する」および「クラスターおよびノードのパラメーターを設定する」をご参照ください。

      説明

      PolarDB for MySQL クラスターのバイナリログを有効にすると、ストレージ容量が消費され、料金が発生します。

    • PolarDB for MySQL クラスターのバイナリログは、少なくとも 3 日間保持する必要があります。 7 日間保持することを推奨します。 そうしないと、DTS がバイナリログを取得できないため、DTS タスクが失敗する可能性があります。 極端な場合、これによりデータ不整合やデータ損失が発生する可能性があります。 必要な期間より短いバイナリログ保持期間に起因する問題は、DTS サービスレベルアグリーメント (SLA) の対象外です。

      説明

      PolarDB for MySQL クラスターのバイナリログの保持期間を設定する方法について詳しくは、「保持期間の変更」をご参照ください。

  • スキーマ同期または完全データ同期中に、データベースまたはテーブルのスキーマを変更する DDL 操作を実行しないでください。 そうしないと、同期タスクは失敗します。

    説明

    完全データ同期中、DTS はソースデータベースにクエリを実行します。 これにより、ソースデータベースでの DDL 操作をブロックする可能性のあるメタデータロックが作成されます。

その他の制限

  • ソース PolarDB for MySQL クラスターの読み取り専用ノードからデータを同期することはできません。

  • ソース PolarDB for MySQL クラスターから OSS 外部テーブルを同期することはできません。

  • DTS は、INDEX、PARTITION、VIEW、PROCEDURE、FUNCTION、TRIGGER、または FK オブジェクトの同期をサポートしていません。

  • 親子関係または Join フィールドタイプ を含む Elasticsearch インデックスにデータを同期することはできません。 これを行うと、タスクエラーやターゲットでのクエリ失敗が発生する可能性があります。

  • 初期完全データ同期中のデータベースインスタンスのプライマリ/セカンダリフェールオーバーはサポートされていません。 フェールオーバーが発生した場合は、速やかに同期タスクを再設定してください。

  • ソースデータベースのテーブルに列を追加するには、まず Elasticsearch インスタンスで対応するマッピングを変更します。 次に、ソースデータベースで DDL 操作を実行します。 最後に、同期タスクを一時停止して再起動します。

  • PolarDB for MySQLElasticsearch は異なるデータ型をサポートしているため、1 対 1 の型マッピングは不可能です。 スキーマ初期化中、DTS はターゲットデータベースでサポートされているデータ型に基づいて型をマッピングします。 詳細については、「スキーマ初期化のデータ型マッピング」をご参照ください。

  • データを同期する前に、ソースデータベースとターゲットデータベースのパフォーマンスを評価してください。 オフピーク時間にデータを同期することを推奨します。 そうしないと、初期完全データ同期がソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを消費し、データベースの負荷が増加する可能性があります。

  • 初期完全データ同期は同時 INSERT 操作を実行するため、ターゲットデータベースのテーブルに断片化が発生します。 その結果、初期完全データ同期が完了した後、ターゲットインスタンスのテーブルスペースはソースインスタンスのテーブルスペースよりも大きくなります。

  • テーブルレベルのデータ同期の場合、pt-online-schema-change などのツールを使用して、ソースデータベースの同期オブジェクトに対してオンライン DDL 操作を実行しないでください。 そうしないと、同期は失敗します。

  • テーブルレベルのデータ同期の場合、DTS からのデータ以外にターゲットデータベースにデータが書き込まれない場合は、Data Management (DMS) を使用してオンライン DDL 操作を実行できます。 詳細については、「テーブルをロックせずにスキーマを変更する」をご参照ください。

  • 同期中に DTS 以外のデータがターゲットデータベースに書き込まれると、ソースデータベースとターゲットデータベースの間でデータの不整合が発生する可能性があります。

  • Elasticsearch インスタンスの開発およびテスト仕様はサポートされていません。

  • タスクが失敗した場合、DTS サポートスタッフは 8 時間以内に復元を試みます。 復元中、タスクを再起動したり、パラメーターを調整したりすることがあります。

    説明

    DTS タスクパラメーターのみが変更され、データベースパラメーターは変更されません。 調整される可能性のあるパラメーターには、「インスタンスパラメーターの変更」に記載されているものが含まれます。

その他の注意事項

DTS は、バイナリログのオフセットを進めるために、ソースデータベースで定期的に CREATE DATABASE IF NOT EXISTS `test` コマンドを実行します。

課金

同期タイプ

料金

スキーマ同期と完全データ同期

無料です。

増分データ同期

課金されます。 詳細については、「課金の概要」をご参照ください。

サポートされる SQL 操作

操作タイプ

SQL 操作

DML

INSERT、UPDATE、DELETE

説明

UPDATE 文を使用してフィールドを削除することはできません。

データベースアカウントの権限

データベース

必要な権限

アカウントの作成と権限付与の方法

ソース PolarDB for MySQL クラスター

同期するオブジェクトに対する読み取り権限。

アカウントの作成」および「アカウント権限の変更」をご参照ください。

ターゲット Elasticsearch インスタンス

Elasticsearch インスタンスの作成時に設定したログイン名 (デフォルト:elastic) とパスワード。

データ型のマッピング

  • ソースデータベースと Elasticsearch インスタンスではサポートされているデータの型が異なるため、データの型を常に直接マッピングできるとは限りません。 初期スキーマ同期中に、DTS は宛先の Elasticsearch インスタンスがサポートする型に基づいてデータの型をマッピングします。 詳細については、「初期スキーマ同期のデータ型マッピング」をご参照ください。

    説明

    DTS はスキーマ移行中に mapping パラメーターを dynamic に設定しません。このパラメーターの動作は、ご利用の Elasticsearch インスタンスの設定によって異なります。ご利用のソースデータが JSON フォーマットの場合、テーブル内のすべての行で、同じキーの値が同じデータの型を持つようにしてください。そうしないと、DTS は同期エラーが発生する可能性があります。詳細については、「dynamic」をご参照ください。

  • 次の表に、Elasticsearch とリレーショナルデータベース間のマッピングを示します。

    Elasticsearch

    リレーショナルデータベース

    インデックス

    データベース

    タイプ

    テーブル

    ドキュメント

    フィールド

    マッピング

    データベーススキーマ

操作手順

  1. ターゲットリージョンの同期タスクリストページに移動します。 次の 2 つの方法のいずれかを使用できます。

    DTS コンソールから

    1. Data Transmission Service (DTS) コンソールにログインします。

    2. 左側のナビゲーションウィンドウで、データ同期 をクリックします。

    3. ページの左上隅で、同期インスタンスが配置されているリージョンを選択します。

    DMS コンソールから

    説明

    実際の操作は、DMS コンソールのモードとレイアウトによって異なる場合があります。 詳細については、「シンプルモード」および「DMS インターフェイスのレイアウトとスタイルをカスタマイズする」をご参照ください。

    1. Data Management (DMS) にログインします。

    2. トップメニューバーで、[データ + AI] > [Data Transmission (DTS)] > [データ同期] を選択します。

    3. データ同期タスク の右側で、同期インスタンスが配置されているリージョンを選択します。

  2. タスクの作成 をクリックして、タスク設定ページを開きます。

  3. ソースデータベースとターゲットデータベースを設定します。

    カテゴリ

    設定

    説明

    なし

    タスク名

    DTS は自動的にタスク名を生成します。 識別しやすいように、わかりやすい名前を指定することを推奨します。 名前は一意である必要はありません。

    移行元データベース

    既存の接続情報の選択

    • システムに追加された(新しく作成または保存された)データベースインスタンスを使用するには、ドロップダウンリストからデータベースインスタンスを選択します。データベース情報は自動的に設定されます。

      説明

      DMS コンソールでは、この設定項目は DMS データベースインスタンスの選択 という名称です。

    • データベースインスタンスをシステムに追加していない場合、または既に追加されているインスタンスを使用する必要がない場合は、次のデータベース情報を手動で設定します。

    データベースタイプ

    PolarDB for MySQL を選択します。

    アクセス方法

    Alibaba Cloud インスタンス を選択します。

    インスタンスのリージョン

    ソース PolarDB for MySQL クラスターが存在するリージョンを選択します。

    Alibaba Cloud アカウント間でデータを複製

    この例では、現在の Alibaba Cloud アカウントに属するデータベースインスタンスを使用します。 × を選択します。

    PolarDB クラスター ID

    ソース PolarDB for MySQL クラスターの ID を選択します。

    データベースアカウント

    ソース PolarDB for MySQL クラスターのデータベースアカウントを入力します。 権限要件については、「データベースアカウントの権限」をご参照ください。

    データベースのパスワード

    データベースアカウントに対応するパスワードを入力します。

    暗号化

    必要に応じて選択します。 SSL 暗号化の詳細については、「SSL 暗号化の設定」をご参照ください。

    移行先データベース

    既存の接続情報の選択

    • システムに追加された(新しく作成されたか、保存された)データベースインスタンスを使用するには、ドロップダウンリストからデータベースインスタンスを選択します。データベース情報は自動的に設定されます。

      説明

      DMS コンソールでは、この設定項目は DMS データベースインスタンスの選択 という名称です。

    • データベースインスタンスをシステムに追加していない場合、または既に追加されているインスタンスを使用する必要がない場合は、次のデータベース情報を手動で設定します。

    データベースタイプ

    [Elasticsearch] を選択します。

    アクセス方法

    Alibaba Cloud インスタンス を選択します。

    インスタンスのリージョン

    ターゲット Elasticsearch インスタンスが存在するリージョンを選択します。

    タイプ

    必要に応じて [クラスター] または [サーバーレス] を選択します。

    インスタンス ID

    ターゲット Elasticsearch インスタンスの ID を選択します。

    データベースアカウント

    Elasticsearch インスタンスのデフォルトのログイン名 elastic を入力します。

    データベースのパスワード

    データベースアカウントに対応するパスワードを入力します。

    暗号化

    必要に応じて HTTP または HTTPS を選択します。

  4. 設定が完了したら、ページ下部の 接続をテストして続行 をクリックします。

    説明
    • DTS サーバーからのアクセスを許可するために、DTS サーバーの IP アドレス CIDR ブロックがソースデータベースとターゲットデータベースのセキュリティ設定に追加されていることを確認してください。 これは自動または手動で行うことができます。 詳細については、「DTS サーバーの IP アドレス CIDR ブロックをホワイトリストに追加する」をご参照ください。

    • ソースまたはターゲットデータベースが自己管理データベース ( アクセス方法Alibaba Cloud インスタンス ではない場合) の場合は、DTS サーバーの CIDR ブロック ダイアログボックスで 接続テスト をクリックする必要もあります。

  5. タスクオブジェクトを設定します。

    1. オブジェクト設定 ページで、同期するオブジェクトを設定します。

      設定

      説明

      同期タイプ

      増分データ同期 が選択されています。 デフォルトでは、スキーマ同期完全データ同期 も選択する必要があります。 事前チェックが完了すると、DTS は選択したオブジェクトの完全データ同期をソースインスタンスからターゲットクラスターに実行します。 これは、後続の増分データ同期のベースラインデータとして機能します。

      インデックス名

      • [テーブル名] を選択すると、ターゲット Elasticsearch インスタンスで作成されるインデックス名はテーブル名と一致します。

      • [データベース名_テーブル名] を選択すると、ターゲット Elasticsearch インスタンスで作成されるインデックス名は、データベース名、アンダースコア (_)、テーブル名がこの順序で連結されたものになります。

      説明

      インデックス名のマッピング設定は、すべてのテーブルに適用されます。

      競合するテーブルの処理モード

      • エラーの事前チェックと報告:ターゲットデータベースに同じ名前のテーブルが存在するかどうかを確認します。 同じ名前のテーブルが存在しない場合、事前チェックは成功します。 同じ名前のテーブルが存在する場合、事前チェックは失敗し、データ同期タスクは開始されません。

        説明

        ターゲットデータベースで同じ名前のテーブルを削除または名前変更できない場合は、別のテーブル名にマッピングできます。 詳細については、「テーブルと列名のマッピング」をご参照ください。

      • エラーを無視して続行:ターゲットデータベースでの重複テーブル名のチェックをスキップします。

        警告

        エラーを無視して続行 を選択すると、データの不整合が発生し、ビジネスにリスクをもたらす可能性があります。 例:

        • テーブルスキーマが同じで、ターゲットデータベースのレコードがソースデータベースのレコードと同じプライマリキーまたは一意キーの値を持つ場合:

          • 完全データ同期中、DTS はターゲットクラスターのレコードを保持します。 ソースデータベースの対応するレコードは同期されません。

          • 増分同期中、ソースデータベースのレコードはターゲットデータベースのレコードを上書きします。

        • テーブルスキーマが異なる場合、初期データ同期が失敗する可能性があります。 これにより、一部の列データのみが同期されるか、同期が完全に失敗する可能性があります。 注意して進めてください。

      移行先インスタンスでのオブジェクト名の大文字化

      ターゲットインスタンスに同期されるデータベース、テーブル、および列オブジェクト名の大文字/小文字の区別ポリシーを設定できます。 デフォルトでは、DTS のデフォルトポリシー が選択されています。 ソースデータベースとターゲットデータベースのデフォルトポリシーを使用することもできます。 詳細については、「ターゲットオブジェクト名の大文字/小文字の区別ポリシー」をご参照ください。

      ソースオブジェクト

      ソースオブジェクト ボックスで、同期するオブジェクトをクリックし、向右 をクリックして 選択中のオブジェクト ボックスに移動します。

      説明

      オブジェクトは、データベースまたはテーブルレベルで選択できます。

      選択中のオブジェクト

      ターゲット Elasticsearch インスタンスのテーブルのインデックス名、タイプ名、フィールド名、またはフィルター条件を変更するには、選択中のオブジェクト エリアでテーブル名を右クリックします。 詳細については、「データベースとテーブルの列名のマッピング」および「フィルター条件の設定」をご参照ください。

      説明

      インデックス名とタイプ名では、特殊文字としてアンダースコア (_) のみが許可されます。

    2. 詳細設定へ をクリックして、詳細パラメーターを設定します。

      設定

      説明

      タスクのスケジュールに使用する専用クラスターの選択

      デフォルトでは、DTS は共有クラスター上でタスクをスケジュールするため、クラスターを選択する必要はありません。 より安定したパフォーマンスを得るために、専用クラスターを購入して DTS 同期タスクを実行できます。 詳細については、「DTS 専用クラスターとは」をご参照ください。

      失敗した接続の再試行時間

      同期タスクが開始された後、ソースまたはターゲットデータベースへの接続が失敗した場合、DTS はエラーを報告し、すぐに接続のリトライを開始します。デフォルトのリトライ期間は 720 分です。また、10 分から 1,440 分の範囲でカスタムリトライ期間を指定することもできます。期間は 30 分以上に設定することを推奨します。指定された期間内に DTS がデータベースへの接続を正常に再接続した場合、同期タスクは自動的に再開されます。それ以外の場合、タスクが失敗します。

      説明
      • 複数の DTS インスタンス(例:インスタンス A およびインスタンス B)が同一のソースまたはターゲットを共有している場合、インスタンス A のネットワーク接続リトライ時間を 30 分、インスタンス B を 60 分に設定しても、両方のインスタンスには短い方の 30 分が適用されます。

      • DTS は、接続リトライ期間中のタスク実行時間に対しても課金されるため、ビジネス要件に応じてリトライ期間をカスタマイズするか、またはソースおよびターゲットデータベースのインスタンスをリリースした直後に、DTS インスタンスもできる限り速やかにリリースすることを推奨します。

      移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。

      同期タスクが開始された後、ソースまたはターゲットデータベースで接続性に関する問題以外の問題(DDL または DML の実行例外など)が発生した場合、DTS はエラーを報告し、直ちに継続的なリトライ操作を開始します。デフォルトのリトライ期間は 10 分です。また、リトライ期間を 1~1,440 分の範囲でカスタマイズすることもできます。10 分以上に設定することを推奨します。設定したリトライ期間内に関連する操作が成功した場合、同期タスクは自動的に再開されます。それ以外の場合、タスクは失敗します。

      重要

      移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。 の値は、失敗した接続の再試行時間 の値より小さくする必要があります。

      完全同期レートを制限するかどうか

      完全同期段階では、DTS はソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを消費するため、データベースの負荷が増加する可能性があります。ソースデータベースとターゲットデータベースの負荷を軽減するには、1 秒あたりのソースデータベースのクエリ率 QPS1 秒あたりの完全移行の行数 RPS、および 1 秒あたりの完全移行データ量 (MB) BPS パラメーターを設定することで、完全同期タスクにレート制限を設定できます。

      説明
      • この設定項目は、同期タイプ完全データ同期 に設定されている場合にのみ利用できます。

      • また、同期インスタンスの実行後に 完全同期の速度を調整することもできます。

      増分同期率を制限するかどうか

      増分同期タスクにもレート制限を設定できます。 ターゲットデータベースへの圧力を軽減するために、1 秒あたりの増分同期の行数 RPS1 秒あたりの増分同期データ量 (MB) BPS を設定します。

      環境タグ

      必要に応じてインスタンスを識別するための環境ラベルを選択します。 この例では必要ありません。

      シャード構成

      ターゲット Elasticsearch インスタンスの最大シャード設定に基づいて、インデックスのプライマリシャードとレプリカシャードの数を設定します。

      文字列インデックス

      ターゲット Elasticsearch インスタンスで文字列がどのようにインデックス付けされるか。

      • analyzed:最初に文字列を分析し、次にインデックスを作成します。 アナライザも選択する必要があります。 アナライザの種類と機能については、「アナライザ」をご参照ください。

      • not analyzed:分析せずに生の値を直接インデックス付けします。

      • no:文字列をインデックス付けしません。

      タイムゾーン

      DATETIME または TIMESTAMP データ型をターゲット Elasticsearch インスタンスに同期する際に使用するタイムゾーンを選択します。

      説明

      ターゲットインスタンスでこれらのデータ型にタイムゾーン情報が不要な場合は、ターゲットインスタンスでこのデータのドキュメントタイプ (type) を事前に設定してください。

      DOCID

      設定は不要です。 DOCID はデフォルトでテーブルのプライマリキーになります。 プライマリキーが存在しない場合、DOCID は Elasticsearch によって自動生成される ID 列になります。

      順方向および逆方向タスクのハートビートテーブル SQL を削除

      DTS インスタンスの実行中にハートビート SQL 情報をソースデータベースに書き込むかどうかを選択します。

      • :ハートビート SQL 情報はソースデータベースに書き込まれません。 これにより、DTS インスタンスが遅延を報告する可能性があります。

      • ×:ハートビート SQL 情報をソースデータベースに書き込みます。 これにより、ソースデータベースの物理バックアップやクローニングなどの機能に干渉する可能性があります。

      ETL 機能の設定

      抽出、変換、ロード (ETL) 機能を有効にするかどうかを選択します。 詳細については、「ETL とは」をご参照ください。 有効な値:

      監視アラート

      アラートを設定するかどうかを指定します。 同期が失敗した場合、または遅延が指定されたしきい値を超えた場合、アラート連絡先に通知が送信されます。

    3. 上記の設定が完了したら、次:データベースおよびテーブルのフィールド設定 をクリックして、ターゲット Elasticsearch インスタンスのテーブルの _routing 戦略と _id 値を設定します。

      説明

      定義ステータスすべて として選択して変更を加えることができます。

      タイプ

      説明

      _routing の設定

      _routing を設定すると、ドキュメントがターゲット Elasticsearch インスタンスの特定のシャードにルーティングされます。 詳細については、「_routing」をご参照ください。

      • を選択して、ルーティング用のカスタム列を定義します。

      • × を選択して、_id を使用してルーティングします。

      説明

      ターゲット Elasticsearch インスタンスがバージョン 7.x の場合は、× を選択します。

      _routing 列

      ルーティングに使用する列を選択します。

      説明

      このパラメーターは、_routing の設定 に設定されている場合にのみ必要です。

      _id の値

      ドキュメント ID として使用する列を選択します。

  6. タスクを保存して事前チェックを実行します。

    • このインスタンスを設定するための API パラメーターを表示するには、次:タスク設定の保存と事前チェック ボタンにカーソルを合わせ、バブル内の OpenAPI パラメーターのプレビュー をクリックします。

    • API パラメーターの表示が完了したら、ページ下部の 次:タスク設定の保存と事前チェック をクリックします。

    説明
    • 同期タスクが開始される前に、DTS は事前チェックを実行します。 タスクは、すべての事前チェック項目が成功した後にのみ開始できます。

    • 事前チェックが失敗した場合は、失敗した項目の 詳細を表示 をクリックします。 プロンプトに従って問題を修正し、再度事前チェックを実行します。

    • 事前チェックで警告が返された場合:

      • チェック項目が失敗し、無視できない場合は、項目の横にある 詳細を表示 をクリックします。 指示に従って問題を修正し、再度事前チェックを実行します。

      • 無視できるチェック項目については、アラートの詳細を確認無視OK再度事前チェックを実行 を順にクリックして警告をスキップし、事前チェックを再実行できます。 警告項目を無視することを選択した場合、データの不整合などの問題が発生し、ビジネスにリスクをもたらす可能性があります。

  7. インスタンスを購入します。

    1. 成功率 が 100% になったら、次:インスタンスの購入 をクリックします。

    2. 購入 ページで、データ同期インスタンスの課金方法とリンク仕様を選択します。 次の表に、これらのパラメーターの詳細を示します。

      カテゴリ

      パラメーター

      説明

      新しいインスタンスクラス

      課金方法

      • サブスクリプション:インスタンス作成時にお支払いいただきます。 長期的なニーズに適しており、従量課金よりもコスト効率が高いです。 サブスクリプション期間が長いほど、割引率が高くなります。

      • 従量課金:時間単位で課金されます。 短期的なニーズに適しています。 使用後すぐにインスタンスをリリースしてコストを節約できます。

      リソースグループの設定

      インスタンスが属するリソースグループ。 デフォルトはデフォルトのリソースグループです。 詳細については、「Resource Management とは」をご参照ください。

      リンク仕様

      DTS は、異なるパフォーマンスレベルの同期仕様を提供します。 同期リンクの仕様は同期レートに影響します。 ビジネスシナリオに基づいて仕様を選択できます。 詳細については、「データ同期リンクの仕様」をご参照ください。

      サブスクリプション期間

      サブスクリプションモードでは、サブスクリプションインスタンスの期間と数量を選択します。 1 か月から 9 か月までの月次サブスクリプション、または 1、2、3、5 年の年次サブスクリプションを選択できます。

      説明

      このオプションは、課金方法が サブスクリプション の場合にのみ利用可能です。

    3. 設定が完了したら、Data Transmission Service (従量課金) 利用規約 を読み、選択します。

    4. 購入して起動 をクリックします。 OK ダイアログボックスで、[OK] をクリックします。

      データ同期ページでタスクの進捗状況を確認できます。