SQL CLI
Elasticsearch поставляется со скриптом для запуска SQL CLI в его каталоге bin:
$ ./bin/elasticsearch-sql-cli
Вы можете передать URL экземпляра Elasticsearch для подключения в качестве первого параметра:
$ ./bin/elasticsearch-sql-cli https://some.server:9200
Если безопасность включена в вашем кластере, вы можете передать имя пользователя и пароль в формате username:password@host_name:port в SQL CLI:
$ ./bin/elasticsearch-sql-cli https://sql_user:strongpassword@some.server:9200
После запуска CLI вы можете использовать любой запрос, который поддерживает Elasticsearch:
sql> SELECT * FROM library WHERE page_count > 500 ORDER BY page_count DESC;
author | name | page_count | release_date
-----------------+--------------------+---------------+---------------
Peter F. Hamilton|Pandora's Star |768 |1078185600000
Vernor Vinge |A Fire Upon the Deep|613 |707356800000
Frank Herbert |Dune |604 |-144720000000
Alastair Reynolds|Revelation Space |585 |953078400000
James S.A. Corey |Leviathan Wakes |561 |1306972800000 Jar-файл, содержащий SQL CLI, представляет собой автономное Java-приложение, и скрипты просто запускают его. Вы можете перемещать его на другие машины без необходимости установки Elasticsearch на них. Без предоставленных скриптовых файлов, вы можете запустить SQL CLI, используя команду, подобную следующей:
$ ./java -jar [PATH_TO_CLI_JAR]/elasticsearch-sql-cli-[VERSION].jar https://some.server:9200
или
$ ./java -cp [PATH_TO_CLI_JAR]/elasticsearch-sql-cli-[VERSION].jar org.elasticsearch.xpack.sql.cli.Cli https://some.server:9200
Имя jar будет отличаться для каждой версии Elasticsearch (например, elasticsearch-sql-cli-7.3.2.jar), поэтому используется общий VERSION, указанный в примере выше. Кроме того, если вы не запускаете команду из каталога, где находится jar SQL CLI, вам необходимо указать полный путь.
Команды CLI
Помимо SQL-запросов, CLI также может выполнять некоторые специфические команды:
-
allow_partial_search_results = <boolean>(по умолчаниюfalse) - Если
true, возвращает частичные результаты в случае таймаутов запросов фрагмента или ошибок фрагментов. Еслиfalse, возвращает ошибку без частичных результатов.
sql> allow_partial_search_results = true; allow_partial_search_results set to true
-
fetch_size = <number>(по умолчанию1000) - Позволяет изменить размер извлечений для выполнения запросов. Каждое извлечение ограничено разделителем извлечения (если он явно задан).
sql> fetch_size = 2000; fetch size set to 2000
-
fetch_separator = <string>(пустая строка по умолчанию) - Позволяет изменить строку-разделитель между извлечениями.
sql> fetch_separator = "---------------------"; fetch separator set to "---------------------"
-
lenient = <boolean>(по умолчаниюfalse) - Если
false, Elasticsearch SQL возвращает ошибку для полей, содержащих массивы значений. Еслиtrue, Elasticsearch SQL возвращает первое значение из массива без гарантии согласованности результатов.
sql> lenient = true; lenient set to true
-
info - Возвращает информацию о сервере.
sql> info; Node:mynode Cluster:elasticsearch Version:8.3
-
exit - Закрывает CLI.
sql> exit; Bye!
-
cls - Очищает экран.
sql> cls;
-
logo - Выводит логотип Elastic.
sql> logo;
asticElasticE
ElasticE sticEla
sticEl ticEl Elast
lasti Elasti tic
cEl ast icE
icE as cEl
icE as cEl
icEla las El
sticElasticElast icElas
las last ticElast
El asti asti stic
El asticEla Elas icE
El Elas cElasticE ticEl cE
Ela ticEl ticElasti cE
las astic last icE
sticElas asti stic
icEl sticElasticElast
icE sticE ticEla
icE sti cEla
icEl sti Ela
cEl sti cEl
Ela astic ticE
asti ElasticElasti
ticElasti lasticElas
ElasticElast
SQL
8.3.0
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/sql-cli.html