是否完全支持 SQL 和 PPL?
Is SQL and PPL fully supported?
我尝试了一些查询,发现一些 SQL 查询有效,而另一些则无效。
我使用开发工具上传了测试数据。我也上传了几百个文档(crwaler)
PUT /library/book/_bulk?refresh&pretty
{"index":{"_id": "Leviathan Wakes"}}
{"name": "Leviathan Wakes", "author": "James S.A. Corey", "release_date": "2011-06-02", "page_count": 561}
{"index":{"_id": "Hyperion"}}
{"name": "Hyperion", "author": "Dan Simmons", "release_date": "1989-05-26", "page_count": 482}
{"index":{"_id": "Dune"}}
{"name": "Dune", "author": "Frank Herbert", "release_date": "1965-06-01", "page_count": 604}
- 这可以正常工作并显示索引。
SHOW tables LIKE %;
.kibana_1
cwl-2021.01.05
library
- 这也行。显示 42 条记录。
select * from .kibana_1;
这按预期工作:
select * from library where page_count > 500 and name = 'Dune'
- 这不起作用:
select * from cwl-2021.01.05
收到“无响应”错误
- 这有效,但仅显示 400 条记录中的 200 条:
select * from cwl*
- 仅当 ID 在前 200 条记录内时才有效:
select * from cwl* where requestID = '3FB4131539FD4403'
管道查询语言仅适用于库索引。
search source=library page_count > 500 and name = 'Dune'
它不适用于其他索引,例如 .kibana_1 或 cwl-2021.01.05
我不确定 AWS elasticsearch 实例如何支持 SQL 和 PPL。
这是因为 SQL 并且 PPL 不喜欢 table 名称中的点或破折号等特殊字符。
PUT /cwl-2021.01.06/_alias/cwl20210106
PUT /cwl-2021.01.07/_alias/cwl20210107
我创建了一个别名,现在一切似乎都在按预期工作。
select * from cwl20210107 where eventID = 'xxx' limit 100
所有节拍、爬虫(默认情况下)的索引名称中都有特殊字符。更改索引名称并不容易。 :)
请参阅此参考以使用特殊字符分隔标识符。
有关文档的更多信息:
Sql : https://github.com/opendistro-for-elasticsearch/sql/blob/develop/docs/user/index.rst
个人:https://github.com/opendistro-for-elasticsearch/sql/blob/develop/docs/experiment/ppl/index.rst
贡献:https://github.com/opendistro-for-elasticsearch/sql/blob/develop/docs/developing.rst
论坛:https://discuss.opendistrocommunity.dev/c/sql/8
Sql/ppl : 都是开源开发的,并在 aws 服务中按原样使用。
对于此用户案例,您始终可以使用反引号。例如
POST /_opendistro/_ppl
{
"query": """
source=`filebeat-7.10.0-2020.11.28`
"""
}
我尝试了一些查询,发现一些 SQL 查询有效,而另一些则无效。
我使用开发工具上传了测试数据。我也上传了几百个文档(crwaler)
PUT /library/book/_bulk?refresh&pretty
{"index":{"_id": "Leviathan Wakes"}}
{"name": "Leviathan Wakes", "author": "James S.A. Corey", "release_date": "2011-06-02", "page_count": 561}
{"index":{"_id": "Hyperion"}}
{"name": "Hyperion", "author": "Dan Simmons", "release_date": "1989-05-26", "page_count": 482}
{"index":{"_id": "Dune"}}
{"name": "Dune", "author": "Frank Herbert", "release_date": "1965-06-01", "page_count": 604}
- 这可以正常工作并显示索引。
SHOW tables LIKE %;
.kibana_1
cwl-2021.01.05
library
- 这也行。显示 42 条记录。
select * from .kibana_1;
这按预期工作:
select * from library where page_count > 500 and name = 'Dune'
- 这不起作用:
select * from cwl-2021.01.05
收到“无响应”错误
- 这有效,但仅显示 400 条记录中的 200 条:
select * from cwl*
- 仅当 ID 在前 200 条记录内时才有效:
select * from cwl* where requestID = '3FB4131539FD4403'
管道查询语言仅适用于库索引。
search source=library page_count > 500 and name = 'Dune'
它不适用于其他索引,例如 .kibana_1 或 cwl-2021.01.05
我不确定 AWS elasticsearch 实例如何支持 SQL 和 PPL。
这是因为 SQL 并且 PPL 不喜欢 table 名称中的点或破折号等特殊字符。
PUT /cwl-2021.01.06/_alias/cwl20210106
PUT /cwl-2021.01.07/_alias/cwl20210107
我创建了一个别名,现在一切似乎都在按预期工作。
select * from cwl20210107 where eventID = 'xxx' limit 100
所有节拍、爬虫(默认情况下)的索引名称中都有特殊字符。更改索引名称并不容易。 :)
请参阅此参考以使用特殊字符分隔标识符。
有关文档的更多信息:
Sql : https://github.com/opendistro-for-elasticsearch/sql/blob/develop/docs/user/index.rst
个人:https://github.com/opendistro-for-elasticsearch/sql/blob/develop/docs/experiment/ppl/index.rst
贡献:https://github.com/opendistro-for-elasticsearch/sql/blob/develop/docs/developing.rst
论坛:https://discuss.opendistrocommunity.dev/c/sql/8
Sql/ppl : 都是开源开发的,并在 aws 服务中按原样使用。
对于此用户案例,您始终可以使用反引号。例如
POST /_opendistro/_ppl
{
"query": """
source=`filebeat-7.10.0-2020.11.28`
"""
}