このトピックでは、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 エンジンをクエリエンジンとして使用する場合、スキャンされる行数またはスキャンされるデータ量が上限を超えています。 | セカンダリインデックスまたは検索インデックスを使用してデータクエリを高速化します。 詳細については、「インデックス選択ポリシー」をご参照ください。
説明 スキャンできる最大行数は 100,000 行、スキャンできる最大データ量は 128 MB、スキャンタイムアウト期間は 30 秒です。 |
The sql scanned rows of search exceeds the quota! Search quota is 100000 rows, table quota is 100000 rows | 検索インデックスをクエリエンジンとして使用する場合、スキャンされる行数またはスキャンされるデータ量が上限を超えています。 |
|
The sql duration time exceed the quota! Quota is 30 seconds | SQL 文の実行がタイムアウトしました。 | セカンダリインデックスまたは検索インデックスを使用してデータクエリを高速化します。 詳細については、「インデックス選択ポリシー」をご参照ください。
|
OTSParameterInvalid
エラーメッセージ | 説明 | 解決策 |
フィールド型の不一致、実際:STRING、期待値:INTEGER、列:xxx、プライマリキー:{"PrimaryKeys":[{"ColumnName":"xxx","Value":"xxx","PrimaryKeyOption":0}]} | データテーブルの属性列のデータ型が、SQL の属性列のデータ型と一致しません。 | Tablestore のデータテーブルはスキーマを必要としません。複数の型のデータを属性列に書き込むことができます。SQL のフィールドはスキーマを必要とし、各フィールドは特定の型を使用する必要があります。 SQL を使用してデータをクエリする場合は、データテーブルの属性列のデータ型が SQL の属性列のデータ型と一致していることを確認してください。返されるエラーメッセージに基づいて、データテーブルの特定の行の特定の属性列のデータ型を変更できます。 |
テーブル 'instancename.tablename' が存在しません | マッピングテーブルを作成しようとしているテーブルが存在しません。 | 既存のテーブルまたは 検索インデックスに対してのみ、SQL で CREATE TABLE 文を実行してマッピングテーブルを作成できます。マッピングテーブルを作成しようとしているテーブルまたは 検索インデックスが存在することを確認してください。詳細については、「テーブルのマッピングテーブルを作成する」および「検索インデックスのマッピングテーブルを作成する」をご参照ください。 |
テーブル 'instancename.tablename' は既に存在します | テーブルのマッピングテーブルは既に作成されています。 |
|
フィールド型 '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 句を使用する場合、検索インデックスの作成時に事前ソートを設定できます。詳細については、「検索インデックスを作成する」をご参照ください。既存の検索インデックスの事前ソート方法が要件を満たしていない場合は、検索インデックスのスキーマを動的に変更することで、検索インデックスの事前ソート方法を変更できます。詳細については、「検索インデックスのスキーマを動的に変更する」をご参照ください。 |