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

OpenSearch:アプリケーションスキーマ

最終更新日:Mar 13, 2025

アプリケーションスキーマ

Industry Algorithm Edition のインスタンスにアップロードするデータは、最初にオフラインデータテーブルに保存されます。データのアップロードを容易にするために、Industry Algorithm Edition では、ビジネス要件に基づいて複数のデータテーブルを作成し、データ処理プラグインを提供できます。複数のデータテーブルを作成する場合は、テーブルに関連付けられているフィールドを指定する必要があります。複数のデータテーブルのデータが処理された後、テーブルが結合されてインデックステーブルが形成されます。インデックステーブルは検索属性を定義し、検索エンジンがインデックスを構築してデータを検索するために使用できます。

データテーブルのフィールド

データテーブルを使用して、OpenSearch にデータをインポートできます。各データ処理プラグインは、特定の種類のフィールドのみを処理できます。フィールド値の制限の詳細については、「制限」トピックの「フィールドの制限」セクションをご参照ください。フィールド値が指定された値の範囲内にない場合、オーバーフローエラーが発生するか、値が切り捨てられます。正しいフィールドタイプを選択する必要があります。

フィールドタイプ

説明

INT

64 ビット整数。

INT_ARRAY

64 ビット整数配列。

FLOAT

浮動小数点数。

FLOAT_ARRAY

浮動小数点数配列。

DOUBLE

浮動小数点数。

DOUBLE_ARRAY

浮動小数点数配列。

LITERAL

文字列定数。文字列定数は、完全一致のみをサポートします。

LITERAL_ARRAY

文字列定数配列。文字列定数配列の単一の要素は、完全一致のみをサポートします。

SHORT_TEXT

短いテキスト。このタイプの値は、長さが 100 バイトを超えることはできません。このタイプのフィールドは、複数の分析方法をサポートしています。

TEXT

長いテキスト。このタイプのフィールドは、複数の分析方法をサポートしています。

TIMESTAMP

64 ビット符号なし整数。このタイプのフィールドは、タイムスタンプを示します。

GEO_POINT

文字列定数。このタイプのフィールドは、「緯度値 経度値」形式の緯度と経度のペアを示します。

予約済みフィールドの使用上の注意:

  • 次のフィールド名は予約済みであるため、フィールド名を指定する際に使用できません: 'service_id'、'ops_app_name'、'inter_timestamp'、'index_name'、'pk'、'ops_version'、'ha_reserved_timestamp'、および 'summary'。

配列タイプのフィールドの使用上の注意:

  • アプリケーションで配列タイプのフィールドを作成した後、そのフィールドをデータソースの VARCHAR などの STRING タイプのフィールドにマッピングできます。さらに、データ処理プラグインを使用してフィールドを処理することもできます。詳細については、「データ処理プラグインを使用する」をご参照ください。

  • OpenSearch Industry Algorithm Edition API または SDK を使用して配列タイプのフィールドをアップロードする場合は、フィールドを文字列ではなく配列としてアップロードします。例: String[] literal_array = {"Alibaba Cloud","OpenSearch"};

タイムスタンプタイプのフィールドの使用上の注意:

  • INT タイプと TIMESTAMP タイプのフィールドは、データソースの DATETIME タイプまたは TIMESTAMP タイプのフィールドにマッピングできます。フィールド値は、ミリ秒数に自動的に変換されます。範囲関数を使用して、時間範囲で検索結果を取得できます。詳細については、「範囲による検索」をご参照ください。

サポートされているデータソースのフィールドタイプ

データソース

サポートされているフィールドタイプ

RDS

TINYINT、SMALLINT、INTEGER、BIGINT、FLOAT、REAL、DOUBLE、NUMERIC、DECIMAL、TIME、DATE、TIMESTAMP、VARCHAR

PolarDB

TINYINT、SMALLINT、INTEGER、BIGINT、FLOAT、REAL、DOUBLE、NUMERIC、DECIMAL、TIME、DATE、TIMESTAMP、VARCHAR

MaxCompute

BIGINT、DOUBLE、BOOLEAN、DATETIME、STRING、DECIMAL、MAP、ARRAY、TINYINT、SMALLINT、INT、FLOAT、CHAR、VARCHAR、DATE、TIMESTAMP、BINARY、INTERVAL_DAY_TIME、INTERVAL_YEAR_MONTH、STRUCT

Industry Algorithm Edition のテーブルのフィールドタイプとデータベースのテーブルのフィールドタイプのマッピングIndustry Algorithm Edition のテーブルのフィールドタイプとデータベースのテーブルのフィールドタイプ間のマッピング

Industry Algorithm Edition のテーブル

RDS テーブル

PolarDB テーブル

MaxCompute テーブル

INT

BIGINT、TINYINT、SMALLINT、INTEGER

BIGINT、TINYINT、SMALLINT、INTEGER

BIGINT、TINYINT、SMALLINT、INT

INT_ARRAY

VARCHAR などの STRING タイプ。このフィールドタイプは、データ処理プラグイン MultiValueSpliter を使用して変換する必要があります。

VARCHAR などの STRING タイプ。このフィールドタイプは、データ処理プラグイン MultiValueSpliter によって変換される必要があります。

VARCHAR などの STRING タイプ。このフィールドタイプは、データ処理プラグイン MultiValueSpliter を使用して変換する必要があります。

FLOAT

FLOAT、NUMERIC、DECIMAL

FLOAT、NUMERIC、DECIMAL

FLOAT、DECIMAL

FLOAT_ARRAY

VARCHAR などの STRING タイプ。このフィールドタイプは、データ処理プラグイン MultiValueSpliter を使用して変換する必要があります。

VARCHAR などの STRING タイプ。このフィールドタイプは、データ処理プラグイン MultiValueSpliter によって変換される必要があります。

VARCHAR などの STRING タイプ。このフィールドタイプは、データ処理プラグイン MultiValueSpliter を使用して変換する必要があります。

DOUBLE

DOUBLE、NUMERIC、DECIMAL

DOUBLE、NUMERIC、DECIMAL

DOUBLE、DECIMAL

DOUBLE_ARRAY

VARCHAR などの STRING タイプ。このフィールドタイプは、データ処理プラグイン MultiValueSpliter を使用して変換する必要があります。

VARCHAR などの STRING タイプ。このフィールドタイプは、データ処理プラグイン MultiValueSpliter によって変換される必要があります。

VARCHAR などの STRING タイプ。このフィールドタイプは、データ処理プラグイン MultiValueSpliter を使用して変換する必要があります。

LITERAL

VARCHAR などの STRING タイプ

VARCHAR などの STRING タイプ

VARCHAR などの STRING タイプ

LITERAL_ARRAY

VARCHAR などの STRING タイプ。このフィールドタイプは、データ処理プラグイン MultiValueSpliter を使用して変換する必要があります。

VARCHAR などの STRING タイプ。このフィールドタイプは、データ処理プラグイン MultiValueSpliter によって変換される必要があります。

VARCHAR などの STRING タイプ。このフィールドタイプは、データ処理プラグイン MultiValueSpliter を使用して変換する必要があります。

SHORT_TEXT

VARCHAR などの STRING タイプ

VARCHAR などの STRING タイプ

VARCHAR などの STRING タイプ

TEXT

VARCHAR などの STRING タイプ

VARCHAR などの STRING タイプ

VARCHAR などの STRING タイプ

TIMESTAMP

DATETIME または TIMESTAMP

DATETIME または TIMESTAMP

DATETIME または TIMESTAMP

GEO_POINT

VARCHAR などの STRING タイプ

VARCHAR などの STRING タイプ

「経度 緯度」形式の VARCHAR などの STRING タイプ。経度は経度を示し、緯度は緯度を示します。経度と緯度の値はどちらも DOUBLE タイプで、スペースで区切る必要があります。経度パラメータの範囲: [-180, 180]、緯度パラメータの範囲: [-90,90]。

注:

  • データソースのフィールドが FLOAT タイプまたは DOUBLE タイプの場合、フィールドタイプを DECIMAL に変更することをお勧めします。そうしないと、精度が低下する可能性があります。

アプリケーションスキーマを作成する

Industry Algorithm Edition では、アプリケーションスキーマ、つまり Industry Algorithm Edition のテーブルスキーマを作成するために、次の方法を提供しています。

  1. ApsaraDB RDS for MySQLMaxCompute、または PolarDB データソースからテーブルスキーマをインポートして、アプリケーションスキーマを作成します。

  2. アプリケーションスキーマを手動で作成します。詳細については、複数のテーブルを結合するをご参照ください。

  3. テンプレートを使用してアプリケーションスキーマを作成する

  4. データファイルをアップロードしてアプリケーションスキーマを作成する

複数のテーブルを結合する

このセクションでは、複数のテーブルを結合してアプリケーションスキーマを手動で作成する方法について説明します。この例では、プライマリテーブル main とセカンダリテーブル test_tb_1 が関連付けられています。

  1. OpenSearch コンソールにログインし、目的のアプリケーションインスタンスを見つけ、[アクション] 列の [構成] をクリックします。1

  2. 表示されるページで、メインテーブルをプライマリテーブルとして指定し、フィールドをプライマリキーとして指定します。

    image

  3. セカンダリテーブルのプライマリキーとしてフィールドを指定します。

    image

  4. プライマリテーブルの [外部テーブル] 列で、セカンダリテーブルを選択して、プライマリテーブルとセカンダリテーブルを結合します。

    image

説明
  • Industry Algorithm Edition でサポートされているプライマリテーブルとセカンダリテーブルの関連付けの詳細については、「複数のテーブルに対する JOIN 操作」をご参照ください。

  • 外部キーフィールドは、INT タイプまたは LITERAL タイプである必要があります。

  • プライマリテーブルを 1 つ以上のセカンダリテーブルに結合する場合、結合操作に使用されるフィールドは、プライマリテーブルとセカンダリテーブルで同じタイプである必要があります。たとえば、プライマリテーブルの結合操作に使用されるフィールドが INT タイプの場合、セカンダリテーブルの結合操作に使用されるフィールドも INT タイプである必要があります。プライマリテーブルの結合操作に使用されるフィールドが LITERAL タイプの場合、セカンダリテーブルの結合操作に使用されるフィールドも LITERAL タイプである必要があります。

  • セカンダリテーブルをプライマリテーブルに結合する場合、セカンダリテーブルのプライマリキーを使用してテーブルを結合する必要があります