elasticsearch

ElasticSearch-SQL使用方式总结

2018-12-16  本文已影响2人  Charoncordis

 1.ES-SQL插件

此插件提供了es 的类sql查询的相关接口。支持绝大多数的sql查询支持

github地址:https://github.com/NLPchina/elasticsearch-sql

环境准备

需安装elasticsearch   node.js   npm

下载安装

进入es根目录,执行如下命令(注意插件版本号需要同自身es版本保持一致)  

./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.5.1.0/elasticsearch-sql-5.5.1.0.zip

or

./bin/elasticsearch-plugin installfile:/elasticsearch-sql-5.5.1.0.zip

下载完毕后解压,并将解压后文件放至elasticsearch/plugins/sql下

下载es-sql的客户端

下载地址:https://github.com/NLPchina/elasticsearch-sql/releases/download/5.4.1.0/es-sql-site-standalone.zip

下载完毕后解压,切换至解压目录的site-server中,执行   

npm install express --save

为防止端口冲突,可在site-server/site_configuration.json配置文件中修改启动服务的端口

完成之后在site-server目录下执行

node node-server.js

访问http://localhost:8088

箭头指向位置为es地址,一般为localhost:9200,红框内可输入sql语句,点击search查询

第二种查询方式为通过http请求 如: curl -XPOST http://localhost:9200/_sql -d 'SELECT * FROM .kibana_1'

注:插件还可支持delete功能,执行语法同SQL

2.ElasticSearch v6.3之后自带SQL查询

该SQL模块属于X_pack的一部分,主要特点如下:

允许在kibana以及elasticsearch中使用 SQL 查询其中的数据

支持 REST 、 JDBC 以及命令行来来下数据,任何客户端都可以使用 SQL 在 Elasticsearch 中本地搜索和聚合数据

要求  ES版本必须为6.3.0及以上

使用说明

REST API方式:

curl -X POST "localhost:9200/_xpack/sql?format=txt" -H 'Content-Type: application/json' -d'

{

"query": "SELECT * FROM library ORDER BY page_count DESC LIMIT 5"

}'

返回结果如下

上面通过format=txt指定了返回数据的形式,也可写成format=json来返回json格式数据

其他的格式支持包括:yaml、smile、cbor 、txt、csv、tsv等等,皆可以通过format参数指定

6.3版本同时提供了Translate API接口,.可以通过这个接口查看es如何将输入的SQL转化成DSL语句

执行:

curl -X POST "localhost:9200/_xpack/sql/translate" -H 'Content-Type: application/json' -d'

{

"query": "SELECT * FROM library ORDER BY page_count DESC",

"fetch_size": 10

}'

返回结果:

Kibana方式:

"query":"  sql查询语句"

SQL CLI 命令行方式:

命令行启动:./bin/elasticsearch-sql-cli

界面如下:

相关sql函数使用详见 

https://www.elastic.co/guide/en/elasticsearch/reference/6.3/xpack-sql.html

上一篇下一篇

猜你喜欢

热点阅读