SQL CLI

Elasticsearchは、binディレクトリにSQL CLIを実行するためのスクリプトを提供しています:

Bash

  1. $ ./bin/elasticsearch-sql-cli

Elasticsearchインスタンスに接続するためのURLを最初のパラメータとして渡すことができます:

Bash

  1. $ ./bin/elasticsearch-sql-cli https://some.server:9200

クラスターでセキュリティが有効になっている場合、SQL CLIにusername:password@host_name:portの形式でユーザー名とパスワードを渡すことができます:

Bash

  1. $ ./bin/elasticsearch-sql-cli https://sql_user:strongpassword@some.server:9200

CLIが実行されている間、Elasticsearchがサポートする任意のクエリを使用できます:

Sqlcli

  1. sql> SELECT * FROM library WHERE page_count > 500 ORDER BY page_count DESC;
  2. author | name | page_count | release_date
  3. -----------------+--------------------+---------------+---------------
  4. Peter F. Hamilton|Pandora's Star |768 |1078185600000
  5. Vernor Vinge |A Fire Upon the Deep|613 |707356800000
  6. Frank Herbert |Dune |604 |-144720000000
  7. Alastair Reynolds|Revelation Space |585 |953078400000
  8. James S.A. Corey |Leviathan Wakes |561 |1306972800000

SQL CLIを含むjarはスタンドアロンのJavaアプリケーションであり、スクリプトはそれを起動するだけです。これを他のマシンに移動しても、Elasticsearchをインストールする必要はありません。提供されたスクリプトファイルがない場合、次のようなコマンドを使用してSQL CLIを起動できます:

Bash

  1. $ ./java -jar [PATH_TO_CLI_JAR]/elasticsearch-sql-cli-[VERSION].jar https://some.server:9200

または

Bash

  1. $ ./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です。さらに、SQL CLI jarが存在するフォルダーからコマンドを実行していない場合は、フルパスを提供する必要があります。

CLI commands

SQLクエリに加えて、CLIは特定のコマンドも実行できます:

  • allow_partial_search_results = <boolean>(デフォルトfalse
  • trueの場合、シャードリクエストのタイムアウトやシャードの失敗がある場合は部分的な結果を返します。falseの場合、部分的な結果なしでエラーを返します。

Sqlcli

  1. sql> allow_partial_search_results = true;
  2. allow_partial_search_results set to true
  • fetch_size = <number>(デフォルト1000
  • クエリ実行のためのフェッチのサイズを変更できます。各フェッチはフェッチセパレーター(明示的に設定されている場合)で区切られます。

Sqlcli

  1. sql> fetch_size = 2000;
  2. fetch size set to 2000
  • fetch_separator = <string>(デフォルトでは空文字列)
  • フェッチ間のセパレーター文字列を変更できます。

Sqlcli

  1. sql> fetch_separator = "---------------------";
  2. fetch separator set to "---------------------"
  • lenient = <boolean>(デフォルトfalse
  • falseの場合、Elasticsearch SQLは配列値を含むフィールドに対してエラーを返します。trueの場合、Elasticsearch SQLは配列から最初の値を返しますが、一貫した結果を保証するものではありません。

Sqlcli

  1. sql> lenient = true;
  2. lenient set to true
  • info
  • サーバー情報を返します。

Sqlcli

  1. sql> info;
  2. Node:mynode Cluster:elasticsearch Version:8.3
  • exit
  • CLIを閉じます。

Sqlcli

  1. sql> exit;
  2. Bye!
  • cls
  • 画面をクリアします。

Sqlcli

  1. sql> cls;
  • logo
  • Elasticのロゴを印刷します。

Sqlcli

  1. sql> logo;
  2. asticElasticE
  3. ElasticE sticEla
  4. sticEl ticEl Elast
  5. lasti Elasti tic
  6. cEl ast icE
  7. icE as cEl
  8. icE as cEl
  9. icEla las El
  10. sticElasticElast icElas
  11. las last ticElast
  12. El asti asti stic
  13. El asticEla Elas icE
  14. El Elas cElasticE ticEl cE
  15. Ela ticEl ticElasti cE
  16. las astic last icE
  17. sticElas asti stic
  18. icEl sticElasticElast
  19. icE sticE ticEla
  20. icE sti cEla
  21. icEl sti Ela
  22. cEl sti cEl
  23. Ela astic ticE
  24. asti ElasticElasti
  25. ticElasti lasticElas
  26. ElasticElast
  27. SQL
  28. 8.3.0