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

OpenSearch:オンライン複数テーブル結合をサポートするアプリケーションを構築する

最終更新日:Dec 30, 2024

このトピックでは、オンライン複数テーブル結合をサポートするアプリケーションを構築する方法について説明します。

前提条件

  1. Alibaba Cloudアカウントが作成され、本人確認が完了していること。

  2. 新しいAlibaba Cloudアカウントを使用して初めてOpenSearchコンソールにログオンする前に、AccessKeyペアが作成されていること。

  • Alibaba Cloudアカウント内でAccessKeyペアを指定する必要があります。 AccessKeyペアは、OpenSearchアプリケーションを作成および使用するために必要です。

  • Alibaba Cloudアカウント内でAccessKeyペアを作成した後、RAMユーザーのAccessKeyペアを作成できます。 これにより、RAMユーザーとしてアプリケーションにアクセスできます。 RAMユーザーに権限を付与する方法の詳細については、アクセス認証ルールを参照してください。

手順

オンライン複数テーブル結合をサポートするアプリケーションを構築するには、次の手順を実行します。

  1. アプリケーションインスタンスを購入して作成します。

  2. アプリケーションインスタンスを構成します。 アプリケーションスキーマとインデックススキーマを定義し、データソースを構成する必要があります。

  3. 検索テストを実行します。

アプリケーションインスタンスを購入して作成する

  1. OpenSearchコンソールにログオンします。 左上隅で、OpenSearchエディションが表示されている場所にポインターを移動し、OpenSearch高性能検索エディションを選択します。 左側のナビゲーションペインで、[インスタンス管理]をクリックします。 表示されるページで、[インスタンスの作成]をクリックします。

image

  1. 購入ページで、[商品エディション]、[製品タイプ]、[リージョンとゾーン]、[アプリケーション名]、[クラスタ設定]、[ストレージ容量]、および[コンピューティングリソース]パラメータを構成します。 次に、[今すぐ購入]をクリックします。

image

商品エディション:高性能検索エディションを選択します。

image

  • 製品タイプ:サブスクリプションまたは従量課金を選択します。

  • リージョンとゾーン:ビジネス要件に基づいてリージョンとゾーンを選択します。

  • アプリケーション名:カスタム名を入力します。

  • クラスタ設定:専用クラスタ - ストレージ最適化を選択します。

  • ストレージ容量とコンピューティングリソース:デフォルト値を使用するか、ビジネス要件に基づいてパラメータを構成します。

  1. 注文を確認し、利用規約のチェックボックスを選択して、[支払う]をクリックします。

image

  1. アプリケーションインスタンスが購入された後、OpenSearchコンソールの[インスタンス管理]ページでアプリケーションインスタンスを表示します。 インスタンスは[保留中]状態です。

image

アプリケーションインスタンスを構成する

  1. OpenSearchコンソールの[インスタンス管理]ページで、構成するインスタンスを見つけ、[アクション]列の[構成]をクリックします。

image

  1. アプリケーションスキーマを定義します。 アプリケーションスキーマは、次のいずれかの方法で定義できます。

  • テンプレートを使用してアプリケーションスキーマを定義する。 作成したアプリケーションスキーマをテンプレートとして保存できます。 次に、テンプレートを使用して新しいアプリケーションスキーマを定義できます。

  • データファイルを使用してアプリケーションスキーマを定義する。 データファイルをOpenSearchコンソールにアップロードできます。 次に、OpenSearchはアップロードされたデータファイルを解析し、初期アプリケーションスキーマを生成します。 データファイルはJSON形式である必要があります。 初期アプリケーションスキーマが生成された後、フィールドタイプなどの特定の属性を構成する必要があります。

  • データソースを使用してアプリケーションスキーマを定義する。 ApsaraDB RDSやMaxComputeデータソースなどのデータソースからデータを同期する場合、この方法を使用できます。 ソーステーブルのスキーマを使用して、初期アプリケーションスキーマを生成できます。 これにより、手動定義の作業負荷が軽減され、エラーの可能性が減少します。 詳細については、データソースを参照してください。

  • 手動でアプリケーションスキーマを定義する。 この方法を使用してクイックテストを実行できます。 この例では、2つのテーブルが追加され、アプリケーションスキーマが手動で定義されています。

image

フィールドのデータ型の選択方法の詳細については、OpenSearch高性能検索エディションのアプリケーションスキーマを参照してください。

説明

最大8つのテーブルを追加できます。

  1. 各テーブルに個別にインデックススキーマを定義します。

image

  • インデックスフィールドの指定方法の詳細については、インデックススキーマを参照してください。

  • 分析方法の指定方法の詳細については、テキストアナライザーを参照してください。

  • SELECT、WHERE、またはORDER BY句でフィールドを使用する必要がある場合は、フィールドを属性フィールドとして指定します。

説明
  • FLOAT、FLOAT_ARRAY、DOUBLE、またはDOUBLE_ARRAYタイプのフィールドをインデックスフィールドとして指定することはできません。

  • TEXTまたはSHORT_TEXTタイプのフィールドを属性フィールドとして指定することはできません。

  1. ルーティングフィールドを指定します。

image

OpenSearchアプリケーションインスタンスは、分散バックエンドストレージを使用します。 複数テーブル結合シナリオでは、結合されるデータは同じサーバー上にある必要があります。 次の図は、その仕組みを示しています。

エンジンがインデックスを構築するとき、エンジンは指定されたルーティングフィールドに基づいてレコードのハッシュ値を計算します。 同じハッシュ値を持つレコードは同じ列にルーティングされます。 各列のデータは、クエリ結果検索機(QRS)ノードによって送信されたSQLステートメントに基づいて結合され、データは列間で結合されません。 次に、各列は結合結果をQRSノードに返します。 最後に、QRSノードは再現率の結果を集計し、集計された結果をユーザーに返します。

説明
  • デフォルトでは、主キーフィールドがルーティングフィールドとして使用されます。

  • ルーティングフィールドとして設定できるフィールドは1つだけです。

  • ルーティングフィールドの値はグローバルに一意である必要があります。

  • ルーティングフィールドは、INTまたはLITERALタイプにすることができます。

  • 主キー以外のフィールドに基づいてテーブルを結合する必要がある場合は、そのフィールドをルーティングフィールドとして指定する必要があります。

  1. テーブルのデータソースを構成します。 OpenSearch高性能検索エディションでサポートされているデータソースタイプに基づいてデータソースを構成できます。

image

[データソースの追加]をクリックして、データソースを構成します。

image

  1. [完了]をクリックします。

image

  1. インスタンスの詳細ページで、[オフラインアプリケーション]タブでインスタンスのステータスを確認し、アプリケーションのステータスが[正常]に変わるまで待ちます。

image

検索テストを実行する

  1. オフラインアプリケーションが[正常]状態になり、オンラインになったら、[検索テスト]ページで検索テストを実行できます。

image

  1. オンライン複数テーブル結合のアプリケーションは、SQLクエリのみをサポートします。

image

SQL構文の詳細については、SQL機能を参照してください。

使用上の注意

  • クラスタ設定が専用クラスタ - ストレージ最適化であるインスタンスのみが、オンライン複数テーブル結合をサポートします。

  • JOIN操作が複数のテーブルで実行される複数テーブル結合シナリオでは、SQLクエリのみがサポートされます。

  • 複数テーブル結合シナリオでは、カスタムアナライザーはサポートされていません。

  • 複数テーブル結合シナリオでは、並べ替え構成はサポートされていません。

  • 複数テーブル結合シナリオでは、検索結果の表示はサポートされていません。

  • クラスタ設定が専用クラスタ - ストレージ最適化であるインスタンスは、他の仕様に変更することはできません。