アプリケーションスキーマ
業界アルゴリズム版のインスタンスにアップロードするデータは、最初にオフラインデータテーブルに保存されます。データのアップロードを容易にするため、業界アルゴリズム版では、ビジネス要件に基づいて複数のデータテーブルを作成し、データ処理プラグインを提供できます。複数のデータテーブルを作成する場合は、テーブルに関連付けられているフィールドを指定する必要があります。複数のデータテーブルのデータが処理された後、テーブルが結合されてインデックステーブルが形成されます。インデックステーブルは検索属性を定義し、検索エンジンがインデックスを構築してデータを検索するために使用できます。
データテーブルのフィールド
データテーブルを使用して、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に変更することをお勧めします。そうしないと、精度が低下する可能性があります。
アプリケーションスキーマの作成
業界アルゴリズム版では、業界アルゴリズム版のテーブルスキーマであるアプリケーションスキーマを作成するために、次の方法を提供しています。
ApsaraDB RDS for MySQL、MaxCompute、またはPolarDBデータソースからテーブルスキーマをインポートして、アプリケーションスキーマを作成します。
アプリケーションスキーマを手動で作成します。詳細については、複数のテーブルの結合を参照してください。
複数のテーブルの結合
このセクションでは、複数のテーブルを結合してアプリケーションスキーマを手動で作成する方法について説明します。この例では、プライマリテーブルmainとセカンダリテーブルtest_tb_1が関連付けられています。
1. OpenSearchコンソールにログオンし、目的のアプリケーションインスタンスを見つけ、「操作」列の「構成」をクリックします。
2. 表示されるページで、プライマリテーブルとしてメインテーブルを指定し、プライマリキーとしてフィールドを指定します。
3. セカンダリテーブルのプライマリキーとしてフィールドを指定します。
4. プライマリテーブルの「外部テーブル」列で、プライマリテーブルとセカンダリテーブルを結合するセカンダリテーブルを選択します。
注:
業界アルゴリズム版でサポートされているプライマリテーブルとセカンダリテーブルの関連付けの詳細については、を参照してください。
外部キーフィールドは、INTタイプまたはLITERALタイプである必要があります。
プライマリテーブルを1つ以上のセカンダリテーブルに結合する場合、結合操作に使用されるフィールドは、プライマリテーブルとセカンダリテーブルで同じタイプである必要があります。たとえば、プライマリテーブルの結合操作に使用されるフィールドがINTタイプの場合、セカンダリテーブルの結合操作に使用されるフィールドもINTタイプである必要があります。プライマリテーブルの結合操作に使用されるフィールドがLITERALタイプの場合、セカンダリテーブルの結合操作に使用されるフィールドもLITERALタイプである必要があります。
セカンダリテーブルをプライマリテーブルに結合する場合、セカンダリテーブルのプライマリキーを使用してテーブルを結合する必要があります。