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

OpenSearch:業界アルゴリズム版のテーブルスキーマ

最終更新日:Dec 28, 2024

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

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

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

データテーブルを使用して、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 業界アルゴリズム版 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

業界アルゴリズム版のテーブルのフィールドタイプとデータベースのテーブルのフィールドタイプのマッピング

業界アルゴリズム版のテーブル

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に変更することをお勧めします。そうしないと、精度が低下する可能性があります。

アプリケーションスキーマの作成

業界アルゴリズム版では、業界アルゴリズム版のテーブルスキーマであるアプリケーションスキーマを作成するために、次の方法を提供しています。

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

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

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

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

複数のテーブルの結合

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

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

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

image

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

image

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

image

注:

  • 業界アルゴリズム版でサポートされているプライマリテーブルとセカンダリテーブルの関連付けの詳細については、を参照してください。

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

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

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