【问题标题】:Unable to perform SQL search on logstash index in kibana无法在 kibana 中对 logstash 索引执行 SQL 搜索
【发布时间】:2019-03-17 09:28:26
【问题描述】:

使用以下查询搜索时,我在 kibana 中有以下索引。

GET /_xpack/sql?format=txt
{
    "query": "SHOW tables"
}

输出:

              name               |     type      
---------------------------------+---------------
.kibana                          |ALIAS          
.kibana_1                        |BASE TABLE     
.monitoring-es-6-2019.03.17      |BASE TABLE     
.monitoring-kibana-6-2019.03.17  |BASE TABLE     
.monitoring-logstash-6-2019.03.17|BASE TABLE     
bank                             |BASE TABLE     
logstash-2015.05.18              |BASE TABLE     
logstash-2015.05.19              |BASE TABLE     
logstash-2015.05.20              |BASE TABLE     

当尝试搜索 logstash 表时,出现如下错误。

GET _xpack/sql?format=txt
{
  "query": "select * from logstash-2015.05.18"
}

错误输出

{
  "error": {
    "root_cause": [
      {
        "type": "parsing_exception",
        "reason": "line 1:23: mismatched input '-' expecting {<EOF>, ',', 'ANALYZE', 'ANALYZED', 'AS', 'CATALOGS', 'COLUMNS', 'CURRENT', 'DAY', 'DEBUG', 'EXECUTABLE', 'EXPLAIN', 'FIRST', 'FORMAT', 'FULL', 'FUNCTIONS', 'GRAPHVIZ', 'GROUP', 'HAVING', 'HOUR', 'INNER', 'INTERVAL', 'JOIN', 'LAST', 'LEFT', 'LIMIT', 'MAPPED', 'MINUTE', 'MONTH', 'NATURAL', 'OPTIMIZED', 'ORDER', 'PARSED', 'PHYSICAL', 'PLAN', 'RIGHT', 'RLIKE', 'QUERY', 'SCHEMAS', 'SECOND', 'SHOW', 'SYS', 'TABLES', 'TEXT', 'TYPE', 'TYPES', 'VERIFY', 'WHERE', 'YEAR', '{LIMIT', IDENTIFIER, DIGIT_IDENTIFIER, QUOTED_IDENTIFIER, BACKQUOTED_IDENTIFIER}"
      }
    ],
    "type": "parsing_exception",
    "reason": "line 1:23: mismatched input '-' expecting {<EOF>, ',', 'ANALYZE', 'ANALYZED', 'AS', 'CATALOGS', 'COLUMNS', 'CURRENT', 'DAY', 'DEBUG', 'EXECUTABLE', 'EXPLAIN', 'FIRST', 'FORMAT', 'FULL', 'FUNCTIONS', 'GRAPHVIZ', 'GROUP', 'HAVING', 'HOUR', 'INNER', 'INTERVAL', 'JOIN', 'LAST', 'LEFT', 'LIMIT', 'MAPPED', 'MINUTE', 'MONTH', 'NATURAL', 'OPTIMIZED', 'ORDER', 'PARSED', 'PHYSICAL', 'PLAN', 'RIGHT', 'RLIKE', 'QUERY', 'SCHEMAS', 'SECOND', 'SHOW', 'SYS', 'TABLES', 'TEXT', 'TYPE', 'TYPES', 'VERIFY', 'WHERE', 'YEAR', '{LIMIT', IDENTIFIER, DIGIT_IDENTIFIER, QUOTED_IDENTIFIER, BACKQUOTED_IDENTIFIER}",
    "caused_by": {
      "type": "input_mismatch_exception",
      "reason": null
    }
  },
  "status": 400
}

您能否建议我们如何在这种情况下进行选择查询。

问候, 赫曼斯。

【问题讨论】:

    标签: elasticsearch elasticsearch-x-pack xpack elasticsearch-sql


    【解决方案1】:

    只需使用双引号即可转义。下面的查询应该可以解决问题。

    POST _xpack/sql?format=txt
    {
        "query": "select * from \"logstash-2015.05.18\""
    }
    

    希望对你有帮助!

    【讨论】:

    • 尝试上述查询仍然出错。 {“错误”:{“root_cause”:[{“类型”:“sql_illegal_argument_exception”,“原因”:“不支持数组(由[@tags]返回)”}],“类型”:“sql_illegal_argument_exception”,“ reason": "不支持数组(由 [@tags] 返回)" }, "status": 500 }
    • 确保您使用的是"query": "select * from \"logstash-2015.05.18\"" 而不是"query": "select * from "logstash-2015.05.18"" 同时让我知道您使用的是哪个版本的_xpack。另请注意,如果您的索引具有 nestedarray 数据类型,则 xpack SQL 功能不支持。您能更新并分享您对该索引的映射信息吗?
    • 我可以看到 Xpack 版本是 6.0.0。 ``` GET /_xpack/sql?format=txt { "query": "DESCRIBE \"logstash-2015.05.18\"" } ``` 上面的查询工作正常并且低于输出。输出链接:paste.fedoraproject.org/paste/-1n5a31eNAD2hPsOQb7Aiw 请您建议如何检查索引类型是嵌套还是数组。谢谢,赫曼斯。
    • @BitraHemanth 看起来有些字段可以嵌套或数组。目前我认为 elasticsearch-sql 不支持查询具有这些数据类型的索引的功能。您可以使用GET logstash-2015.05.18/_mapping 查看映射详细信息。如果可以,您能否执行该操作并将其发布在您的问题部分。
    • 好的,非常感谢。我可以查询类似索引的另一个索引,但无法在 logstash 上执行选择。 GET _xpack/sql?format=txt { "query": "select * from \".monitoring-logstash-6-2019.03.17\"" }
    猜你喜欢
    • 1970-01-01
    • 2022-01-06
    • 2017-06-03
    • 1970-01-01
    • 2021-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多