1

我开始使用Kibana中的Canvas部分- 为了检索数据,它使用Elasticsearch SQL

我尝试做的是检索几个值的计数;我需要将某些值组合在一起 - 以相同字母开头的值。

我的 SQL 查询如下所示:

SELECT 
(SELECT COUNT(*) FROM logs WHERE status LIKE 'missingValue%'),
(SELECT COUNT(*) FROM logs WHERE status LIKE 'errorValue%'),
(SELECT COUNT(*) FROM logs WHERE status='exactErrorValue'),
(SELECT COUNT(*) FROM logs WHERE status='anotherExactErrorValue')

当我使用 SQL 和一个小数据库测试这个查询时,它可以工作

现在,我想在我的画布的一个元素中完成这项工作。我选择一个水平条形图来表示它。

这是我的弹性搜索 SQL 查询:

SELECT 
(SELECT COUNT(*) FROM "monitoring-func-*" 
WHERE status LIKE 'missingValue%'),
(SELECT COUNT(*) FROM "monitoring-func-*"
WHERE status LIKE 'errorValue%'),
(SELECT COUNT(*) FROM "monitoring-func-*" 
WHERE status='exactErrorValue'),
(SELECT COUNT(*) FROM "monitoring-func-*" 
WHERE status='anotherExactErrorValue')

我得到这个错误:

        {
      "error": {
        "message": "[essql] > Unexpected error from Elasticsearch: [unresolved_exception] Invalid call to nullable on an unresolved object ScalarSubquery[With[{}]
\\_Project[[?COUNT(?*)]]
\\_Filter[(status) REGEX (LikePattern)#5139]
 \\_UnresolvedRelation[[][index=monitoring-func-*],null,Unknown index [monitoring-func-*]],5142] AS ?"
      }
    }

看到"unknown Index",我首先认为通配符是问题所在。

但事实并非如此,它在我的其他 Elasticsearch 查询中非常好。

Elasticsearch SQL 不能很好地处理 Subqueries多个SELECT有什么问题吗?我没有找到任何关于此的资源或主题,但也许我搜索了错误的方式。

4

1 回答 1

1

根据您的 Elasticsearch 版本,essql 要么不支持子查询,要么非常有限,这里是文档

于 2019-09-23T14:33:54.880 回答