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

OpenSearch:MySQL データソース用の ApsaraDB RDS の構成

最終更新日:Dec 28, 2024

MySQL データソース用の ApsaraDB RDS の構成

ApsaraDB RDS for MySQL は、Alibaba Cloud が提供するオンラインリレーショナルデータベースサービス (RDS) です。ApsaraDB RDS for MySQL は、安定性、信頼性、拡張性に優れており、すぐに使える機能を提供します。詳細については、製品ページをご覧ください。

ApsaraDB RDS for MySQL インスタンスを購入する前の考慮事項

  • OpenSearch は、MySQL エンジンバージョンが 5.2 から 8.0 の ApsaraDB RDS for MySQL インスタンスをサポートしています。

  • High-availability Edition の標準 ApsaraDB RDS for MySQL インスタンスを購入する必要があります。Basic Edition または Enterprise Edition の ApsaraDB RDS for MySQL インスタンスはサポートされていません。

  • OpenSearch コンソールにログオンするために使用する Alibaba Cloud アカウントを使用して、ApsaraDB RDS for MySQL インスタンスを購入する必要があります。そうでない場合、OpenSearch は購入した ApsaraDB RDS for MySQL インスタンスにアクセスできません。

  • 購入した ApsaraDB RDS for MySQL インスタンスは、データソースを構成する OpenSearch アプリケーションと同じリージョンに存在する必要があります。

  • OpenSearch アプリケーションに複製された ApsaraDB RDS for MySQL インスタンスを構成することはできません。構成した場合、アプリケーションはアクティブ化後も初期化状態のままになります。

  • サポートされていない、または制限に準拠していない ApsaraDB RDS for MySQL インスタンスを構成すると、OpenSearch アプリケーションの再インデックス作成が失敗します。

  • OpenSearch アプリケーションの ApsaraDB RDS for MySQL データソースは、仮想プライベートクラウド (VPC) にデプロイする必要があります。

注:

  • PolarDB-X データソースはサポートされていません。

  • ApsaraDB RDS for MySQL インスタンスからデータを取得するために OpenSearch を承認する必要があります。ApsaraDB RDS for MySQL インスタンスに IP アドレスホワイトリストを構成している場合は、OpenSearch の IP アドレスがホワイトリストに追加されます。そうでない場合、ApsaraDB RDS for MySQL インスタンスに接続できません。

サポートされている機能

  • ソーステーブルのすべてのデータがアプリケーションに同期されると、再インデックス作成を手動でトリガーするか、スケジュールされた時間にトリガーできます。詳細については、手動およびスケジュールされた再インデックス作成を参照してください。

  • 1 つ以上のデータソースから複数のテーブルの行をマージできます。行をマージするには、ソーステーブルで同じスキーマを使用し、データソースのデータ処理プラグインの構成が同じであることを確認してください。また、主キー値を重複させることはできません。主キー値が重複するデータは上書きされます。この機能は、次のシナリオで使用できます。

    • データソースの複数のソーステーブルからアプリケーションのテーブルにデータが同期されます。

    • アプリケーションのテーブルに複数のデータソースが構成されています。各データソースの 1 つ以上のソーステーブルからテーブルにデータが同期されます。

  • プラグインを使用して、データソースフィールドの値を変換できます。

  • 次のいずれかのモードを使用してデータを同期できます。

  • フィルター条件を指定してフルデータをフィルターできます。

  • アスタリスク (*) を使用して、名前のプレフィックスが同じテーブルを照合できます。

制限事項

  • ApsaraDB RDS for MySQL インスタンスの binlog_row_image パラメーターを FULL に設定する必要があります。

  • High-availability Edition の標準 ApsaraDB RDS for MySQL インスタンスのみがサポートされています。

  • ApsaraDB RDS for MySQL インスタンスの MySQL エンジンのバージョンは 5.2 から 8.0 である必要があります。

  • MySQL エンジンバージョンが 5.6 の ApsaraDB RDS for MySQL インスタンスの場合、loose_max_execution_time パラメーターと loose_max_statement_time パラメーターのしきい値を大きい値に変更することをお勧めします。そうでない場合、再インデックス作成中に「クエリの実行が中断されました。max_statement_time を超えました」のようなエラーメッセージが表示されます。

  • OpenSearch コンソールにログオンするために使用する Alibaba Cloud アカウントを使用して、ApsaraDB RDS for MySQL インスタンスを購入する必要があります。そうでない場合、OpenSearch は購入した ApsaraDB RDS for MySQL インスタンスにアクセスできません。

  • 購入した ApsaraDB RDS for MySQL インスタンスは、データソースを構成する OpenSearch アプリケーションと同じリージョンに存在する必要があります。

  • 標準アプリケーションの ApsaraDB RDS for MySQL データソースを構成した後、SDK を使用したり、API 操作を呼び出してアプリケーションに増分データをプッシュしたりすることはできません。

  • 標準アプリケーションの ApsaraDB RDS for MySQL データソースを構成する場合、データソースのデータをフィルターするフィルター条件を指定することはできません。

  • REPLACE INTO ステートメントはサポートされていません。

  • TRUNCATE または DROP ステートメントを使用してデータを削除することはできません。データを削除するには、DELETE ステートメントを使用します。

  • OpenSearch アプリケーションに複製された ApsaraDB RDS for MySQL インスタンスを構成することはできません。構成した場合、アプリケーションはアクティブ化後も初期化状態のままになります。

  • ApsaraDB RDS for MySQL データソースへの接続に使用するパスワードにパーセント記号 (%) を含めることはできません。含めた場合、再インデックス作成が失敗します。

  • 特権アカウントを使用して ApsaraDB RDS for MySQL データソースに接続することはできません。使用した場合、OpenSearch は ApsaraDB RDS for MySQL データソースに接続できません。

  • スキーマが異なるソーステーブルのフィールド値を連結することはできません。

  • バイナリロギングが無効になっているレプリカクライアントモードとレプリカスレーブモードはサポートされていません。詳細については、ソースデータベースのバイナリロギングの事前チェックを参照してください。

使用上の注意

  • ApsaraDB RDS for MySQL データソースの内部エンドポイントとパブリックエンドポイントを切り替えることができます。OpenSearch が ApsaraDB RDS for MySQL インスタンスのデータにアクセスする場合、トラフィック料金は発生しません。

  • OpenSearch では、プライマリデータベースからのみフルデータをプルできます。オフピーク時にフルデータをインポートし、再インデックス作成を実行することをお勧めします。

  • ApsaraDB RDS for MySQL インスタンスのソーステーブルに DATETIME 型または TIMESTAMP 型のフィールドが含まれている場合、これらのフィールドの値はミリ秒単位の値に変換されます。アプリケーションの宛先フィールドの型を TIMESTAMP に設定する必要があります。

  • OpenSearch が ApsaraDB RDS for MySQL インスタンスにアクセスできるようにするには、インスタンスの内部エンドポイントを申請する必要があります。そうしないと、RDS サービスへの接続に失敗しました。後でもう一度お試しください というエラーメッセージが表示されます。

  • フルデータが同期されると、フィルター条件を満たさないドキュメントは除外されます。特定のドキュメントの主キー値がアプリケーションの宛先テーブルの主キー値と同じ場合、これらのドキュメントも除外されます。

  • ApsaraDB RDS for MySQL データソースに 15 日以上増分データがない場合、データ同期で例外が発生する可能性があります。この場合、再インデックス作成またはオフライン変更を手動で実行できます。

  • OpenSearch を使用して ApsaraDB RDS for MySQL インスタンスからデータを同期する場合は、OpenSearch が存在するリージョンのサーバーの IP アドレスと CIDR ブロックを ApsaraDB RDS for MySQL インスタンスの IP アドレスホワイトリストに追加する必要があります。次の表に、さまざまなリージョンの IP アドレスホワイトリストを示します。

    リージョン

    CIDR ブロック

    中国 (杭州)

    100.104.190.128/26,100.104.241.128/26

    中国 (北京)

    100.104.16.192/26,100.104.179.0/26

    中国 (上海)

    100.104.37.0/26,100.104.46.0/26

    中国 (深圳)

    100.104.87.192/26,100.104.132.192/26

    中国 (青島)

    100.104.240.128/26,100.104.111.128/26

    中国 (張家口)

    100.104.155.192/26,100.104.238.64/26

    ドイツ (フランクフルト)

    100.104.127.0/26,100.104.35.192/26

    米国 (シリコンバレー) および米国 (バージニア)

    100.104.193.128/26,100.104.119.128/26

    シンガポール

    100.104.58.192/26,100.104.74.192/26

アカウント認証

MySQL エンジンバージョンが 5.7 以降の ApsaraDB RDS for MySQL データソースを OpenSearch アプリケーションに構成する場合は、次の点に注意してください。

  • データソースに接続するには、データソースにアクセスするために必要な権限を取得し、アカウントとパスワードを入力する必要があります。初めてデータソースに接続するためにアカウントとパスワードを選択する際は、注意が必要です。

  • DTS を使用してデータを同期する場合は、アカウントにソースデータベースのすべてのテーブルを照会する権限があることを確認してください。また、SHOW CREATE TABLE * ステートメントが想定どおりに実行できることを確認してください。アカウントに権限がない場合、リアルタイム同期が失敗する可能性があります。

  • 必要な場合を除き、アカウント権限を変更しないでください。リアルタイム OpenSearch タスクは MySQL クライアントと見なされます。アカウントの変更により、リアルタイム同期が失敗する可能性があります。また、現在のアカウントに変更が加えられた場合、新しいバージョンのアプリケーションの作成に失敗する可能性があります。アカウントとパスワードが変更された場合は、既存のデータソースを削除し、ApsaraDB RDS for MySQL インスタンスを新しいデータソースとして再度追加する必要があります。

  • OpenSearch が ApsaraDB RDS for MySQL データソースにアクセスできるようにするには、次の最小要件を満たしていることを確認してください。1. SHOW CREATE TABLE ステートメントを実行する権限が OpenSearch に付与されている。2. REPLICATION SLAVE または REPLICATION CLIENT ステートメントを実行する権限が OpenSearch に付与されている。3. binlog_row_image パラメーターの値が FULL に設定されている。4. binlog_format パラメーターの値が ROW に設定されている。

  • ApsaraDB RDS for MySQL インスタンスで SSL 暗号化が有効になっている場合は、SSL 証明書が有効であることを確認してください。SSL 証明書の期限が切れていると、接続エラーが発生する可能性があります。SSL 証明書の有効期限を適宜更新する必要があります。

一般的な問題

  • OpenSearch コンソールで ApsaraDB RDS for MySQL データソースを Resource Access Management (RAM) ユーザーとしてアプリケーション用に構成するには、まず RAM ユーザーに権限を付与する必要があります。そうしないと、RDS サービスへの接続に失敗しました。後でもう一度お試しください というエラーメッセージが表示されます。詳細については、RAM ユーザーの作成 を参照してください。AliyunServiceRoleForOpenSearch ロールは、Alibaba Cloud アカウントを使用して作成する必要があることに注意してください。

  • ApsaraDB RDS for MySQL インスタンスへの接続に使用するパスワードにパーセント記号 (%) を含めることはできません。含めた場合、再インデックス作成が失敗し、「エスケープ (%) パターンの 16 進文字が無効です」というエラーメッセージが表示されます。

  • アプリケーションのテーブルの主キー値は一意である必要があります。同じテーブルスキーマを持つ複数のテーブルからデータを同期する場合、主キー値が重複する可能性があります。この場合、データが上書きされる可能性があります。この問題を防ぐには、StringCatenateExtractor プラグインを使用して複数のフィールドの値を連結します。ソースフィールドは pk と $table です。pk を ApsaraDB RDS for MySQL インスタンスのテーブルの主キーフィールドに置き換えます。$table はデフォルトのシステム変数で、テーブル名を示します。$table を使用するには、ワイルドカードを使用して同じテーブルスキーマを持つ複数のテーブルを照合する必要があります。ハイフン (-) またはカスタム文字を使用して、複数のソースフィールドの値を連結します。たとえば、ApsaraDB RDS for MySQL インスタンスのテーブル名が my_table_0 で、主キー値が 123456 であるとします。この場合、連結後に取得される新しい主キー値は 123456-my_table_0 になります。

  • データベーステーブルの DATE 型または DATETIME 型のフィールドに基づいてデータをフィルターする場合は、フィルター条件で指定された時刻の形式が正しいことを確認してください。たとえば、データベーステーブルの createtime という名前のソースフィールドに基づいてデータをフィルターする場合、フィルター条件で指定された時刻の形式は createtime>'2018-03-01 00:00:00' である必要があります。時刻の形式が createtime>'2018-3-1 00:00:00' の場合、エラーが返されます。

ApsaraDB RDS for MySQL データソースを構成する方法

手順と注意事項

1. [データソースの選択] パネルで、[ApsaraDB RDS for MySQL] をクリックし、データベースに接続をクリックします。

1

2. [データベースに接続] ダイアログボックスで、必要に応じてパラメーターを設定し、[接続] をクリックします。

2

パラメーター

説明

ApsaraDB RDS インスタンス ID

ApsaraDB RDS for MySQL インスタンスの ID。ID は ApsaraDB RDS for MySQL コンソールで取得できます。ID では大文字と小文字が区別されます。読み取り専用インスタンスはサポートされていません。サンプル ID: rm-bp19b4g5n11111111。

データベース名

ApsaraDB RDS for MySQL インスタンスで接続するデータベースの名前。名前では大文字と小文字は区別されません。

ユーザー名

データベースへの接続に使用するアカウントのユーザー名。このアカウントを使用して、データベースのテーブルスキーマとフルデータを取得できます。ユーザー名では大文字と小文字が区別され、アカウントには読み取り専用権限があります。

パスワード

データベースへの接続に使用するアカウントのパスワード。

次に、OpenSearch はデータソースへの接続を試み、接続に失敗した場合にエラーメッセージを返します。

エラーメッセージ

解決策

ApsaraDB RDS for MySQL インスタンスが OpenSearch アプリケーションと同じリージョンに存在しません。

インスタンス ID が正しいかどうか、および ApsaraDB RDS for MySQL インスタンスがデータソースを構成する OpenSearch アプリケーションと同じリージョンに存在するかどうかを確認します。インスタンス ID が正しく、ApsaraDB RDS for MySQL インスタンスが OpenSearch アプリケーションと同じリージョンに存在するにもかかわらずエラーメッセージが引き続き表示される場合は、チケットを送信してください。

RDS サービスに接続できませんでした。

ApsaraDB RDS for MySQL インスタンスへの接続に使用する接続文字列のインスタンス ID、データベース名、ユーザー名、およびパスワードが有効かどうかを確認します。

現在の ApsaraDB RDS for MySQL インスタンスにテーブルが存在しません。

テーブル名が有効かどうか、およびテーブルが ApsaraDB RDS for MySQL データソースに存在するかどうかを確認します。

3. 接続が確立されると、次の図に示すパネルが表示されます。[テーブルの選択] セクションで、左側の [テーブル] ボックスでテーブルを選択し、右矢印をクリックして右側の [選択済み] ボックスにテーブルを追加し、[OK] をクリックします。

3

  • アクセスするテーブルの名前を選択または入力します。名前では大文字と小文字が区別されます。

  • アスタリスク (*) を使用して、データベース内の同じテーブルスキーマを持つ複数のテーブルを照合できます。これらのテーブルの名前には同じプレフィックスが付いています。たとえば、table_* と入力すると、table_a や table_b などのテーブルが照合されます。

4. [フィールドマッピング] ステップで、データベースからプルするフィールドを選択し、[OK] をクリックします。

4

  • [フィールドマッピング] ステップでは、OpenSearch に同期するデータベースフィールドを追加できます。

  • [コンテンツ変換] 列のフィールドのプラス記号 (+) をクリックして、データ処理プラグインを追加し、フィールドを処理できます。データ処理プラグインの使用方法の詳細については、データ処理プラグインの使用を参照してください。

1

5. フィルター条件を指定して、ApsaraDB RDS for MySQL データソースのデータをフィルターします。

5