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

Tablestore:SQL クエリで発生する一般的なエラーのトラブルシューティング方法

最終更新日:Jun 21, 2025

このトピックでは、OTSUnsupportOperation、OTSQuotaExhausted、OTSParameterInvalid、OtsRequestTimeout などの、SQL クエリで発生する一般的なエラーのトラブルシューティング方法について説明します。

OTSUnsupportOperation

エラーメッセージ

説明

解決策

Operation not supported

Tablestore SQL は一部の SQL 文のみをサポートしています。Tablestore でサポートされていない SQL 文を実行すると、エラーが報告されます。

Tablestore でサポートされている SQL 文を実行してください。

Tablestore でサポートされている SQL 文は定期的に更新されます。 Tablestore でサポートされている SQL 文に関する最新情報は、公式 Web サイトで入手できます。 詳細については、「SQL の機能」をご参照ください。

text_match is only supported for TEXT field in filter conditions in search index

text_match および text_match_phrase が正しく使用されていません。 text_match および text_match_phrase は、検索インデックスのテキストフィールドに対してのみフィルター条件として使用できます。

全文検索機能を正しく使用してください。 詳細については、「全文検索」をご参照ください。

text_match_phrase is only supported for TEXT field in filter conditions in search index

OTSQuotaExhausted

エラーメッセージ

説明

解決策

The sql scanned rows of kv exceeds the quota! Search quota is 100000 rows, table quota is 100000 rows

KV エンジンをクエリエンジンとして使用する場合、スキャンされる行数またはスキャンされるデータ量が上限を超えています。

セカンダリインデックスまたは検索インデックスを使用してデータクエリを高速化します。 詳細については、「インデックス選択ポリシー」をご参照ください。

  • 検索インデックスを使用してクエリを高速化します。

    COUNT、SUM、AVG などの集計関数、または GROUPBY 句がクエリの SQL 文に含まれている場合、またはプライマリキー以外を使用してクエリが実行される場合は、検索インデックスを設定してクエリを高速化することをお勧めします。

    検索インデックスが設定されていてもエラーが引き続き報告される場合は、検索インデックスにクエリが実行されるフィールドが含まれているかどうかを確認してください。

  • 検索インデックスが設定されていない場合は、クエリ条件にプライマリキー列が含まれており、左端一致の原則に準拠していることを確認してください。 次に、limit パラメーターを SQL 文に追加して、返される最大行数を指定します。

説明

スキャンできる最大行数は 100,000 行、スキャンできる最大データ量は 128 MB、スキャンタイムアウト期間は 30 秒です。

The sql scanned rows of search exceeds the quota! Search quota is 100000 rows, table quota is 100000 rows

検索インデックスをクエリエンジンとして使用する場合、スキャンされる行数またはスキャンされるデータ量が上限を超えています。

  • limit パラメーターを SQL 文に追加して、返される行数を制限します。

  • SQL 文のクエリ条件を最適化して、一部の SQL 計算タスクを検索インデックスにプッシュダウンします。 計算のプッシュダウンについては、「計算のプッシュダウン」をご参照ください。

The sql duration time exceed the quota! Quota is 30 seconds

SQL 文の実行がタイムアウトしました。

セカンダリインデックスまたは検索インデックスを使用してデータクエリを高速化します。 詳細については、「インデックス選択ポリシー」をご参照ください。

  • 検索インデックスを使用してクエリを高速化します。

    COUNT、SUM、AVG などの集計関数、または GROUPBY 句がクエリの SQL 文に含まれている場合、またはプライマリキー以外を使用してクエリが実行される場合は、検索インデックスを設定してクエリを高速化することをお勧めします。

    検索インデックスが設定されていてもエラーが引き続き報告される場合は、検索インデックスにクエリが実行されるフィールドが含まれているかどうかを確認してください。

  • 検索インデックスが構成されていない場合は、クエリ条件にプライマリキー列が含まれており、左端一致の原則に準拠していることを確認してください。次に、SQL 文に limit パラメーターを追加して、返される最大行数を指定します。

OTSParameterInvalid

エラーメッセージ

説明

解決策

フィールド型の不一致、実際:STRING、期待値:INTEGER、列:xxx、プライマリキー:{"PrimaryKeys":[{"ColumnName":"xxx","Value":"xxx","PrimaryKeyOption":0}]}

データテーブルの属性列のデータ型が、SQL の属性列のデータ型と一致しません。

Tablestore のデータテーブルはスキーマを必要としません。複数の型のデータを属性列に書き込むことができます。SQL のフィールドはスキーマを必要とし、各フィールドは特定の型を使用する必要があります。

SQL を使用してデータをクエリする場合は、データテーブルの属性列のデータ型が SQL の属性列のデータ型と一致していることを確認してください。返されるエラーメッセージに基づいて、データテーブルの特定の行の特定の属性列のデータ型を変更できます。

テーブル 'instancename.tablename' が存在しません

マッピングテーブルを作成しようとしているテーブルが存在しません。

既存のテーブルまたは 検索インデックスに対してのみ、SQL で CREATE TABLE 文を実行してマッピングテーブルを作成できます。マッピングテーブルを作成しようとしているテーブルまたは 検索インデックスが存在することを確認してください。詳細については、「テーブルのマッピングテーブルを作成する」および「検索インデックスのマッピングテーブルを作成する」をご参照ください。

テーブル 'instancename.tablename' は既に存在します

テーブルのマッピングテーブルは既に作成されています。

DESCRIBE 文を実行して、既存のマッピングテーブルのスキーマをクエリできます。スキーマがビジネス要件を満たしていない場合は、マッピングテーブルの属性列を更新できます。ただし、システムによって自動的に作成されたマッピングテーブルの属性列は更新できません。この場合は、そのような操作がビジネスに影響を与えないことを確認してから、マッピングテーブルを削除して新しいマッピングテーブルを作成します。

フィールド型 'DECIMAL(11,0)' はサポートされていません

SQL は DECIMAL データ型をサポートしていません。

SQL クエリは一部のデータ型のみをサポートしています。詳細については、「SQL でのデータ型マッピング」をご参照ください。

検索エンジン:[WILDCARD_QUERY] クエリの場合、フィールド値の長さが 32 文字を超えています

LIKE 演算子を含む条件の長さが 32 文字を超えています。

クエリ文字列の長さを短縮するか、一致フレーズクエリを使用します。詳細については、「ワイルドカードクエリを使用すると「[WILDCARD_QUERY] クエリの場合、フィールド値の長さが 32 文字を超えています」というエラーが発生する場合はどうすればよいですか。」をご参照ください。

SELECT リストの式 #2 が GROUP BY 句に含まれておらず、非集計列が含まれています

クエリに使用される SQL 文に GROUP BY 句が含まれていますが、集計関数が含まれていません。

SQL 文で集計関数を指定します。詳細については、「データをクエリする」をご参照ください。

オフセット + 制限がクォータを超えています。クォータは 150000 行です

offset パラメーターと limit パラメーターの値の合計が上限を超えています。たとえば、offset パラメーターの値が a、limit パラメーターの値が b で、a と b の合計が上限を超えている場合、このエラーが報告されます。上限は 150,000 です。

offset パラメーターと limit パラメーターの値の合計が 150,000 を超えないようにしてください。

フィールドリストに不明な列 'xxx' があります

SQL 文に指定されたフィールド名がマッピングテーブルに含まれていません。

このエラーメッセージは、データテーブルにフィールドを追加したが、データテーブル用に作成されたマッピングテーブルにフィールドを追加しなかった場合に返されます。

マッピングテーブルには、SQL クエリが実行されるフィールドが含まれている必要があります。データテーブルにフィールドを追加する場合は、データテーブル用に作成されたマッピングテーブルにもフィールドを追加する必要があります。詳細については、「マッピングテーブルの属性列を更新する」をご参照ください。

OtsRequestTimeout

エラーメッセージ

説明

解決策

Search engine: search timeout, please retry

クエリの実行時に検索インデックスにアクセスし、クエリの実行がタイムアウトしました。

使用するクエリ機能で、検索インデックスに事前定義ルールを設定する必要があるかどうかを確認します。

たとえば、ORDER BY 句を使用する場合、検索インデックスの作成時に事前ソートを設定できます。詳細については、「検索インデックスを作成する」をご参照ください。既存の検索インデックスの事前ソート方法が要件を満たしていない場合は、検索インデックスのスキーマを動的に変更することで、検索インデックスの事前ソート方法を変更できます。詳細については、「検索インデックスのスキーマを動的に変更する」をご参照ください。