本文介紹查詢與分析日誌的常見報錯及對應的解決方案。
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
報錯原因
僅使用了分析語句。在Log Service中,分析語句必須與查詢語句一起使用,格式為
查詢語句|分析語句
。解決方案
在分析語句前加上查詢語句,例如
* | 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個。在Log Service中,單個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個,超過Log Service所限制的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
報錯原因
系統內部錯誤。
解決方案
請重新整理頁面,重新執行查詢和分析語句。