ES添加elasticsearch-sql插件,使用sql直接查询

wylc123 1年前 ⋅ 2490 阅读

1、查看sql插件github

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

2、安装(7.1版本后已经内置可以直接使用)

也可以直接去github上下载放到

下载插件

https://github.com/NLPchina/elasticsearch-sql/releases?after=7.3.1.0https://github.com/NLPchina/elasticsearch-sql

版本要与es版本对应

将插件压缩包里的文件解压到/opt/elasticsearch-5.6.16/plugins/sql目录下

或者直接用命令下载安装:

1、cd elasticsearch  #进入目录

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

将sql文件夹的权限赋权给es用户

chown -R es:elasticsearch /opt/elasticsearch-5.6.16/plugins/sql

然后重启es 即可。

3、下载SQL的Server,方便可视化操作sql

wget https://github.com/NLPchina/elasticsearch-sql/releases/download/5.4.1.0/es-sql-site-standalone.zip

或者直接下解压:

https://github.com/DILIPCHIRU/es-sql-site-standalone

4、解压编译安装

unzip es-sql-site-standalone.zip
cd site-server/
npm install express --save

5、修改启动端口,然后启动server

1、修改SQL的Server的端口
  vi site_configuration.json
2、启动服务
  node node-server.js

 6、访问前端

那么你现在有两种方式可以执行你的SQL:

1)在搜索框里直接输入你的sql了。(我的版本行尾不要写“;”否则会解析不了SQL)

2)通过http请求如

curl -XPOST http://10.93.18.34:8049/_sql -d 'SELECT * FROM audit where dDelay=-2053867461'

你会收到一个json格式的返回

{"took":2,"timed_out":false,"_shards":{"total":5,"successful":5,"failed":0},"hits":{"total":1,"max_score":12.549262,"hits":[{"_index":"audit","_type":"kafka","_id":"AVzzK-h_V9seINxbZ2Ox","_score":12.549262,"_source":{"timestamp":"1498726500000","dCount":680008,"dDelay":-2053867461,"cDelay":0,"clanName":"DJ_elk_common","checkTime":1498728360063,"cCount":0,"pCount":680008,"topicName":"DJ_elk_common_clean","pDelay":370356423}}]}}

下面我们简单说4种类型的sql的书写方式:

1)query

SELECT * FROM bank WHERE age >30 AND gender = 'm'

2)aggregation

select COUNT(*),SUM(age),MIN(age) as m, MAX(age),AVG(age)
  FROM bank GROUP BY gender ORDER BY SUM(age), m DESC

3)delete

DELETE FROM bank WHERE age >30 AND gender = 'm'

4)geo

SELECT * FROM locations WHERE GEO_BOUNDING_BOX(fieldname,100.0,1.0,101,0.0)

5)需要指定index+type

  SELECT * FROM indexName/type

6)如何指定路由

select /*! ROUTINGS(salary) */ sum(count)  from index where type="salary"

 

4、对JDBC的支持

上述查询方式不管是直接在web上输入sql还是通过http请求。elasticsearch-sql还支持通过jdbc进行编程。

这个还没有研究,抽空研究一下再回来。

5. 7.1.0版本之后

7.1.0版本之后可以直接使用kibana来执行sql

直接在Kibana的Dev Tools中运行如下命令即可:


相关文章推荐

全部评论: 0

    我有话说: