本文介绍使用SQL查询时的常见错误处理方法,主要包括OTSUnsupportOperation、OTSQuotaExhausted、OTSParameterInvalid和OtsRequestTimeout四种类型的错误。
OTSUnsupportOperation错误
错误信息 | 描述 | 解决办法 |
Operation not supported | 表格存储SQL目前覆盖部分SQL功能集合。当使用未支持的SQL语法时,系统会报错。 | 使用表格存储SQL支持的功能。 SQL功能会快速迭代,最新功能集合请以官网文档为准。更多信息,请参见SQL支持功能说明。 如果您有特定SQL语法的使用需求,请加入钉钉群23307953(表格存储技术交流群-2)或36165029092(表格存储技术交流群-3)进行咨询。 |
text_match is only supported for TEXT field in filter conditions in search index | 全文检索函数使用错误。全文检索函数(text_match和text_match_phrase)必须使用在多元索引中的TEXT类型字段,并且只能出现在过滤条件中。 | 确保正确地使用全文检索功能。更多信息,请参见全文检索。 |
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引擎作为查询引擎时扫描到的行数或者数据量超过限制。 | 使用二级索引或者多元索引加速数据查询。更多信息,请参见索引选择策略。
说明 目前扫描最大行数为100000行,扫描最大数据量为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错误
错误信息 | 描述 | 解决办法 |
Field type mismatch, actual: STRING, expect: INTEGER, col: xxx, primary key: {"PrimaryKeys":[{"ColumnName":"xxx","Value":"xxx","PrimaryKeyOption":0}]} | 数据表中属性列的数据类型和SQL中属性列的数据类型不匹配。 | 表格存储数据表是Free-Schema的,允许在同一个属性列中写入多种类型的数据,但是SQL是Strong-Schema的,每个字段必须具有特定的类型定义。 使用SQL时,请确保数据表中属性列的数据类型与SQL中属性列的数据类型相匹配。您可以根据报错信息修改数据表中指定行对应属性列的数据类型。 |
Table 'instancename.tablename' doesn't exist | 创建映射关系时,指定的表不存在。 | SQL中的Create Table语句只能为已存在的表或者多元索引创建映射关系。请确保要创建映射关系的表或者多元索引存在。更多信息,请参见创建表的映射关系和创建多元索引的映射关系。 |
Field type 'DECIMAL(11,0)' is not supported | SQL不支持数据类型DECIMAL。 | SQL查询只支持部分数据类型。更多信息,请参见SQL数据类型映射。 |
Search engine: length of field value is longer than 32 for the [WILDCARD_QUERY] query | LIKE条件的长度超过32个字符。 | 减少LIKE条件的字符个数。 |
Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column | 使用GROUP BY分组查询时,GROUP BY中未包含聚合函数。 | 在SQL语句中添加聚合条件。更多信息,请参见查询数据。 |
Offset + limit exceeds the quota! quota is 150000 rows | offset+limit超过最大限制。使用limit a,b表达式时,a+b超过最大限制。最大限制为150000。 | 确保offset+limit之和小于等于150000。 如果有更大offset+limit的使用需求,请加入钉钉群23307953(表格存储技术交流群-2)或36165029092(表格存储技术交流群-3)进行咨询。 |
Unknown column 'xxx' in field list | SQL语句包含了映射表中不存在的字段名。 | 通常是由于创建映射表后,在数据表中新增了字段,但是未在对应映射表中添加新字段。 映射表中需要包含查询所需的字段。如果在数据表中新增了字段,请同时在对应映射表中添加新字段。具体操作,请参见更新映射表属性列。 |
OtsRequestTimeout错误
错误信息 | 描述 | 解决办法 |
Search engine: search timeout, please retry | 此次查询访问了多元索引且单次查询运行超时。 | 查看使用的查询特性是否需要在多元索引中配置预定义规则。 例如要使用ORDER BY功能,您可以在创建多元索引时配置索引预排序。如果已有多元索引的预排序方式不满足使用需求,您可以使用动态修改schema功能修改索引预排序。 |