本文介绍查询与分析日志的常见报错及对应的解决方法。
line 1:44: Column 'XXX' cannot be resolved;please add the column in the index attribute
- 报错原因
未对XXX字段建立索引。
- 解决方法
为目标字段设置索引,并开启统计功能。具体操作,请参见配置索引。
ErrorType:QueryParseError.ErrorMessage:syntax error error position is from column:10 to column:11,error near < : >
- 报错原因
查询和分析语句的语法错误,错误位置在冒号(:)附近。
- 解决方法
检查及修改查询和分析语句,然后重新执行。
Column 'XXX' not in GROUP BY clause;please add the column in the index attribute
- 报错原因
在SQL语句中,如果您使用了GROUP BY子句,则在执行SELECT语句时,只能选择GROUP BY的列或者对任意列进行聚合计算,不允许选择非GROUP BY的列。例如
* | SELECT status, request_time, COUNT(*) AS PV GROUP BY status
为非法分析语句,因为request_time不是GROUP BY的列。 - 解决方法
修改查询和分析语句,然后重新执行。例如上述示例的正确语句为
* | SELECT status, arbitrary(request_time), count(*) AS PV GROUP BY status
。更多信息,请参见GROUP BY子句。
sql query must follow search query,please read syntax doc
- 报错原因
仅使用了分析语句。在日志服务中,分析语句必须与查询语句一起使用,格式为
查询语句|分析语句
。 - 解决方法
在分析语句前加上查询语句,例如
* | SELECT status, count(*) AS PV GROUP BY status
。更多信息,请参见基础语法。
line 1:10: identifiers must not start with a digit; surround the identifier with double quotes
- 报错原因
分析语句中的列名、变量名等以数字开头,不符合规范。在SQL标准中,列名必须由字母、数字和下划线(_)组成,且以字母开头。
- 解决方法
更改别名。如何修改,请参见列的别名。
line 1:9: extraneous input ‘’ expecting
- 报错原因
输入了多余的中文引号。
- 解决方法
检查及修改查询和分析语句,然后重新执行。
key (XXX) is not config as key value config,if symbol : is in your log,please wrap : with quotation mark "
- 报错原因
未对XXX字段建立索引,或者您所使用的字段中包含了特殊字符(例如空格)但未使用双引号("")包裹。
- 解决方法
- 为目标字段设置索引,并开启统计功能。具体操作,请参见配置索引。
- 使用双引号("")包裹目标字段。
Query exceeded max memory size of 3GB
- 报错原因
当前查询和分析语句所使用服务端的内存超过3 GB。该问题通常是因为使用GROUP BY子句去重后,值太多导致的。
- 解决方法
优化GROUP BY子句,减少GROUP BY子句中字段的个数。
ErrorType:ColumnNotExists.ErrorPosition,line:0,column:1.ErrorMessage:line 1:123: Column 'XXX' cannot be resolved; it seems XXX is wrapper by ";if XXX is a string ,not a key field, please use 'XXX'
- 报错原因
XXX不是索引字段,不能使用双引号("")包裹。在分析语句中,表示字符串的字符必须使用单引号('')包裹,无符号包裹或被双引号("")包裹的字符表示字段名或列名。
- 解决方法
- 如果XXX为分析字段,您需要为该字段配置索引,并开启统计功能。具体操作,请参见配置索引。
- 如果XXX为普通字符串,需要使用单引号('')包裹。
user can only run 15 query concurrently
- 报错原因
分析操作并发数超过了15个。在日志服务中,单个Project支持的最大分析操作并发数为15个。
- 解决方法
合理控制分析操作的并发数。
unclosed string quote
- 报错原因
查询和分析语句的双引号(")未成对出现。
- 解决方法
检查及修改查询和分析语句,然后重新执行。
error after :.error detail:error after :.error detail:line 1:147: mismatched input 'in' expecting {<EOF>, 'GROUP', 'ORDER', 'HAVING', 'LIMIT', 'OR', 'AND', 'UNION', 'EXCEPT', 'INTERSECT'}
- 报错原因
输入了错误的关键词in。
- 解决方法
检查及修改查询和分析语句,然后重新执行。
Duplicate keys (XXX) are not allowed
- 报错原因
建立索引时,为字段配置了重复的索引。
- 解决方法
检查您的索引配置。具体操作,请参见配置索引。
only support * or ? in the middle or end of the query
- 报错原因
使用模糊查询时,未正确使用通配符。
- 解决方法
修改查询和分析语句中的通配符。相关说明如下:
- 支持在词的中间或者末尾加上模糊查询关键字,即星号(*)或问号(?)。
- 星号(*)或问号(?)不能用在词的开头。
- long数据类型和double数据类型不支持使用星号(*)或问号(?)进行模糊查询。
logstore (xxx) is not found
- 报错原因
日志库XXX不存在或未配置索引。
- 解决方法
请检查对应的日志库是否存在。如果存在,请确保已为日志库开启统计,并至少存在一列索引字段。
condition number 43 is more than 30
- 报错原因
您在查询语句中使用的字段数为43个,超过日志服务所限制的30个。
- 解决方法
请修改查询语句,将字段数量控制在30个以内。
ErrorType:SyntaxError.ErrorPosition,line:1,column:19.ErrorMessage:line 1:19: Expression "data" is not of type ROW
- 报错原因
查询和分析语句中所使用的字段的数据类型错误。
- 解决方法
检查及修改查询和分析语句,然后重新执行。