我是弹性搜索的新手。
如何将以下SQL语句转换为弹性搜索查询?
select sum(totaldevicecount),datasource from
(select distinct oskey,custkey,productkey,
timekey,totaldevicecount,datasource from es_reporting_data_new)
group by datasource;
由于
答案 0 :(得分:1)
将查询简化到下面
return average;
ES查询应为
select sum(totaldevicecount),datasource from es_reporting_data_new group by datasource;
有关更多详细信息,请参见Elastic Search Sum aggregation with group by and where condition。
答案 1 :(得分:0)
用于查询不同的,用于groupBy的过滤器和用于嵌套选择和求和的聚合。
答案 2 :(得分:0)
已经提供了答案。我会加点额外的。 我强烈建议您阅读弹性文档,假设您需要转换许多这样的查询。 由于弹性查询参数不同于sql。因此,深入理解弹性查询参数将帮助您在可能的情况下转换SQL查询。
答案 3 :(得分:0)
Logstash 输入支持 JDBC 输入。 ELK 支持执行查询和加载结果集的一种方法。您可以直接将查询或首选视图用于更大的查询。您的输出将被直接摄取到 ELK 中。 https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html
另外一种方式,如果你想查询索引,你可以直接在开发工具中编写查询,如下所示:
POST _xpack/sql?format=txt
{
"query":"DESCRIBE \"indice-name-*\""
}
POST _xpack/sql
{
"query":"Select data1, data2 from \"indice-name-*\" where data1 = 'ABC' and ID = '11223333'"
}