赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 表格存储
  4. 操作指南
  5. 常见问题
  6. SQL查询常见错误排查

SQL查询常见错误排查

  • 常见问题
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

本文介绍使用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引擎作为查询引擎时扫描到的行数或者数据量超过限制。

使用二级索引或者多元索引加速数据查询。更多信息,请参见索引选择策略。

  • 通过多元索引加速查询

    如果查询中包括聚合函数(例如count、sum、avg)、group by或者基于非主键的过滤查询,建议配置多元索引进行查询加速。

    如果已配置多元索引仍出现该错误,建议检查多元索引是否包含所有查询时用到的字段。

  • 如果未配置多元索引,请确保查询条件包含主键列且符合最左匹配原则,并为SQL语句添加limit参数来控制返回的行数。

说明

目前扫描最大行数为100000行,扫描最大数据量为128 MB,扫描超时时间为30秒。

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

选择多元索引引擎作为查询引擎时扫描到的行数或者数据量超限。

  • 为SQL语句添加limit参数来控制返回的行数。

  • 优化SQL语句中的查询条件,将部分SQL计算任务下推到多元索引执行。关于计算下推的更多信息,请参见计算下推。

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

SQL运行超时。

使用二级索引或者多元索引加速数据查询。更多信息,请参见索引选择策略。

  • 通过多元索引加速查询

    如果查询中包括聚合函数(例如count、sum、avg)、group by或者基于非主键的过滤查询,建议配置多元索引进行查询加速。

    如果已配置多元索引仍出现该错误,建议检查多元索引是否包含所有查询时用到的字段。

  • 如果未配置多元索引,请确保查询条件包含主键列且符合最左匹配原则,并为SQL语句添加limit参数来控制返回的行数。

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功能修改索引预排序。

相关文章

多元索引路由字段的使用 2025-04-22 14:38

创建多元索引时,您可以选择部分主键列作为路由字段,在进行索引数据写入时,表格存储会根据路由字段的值计算索引数据的分布位置,路由字段的值相同的记录会被索引到相同的数据分区中。 使用流程

如何选择二级索引和多元索引 2025-04-22 14:38

本文通过对原生Tablestore查询、二级索引(Secondary Index)和多元索引(Search Index)三种查询场景进行详细分析,为您提供索引的选择建议。 详细分析请参见Tablestore存储和索引引擎详解。

使用通配符查询时出现length of field value is longer than 32 for the [WILDCARD_QUERY] query异常 2025-04-22 14:38

当使用通配符查询时出现length of field value is longer than 32 for the [WILDCARD_QUERY] query异常时,请确保查询字符串的长度不超过32字节。 现象

使用多元索引Search接口查不到数据 2025-04-22 14:38

当使用多元索引Search接口查不到数据时,一般是由数据表中的数据未正确同步到多元索引或使用的查询方式错误导致的,请检查数据表中的数据是否已正确同步到多元索引以及使用的查询方式是否正确。 问题现象 使用多元索引Search接口查询数据时,出现查不到数据问题。

使用SQL查询存在数据延迟问题 2025-04-22 14:38

问题现象 在新增或更新数据后,使用SQL查询数据时无法立即获取最新数据,存在一定的延迟现象。 可能原因

为什么使用多元索引翻页查询时Token失效了? 2025-04-22 14:38

Token本身不是字符串,直接使用new String(nextToken)将Token编码为String会造成Token信息丢失,导致Token失效。 如果需要持久化nextToken或者传输nextToken给前端页面,您可以使用Base

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号