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

OpenSearch:制限

最終更新日:Dec 28, 2024

システムの制限

項目

制限

ユーザーごとのクラスター数

無制限。

ユーザーごとのドキュメントの総数

理論的には無制限。値はストレージ容量クォータに基づいて計算されます。

ユーザーごとのページビュー(PV)の総数

理論的には無制限。値は、ユーザーが使用可能な論理コンピューティングユニット(LCU)の数に基づいて計算されます。

文字エンコーディングシステム

UTF-8 がサポートされています。

クラスターの制限

項目

制限

クラスタータイプ

共有クラスター

専用クラスター

クラスター名の長さ

30文字

フィールド名の長さ

30文字

ソート式名の長さ

30文字

フィールド数

256

512

ソーステーブル名の長さ

16文字

インデックスフィールド名の長さ

64文字

INT タイプのフィールド数

256

TIMESTAMP タイプのフィールド数

4

GEO_POINT タイプのフィールド数

2

LITERAL タイプのフィールド数。LITERAL タイプのフィールドを使用して複合インデックスを作成することはできません。

256

TEXT または SHORT_TEXT タイプのフィールド数

32

64

数値分析用インデックスの数

4

8

複合インデックスの数

4

8

複合インデックス内のフィールド数

8

数値分析用に INT タイプのフィールドに作成されたインデックスの数

4

8

数値分析用に GEO_POINT タイプのフィールドに作成されたインデックスの数

2

数値分析用に TIMESTAMP タイプのフィールドに作成されたインデックスの数

4

TEXT または SHORT_TEXT タイプの単一フィールドに作成されたインデックスの数

4

8

LITERAL タイプの単一フィールドに作成されたインデックスの数

256

キーワード分析用に INT タイプのフィールドに作成されたインデックスの数

256

ベクトルインデックスの数

0

2

データソースの総数

20

説明

OpenSearch 高性能検索版のストレージ最適化専用クラスターの制限:

  • 単一クラスター内のテーブルの総数は 8 を超えることはできません。

  • クエリ分析機能はサポートされていません。クエリ結果は表示されません。

フィールドの制限

項目

制限

INT64

-2^63 から 2^63-1

FLOAT

+/-3.40282e+038

DOUBLE

+/-1.79769e+308

LITERAL

このタイプのフィールドの長さは最大 65,535 バイトです。

TEXT

このタイプのフィールドの長さは最大 65,536 語です。

SHORT_TEXT

このタイプのフィールドの長さは最大 100 バイトです。フィールドが 100 バイトを超える場合、フィールドは切り詰められます。

LITERAL_ARRAY

このタイプのフィールドの長さは最大 65,535 バイトです。フィールド要素間の各組み込み区切り文字の長さは 2 バイトです。フィールドが 65,535 バイトを超える場合、フィールドは最大長に収まるように最後の完全な要素まで切り詰められます。このタイプのフィールドに多数の要素が含まれている場合、システムの高いクエリパフォーマンスが必要になります。各フィールドは 100 個以下の要素で構成することをお勧めします。

INT_ARRAY、FLOAT_ARRAY、および DOUBLE_ARRAY

これらのタイプのフィールドが属性フィールドとして構成されている場合、各フィールドには最大 65,535 個の要素を含めることができます。各フィールドは 100 個以下の要素で構成することをお勧めします。

ソート式の制限

項目

制限

大まかなソート式の数

30

細かいソート式の数

30

各粗ソート式に設定できる特徴関数項目の数

4

検索結果サマリーの制限

項目

説明

制限

セグメントの長さ

サマリーの最大長。

1~300 バイト

セグメント数

検索結果サマリーに必要なセグメント数。

1~5

アプリケーションレベルのデータプッシュの制限

項目

制限

API を呼び出してプッシュするドキュメントの最大数(毎回)

1,000。パフォーマンスを向上させるために、毎回 100 個のドキュメントをプッシュすることをお勧めします。また、プッシュするドキュメントをパッケージ化することもお勧めします。

1 秒あたりに API を呼び出してデータをプッシュする最大回数

500。1 秒間に 500 回データをプッシュした場合、新しいリクエストは失敗し、「レートがアプリクォータを超えています」というエラーメッセージが表示されます。

API リクエストの最大サイズ

2 MB。API リクエストの合計データサイズが 2 MB を超えると、リクエストは失敗し、「レートがアプリクォータを超えています」というエラーメッセージが表示されます。

1 秒あたりの API リクエストの最大合計データサイズ

2 MB。1 秒間の API リクエストの合計データサイズが 2 MB を超えると、新しいリクエストは失敗し、「レートがアプリクォータを超えています」というエラーメッセージが表示されます。

ApsaraDB RDS または PolarDB データソースの増分データの最大同期レート

2 MB/秒。同期レートが 2 MB/秒を超えると、システムは自動的にレートを制限し、増分データ同期を遅延させます。

ドキュメントの最大サイズ

1 MB。ドキュメントのサイズが 1 MB を超えると、ドキュメントの同期に失敗し、「ドキュメントの合計サイズが超過しています」というエラーメッセージが表示されます。

増分データ同期のレイテンシ

多数のドキュメントが OpenSearch にプッシュされた後、ドキュメントの 99% は 1 秒で検索できます。ドキュメントの 99.9% は 1 分で検索できます。

プッシュされるデータに含めることができない印刷不可の予約文字

コード

Emacs または Vi での表示形式

"\x1E\n"

^^

"\x1F\n"

^_

"\x1C"

^\

"\x1D"

^]

"\x03"

^C

説明
  • フィールドの値に上記の印刷不可の文字が含まれている場合、レコードはアプリケーションに同期されません。

  • \u0002 や \u0003 などの印刷不可の文字は自動的に \t に変換されます。

  • エンジンは次の文字セットをサポートしています。

    • CJK_1 (\xe2[\xba-\xbf][\x80-\xbf])

    • CJK_2 ([\xe3-\xe9][\x80-\xbf][\x80-\xbf])

    • FULLWIDTH_1 (\xef[\xbc-\xbe][\x80-\xbf])

    • FULLWIDTH_2 (\xef\xbf[\x80-\xaf])

検索の制限

項目

制限

フィルター句を除く各句の最大長

エンコード前の 1 KB。句の長さが 1 KB を超えると、エラーメッセージが表示され、リクエストは破棄されます。

各フィルター句の最大長

エンコード前の 4 KB。フィルター句の長さが 4 KB を超えると、エラーメッセージが表示され、リクエストは破棄されます。

単一リクエストで 1 ページに返される結果の最大数

500

ページクエリに対する複数のリクエストを含む、単一検索で返される結果の最大数

5,000

大まかなソートに含まれるドキュメントの最大数

1,000,000

細かいソートに含まれるドキュメントの最大数

デフォルト値:200

説明
  • 従来の検索では、最短時間で最も一致する結果を取得することを目的としています。そのため、結果に含めることができるドキュメントの数には制限があります。たとえば、検索の結果には最大 5,000 個のドキュメントを含めることができます。ただし、シナリオによっては、分析のためにさらに多くの結果が必要になる場合があります。この場合、スクロールクエリを実行して、さらに多くの検索結果を取得できます。詳細については、スクロール検索を参照してください。

  • 検索リクエストがアプリケーションで使用可能なすべての LCU を消費した場合、新しいリクエストは破棄され、「コード:6015、メッセージ:計算リソースクォータを超過したためドロップされました」というエラーメッセージが表示されます。

再インデックスの制限

項目

制限

最大同期レート

20 MB/秒

SQL ステートメントの制限

項目

制限

カテゴリ

説明

DDL および DML

該当なし

サポートされていません

グローバルメモリ

該当なし

サポートされていません

グローバルメモリは、すべてのデータが分散されてソートで返されるのを防ぐために制限されています。たとえば、SELECT * FROM t ORDER BY id LIMIT 1000000000 ステートメントを実行すると、データ量が制限を超えた場合にメモリ不足(OOM)エラーが発生します。

NULL 値

該当なし

サポートされていません

LEFT JOIN 操作などの特定の操作の結果で NULL 値が返される場合、NULL 値は指定されたデフォルト値に置き換えられます。

LIKE 演算子と RLIKE 演算子

該当なし

サポートされていません

LIKE 演算子と RLIKE 演算子は、大量のデータをクエリする必要がある場合、パフォーマンス要件を満たすことができません。QUERY 関数を使用してデータをクエリすることをお勧めします。

データの再シャッフル

該当なし

サポートされていません

ビジネスシナリオとクエリモードに基づいてオフラインデータ配布を設計する必要があります。OpenSearch 高性能検索版は、シャード間のデータの再シャッフルをサポートしていません。複数のテーブルを結合または集計する場合、制限が課せられます。

クエリエラーが発生した場合は、クエリプランを分析することをお勧めします。

ユーザー定義関数(UDF)名

該当なし

推奨

UDF 名は、SQL キーワードまたは予約語と同じにすることはできません。名前の競合が発生した場合は、バッククォート(`)を使用して UDF 名をエスケープする必要があります。

テーブル名と列名

該当なし

形式の制限

テーブル名または列名に特殊文字を含めることはできません。文字で始まり、文字、数字、アンダースコア(_)のみを含めることができます。

統計演算子

キーの最大数:5,000,000

最大メモリ使用量:512 MB

数量の制限

制限は単一の統計演算子に課せられます。

返される結果のデフォルト数

100

数量の制限

最も外側の SQL ステートメントに LIMIT 句が含まれていません。過剰なデータが返されるのを防ぐために、デフォルトで LIMIT 100 句が追加されます。

ARRAY タイプのデータ

該当なし

操作の制限

  1. contain や notcontain などの UDF を使用して、ARRAY タイプのデータを比較およびクエリする必要があります。=、<、>、IN などの演算子はサポートされていません。

  2. GROUP BY 句は ARRAY タイプのデータをサポートしていません。事前に UNNEST 関数を使用して配列を展開する必要があります。配列が展開されると、データ量が短時間で増加する可能性があります。パフォーマンスの低下を評価することをお勧めします。

  3. JOIN 句は ARRAY タイプのデータをサポートしていません。MULTICAST 変換を使用して配列を配布する必要があります。配布されたデータが結合されると、データ量が短時間で増加する可能性があります。パフォーマンスの低下を評価することをお勧めします。

動的パラメーター

該当なし

操作の制限

式内の定数のみを置き換えることができます。フィールド名とテーブル名は置き換えることができません。LIMIT 句は置き換えることができません。

ORDER BY 句

該当なし

操作の制限

ORDER BY 句は LIMIT 句と組み合わせて使用する必要があります。

UNION 演算子

該当なし

操作の制限

  1. 入力テーブルのフィールドの名前、タイプ、および数は一致している必要があります。

  2. UNION ALL 演算子のみがサポートされています。UNION 演算子はサポートされていません。

サマリーテーブルクエリ

該当なし

操作の制限

サマリーテーブルを完全にスキャンすることはできません。サマリーテーブルをクエリするときは、主キーを指定する必要があります。

子テーブルクエリ

該当なし

操作の制限

子テーブルは多重集合フィールドです。このフィールドを返すことはできません。子テーブルをクエリするときは、SELECT * 句を使用しないでください。

DATE または RANGE インデックスクエリ

該当なし

操作の制限

クエリでは等号(=)はサポートされていません。QUERY('time', '[1, 10]') などの QUERY 関数を使用できます。

属性フィールド

該当なし

操作の制限

デフォルトでは、SQL ステートメントのすべてのフィールドに対して属性が作成されます。TEXT または SHORT_TEXT タイプのデータは、式を使用して計算することはできません。

定数文字列

該当なし

該当なし

1. SQL ステートメントの定数文字列は、単一引用符(')で囲む必要があります。例:SELECT 'abc' FROM t;。

2. SQL ステートメントの定数文字列に単一引用符(')が含まれている場合は、各単一引用符(')を 2 つの単一引用符('')に置き換えます。例:

SELECT 'ab''c' FROM t; // 文字列の実際の値は ab'c です。

SELECT 'ab''''c' FROM t; // 文字列の実際の値は ab''c です。

3. 動的パラメーターで文字列をエスケープする方法の詳細については、動的パラメーターを参照してください。