Полностью ли поддерживаются SQL и PPL?

Я попробовал несколько запросов и обнаружил, что некоторые 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}
  1. Это работает правильно и показывает индексы.
SHOW tables LIKE %;

.kibana_1
cwl-2021.01.05
library
  1. Это тоже работает. Показывает 42 записи.
select * from .kibana_1;

Это работает так, как ожидалось:

select * from library where page_count > 500 and name = 'Dune'
  1. Это не работает:
select * from cwl-2021.01.05

Получение ошибки нет ответа

  1. Это работает, но показывает только 200 записей из 400:
select * from cwl*
  1. Это работает, только если идентификатор находится в пределах первых 200 записей:
select * from cwl* where requestID = '3FB4131539FD4403'

Язык запросов канала работает должным образом только с библиотечным индексом.

search source=library page_count > 500 and name = 'Dune'

Он не работает с другими индексами, такими как .kibana_1 или cwl-2021.01.05.

Я не уверен, как SQL и PPL поддерживаются в экземпляре AWS elasticsearch.


person shantanuo    schedule 05.01.2021    source источник


Ответы (3)


Вы всегда можете использовать обратную кавычку для этого случая пользователя. например

POST /_opendistro/_ppl
{
  "query": """
    source=`filebeat-7.10.0-2020.11.28`
  """
}
person penghuo    schedule 07.01.2021
comment
обратные кавычки работают с PPL, но не с SQL. github.com/opendistro-for-elasticsearch/sql/issues/976 - person shantanuo; 08.01.2021
comment
Вы можете включить новый движок в ODFE 1.12, который поддерживает обратные кавычки. opendistro.sql.engine.new.enabled - person penghuo; 08.01.2021

Пожалуйста, обратитесь к этой ссылке для разделения идентификаторов для использования специальных символов.

https://github.com/opendistro-for-elasticsearch/sql/blob/develop/docs/experiment/ppl/general/identifiers.rst#delimited-identifiers

Подробнее о документации:

Sql: https://github.com/opendistro-for-elasticsearch/sql/blob/develop/docs/user/index.rst

Ppl: 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.

person Community    schedule 07.01.2021
comment
Кстати, отображение сообщения об отсутствии ответа для любой (или каждой) ошибки не является интуитивно понятным способом программирования :) - person shantanuo; 08.01.2021

Это связано с тем, что SQL и PPL не любят специальные символы, такие как точка или тире в имени таблицы.

PUT /cwl-2021.01.06/_alias/cwl20210106

PUT /cwl-2021.01.07/_alias/cwl20210107

Я создал псевдоним, и теперь все работает, как и ожидалось.

выберите * из cwl20210107, где eventID = 'xxx' limit 100

Все биты, сканеры (по умолчанию) имеют специальные символы в именах индексов. Изменить имя индекса непросто. :)

person shantanuo    schedule 07.01.2021