查询与分析日志的常见报错

本文介绍查询与分析日志的常见报错及对应的解决方法。

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字段建立字段索引,或者您所使用的字段中包含了特殊字符(例如空格)但未使用双引号("")包裹。

  • 解决方法

    1. 确认是否已为目标字段创建字段索引且开启统计功能。

      • 如果是,请执行下一步。

      • 如果不是,请先为目标字段创建字段索引且开启统计功能。具体操作,请参见手动创建字段索引

        执行该操作后,如果问题解决,则无需执行下一步。

    2. 使用双引号("")包裹目标字段。

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

  • 报错原因

    查询和分析语句中所使用的字段的数据类型错误。

  • 解决方法

    检查及修改查询和分析语句,然后重新执行。

ErrorType:SyntaxError.ErrorPosition,line:1,column:9.ErrorMessage:line 1:9: identifiers must not contain ':'

  • 报错原因

    您所分析的字段中包含了半角冒号(:)。

  • 解决方法

    使用半角双引号("")包裹字段。例如您要分析__tag__:__receive_time__字段,可使用语句*| select "__tag__:__receive_time__"

    重要

    在分析字段前,必须先创建字段索引。具体操作,请参见手动创建字段索引

No nodes available to run query

  • 报错原因

    系统内部错误。

  • 解决方法

    请刷新页面,重新执行查询和分析语句。