Skip to main content
1Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Elasticsearch SQLで
何ができるか整理して見た
Acroquest Technology
樋口 慎
樋口 慎 (Acroquest Technology)
ソフトウェアエンジニア/データアナリスト
o 主な業務
• 「データ分析・検索システム」構築支援・開発・コンサル
o 発表など
• JJUG CCC (2016 spring, 2016 fall, 2017 fall)
• Data Analytics Showcase
• Elasticテクニカルワークショップ
twitter:@shin0higuchi
自己紹介
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 2
目次
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 3
1. Elasticsearch SQLとは?
2. 実際に使ってみる
3. まとめ
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 4
Elasticsearch SQLとは
Elasticsearch SQLとは
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 5
1. Elasticsearchに対してSQL Likeなクエリを発行することができる
2. REST APIのエンドポイント、CLI、JDBCなどが提供される
3. X-Pack機能の1つ (Basicで利用可)
※JDBCはPlatinumライセンスが必要
https://www.elastic.co/guide/en/elasticsearch/reference/6.x/xpack-sql.html
4. SQLをElasticsearchのqueryに変換するtranslate APIも提供される
Elasticsearch SQLとは
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 6
提供されるコマンドは下記の通り
(https://www.elastic.co/guide/en/elasticsearch/reference/6.3/sql-commands.htmlより抜粋)
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 7
実際に使ってみる
実際に使ってみる(REST API)
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 8
• テーブルの一覧を見る (SHOW TABLES)
① indexやaliasの一覧を表示する (_cat/indices 相当)
POST /_xpack/sql?format=txt
{
"query": "SHOW TABLES"
}
name | type
---------------+---------------
.kibana | BASE TABLE
account | BASE TABLE
alias | ALIAS
my_index | BASE TABLE
my_index2 | BASE TABLE
リクエスト例 レスポンス例
実際に使ってみる(REST API)
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 9
• columsの一覧を表示する (SHOW COLUMNS, DESCRIBE)
POST /_xpack/sql?format=txt
{
"query": "DESCRIBE account"
}
column | type
------------------+---------------
@timestamp |TIMESTAMP
birthdate |VARCHAR
・・・略・・・
last_name |VARCHAR
リクエスト例 レスポンス例
※Elasticsearchのデータ型との対応は下記を参照。
https://www.elastic.co/guide/en/elasticsearch/reference/6.x/sql-data-types.html
index名
実際に使ってみる(REST API)
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 10
• indexの内容を表示する (SELECT)
POST /_xpack/sql?format=txt
{
"query": "SELECT gender, ROUND(MAX(age)) FROM account2 GROUP BY gender"
}
リクエスト例
field名 Function
も利用可
index名
実際に使って見る(CLI)
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 11
• bin/elasticsearch-sql-cli
• コマンドライン上で手軽にSQLが叩ける
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 12
デモ
まとめ
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 13
• ElastisearchのSQLで色々と試してみた
• コマンドは限られており、JOINなど複雑な処理はできない
• Elasticsearchのqueryに不慣れな人には便利
• CLIで手早く検索する時にJSONを(ほぼ)書かずに済む
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 14
ご清聴ありがとうございました。
Infrastructures Evolution