SQL CLI
Elasticsearchは、bin
ディレクトリにSQL CLIを実行するためのスクリプトを提供しています:
Bash
$ ./bin/elasticsearch-sql-cli
Elasticsearchインスタンスに接続するためのURLを最初のパラメータとして渡すことができます:
Bash
$ ./bin/elasticsearch-sql-cli https://some.server:9200
クラスターでセキュリティが有効になっている場合、SQL CLIにusername:password@host_name:port
の形式でユーザー名とパスワードを渡すことができます:
Bash
$ ./bin/elasticsearch-sql-cli https://sql_user:strongpassword@some.server:9200
CLIが実行されている間、Elasticsearchがサポートする任意のクエリを使用できます:
Sqlcli
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
SQL CLIを含むjarはスタンドアロンのJavaアプリケーションであり、スクリプトはそれを起動するだけです。これを他のマシンに移動しても、Elasticsearchをインストールする必要はありません。提供されたスクリプトファイルがない場合、次のようなコマンドを使用してSQL CLIを起動できます:
Bash
$ ./java -jar [PATH_TO_CLI_JAR]/elasticsearch-sql-cli-[VERSION].jar https://some.server:9200
または
Bash
$ ./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
sql> allow_partial_search_results = true;
allow_partial_search_results set to true
fetch_size = <number>
(デフォルト1000
)- クエリ実行のためのフェッチのサイズを変更できます。各フェッチはフェッチセパレーター(明示的に設定されている場合)で区切られます。
Sqlcli
sql> fetch_size = 2000;
fetch size set to 2000
fetch_separator = <string>
(デフォルトでは空文字列)- フェッチ間のセパレーター文字列を変更できます。
Sqlcli
sql> fetch_separator = "---------------------";
fetch separator set to "---------------------"
lenient = <boolean>
(デフォルトfalse
)false
の場合、Elasticsearch SQLは配列値を含むフィールドに対してエラーを返します。true
の場合、Elasticsearch SQLは配列から最初の値を返しますが、一貫した結果を保証するものではありません。
Sqlcli
sql> lenient = true;
lenient set to true
info
- サーバー情報を返します。
Sqlcli
sql> info;
Node:mynode Cluster:elasticsearch Version:8.3
exit
- CLIを閉じます。
Sqlcli
sql> exit;
Bye!
cls
- 画面をクリアします。
Sqlcli
sql> cls;
logo
- Elasticのロゴを印刷します。
Sqlcli
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