加入收藏 | 设为首页 |

花束-共享一款Elasticsearch-SQL插件--运用SQL语法查询Elasticsearch

海外新闻 时间: 浏览:182 次

概述

Elasticsearch-SQL是Elasticsearch的一个插件,它能够让我们经过类似SQL的办法对Elasticsearch中的数据进行查询。

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


装置布置

不同Elasticsearch版别需求装置的插件版别也不同,运用的Elastics黄河大道东舞蹈视频earch版别是2.3.3,对应版别插件装置办法是(先切换到Elasticsearch目录下):

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

其实在出产环境中许多服务器是不能直接衔接外网进行下载的。这儿先将文件下载到本地,然后再上传到出产环境的服务器中,在上传到服务器后,从本地文件装置插件。装置插件时在install后边加"file:",之后加Elasticsearch-sql.zip文件的绝对路径:

[root@ceshi202 elasticsearch-2.3.3]# ./bin/plugin installfile:/opt/elasticsearch-2.花束-共享一款Elasticsearch-SQL插件--运用SQL语法查询Elasticsearch3.3/elasticsearch-sql-2.3.3.0.zip
-> Installing from file:/opt/elasticsearch-2.3.3/elasticsearch-sql-2.3.3.0.zip...
Trying file:/opt/elasticsearch-2.3.3/elasticsearch-sql-2.3.3.0.zip ...
Downloading .......................................DONE
Verifying file:/opt/elasticsearch-2.3.3/elasticsearch-sql-2.3.3.0.zipchecksums if available ...
NOTE: Unable to verify checks花束-共享一款Elasticsearch-SQL插件--运用SQL语法查询Elasticsearchum for downloaded plugin (unable to find .sha1 or .md5 file to verify)
Installed sql into /opt/elasticsearch-2.3.3/plugins/sql
[root@ceshi202 elasticsearch-2.3.3]#

装置完毕后,需求重新启动Elasticsearch服务,否则在查找的时分会花束-共享一款Elasticsearch-SQL插件--运用SQL语法查询Elasticsearch有下面的报错:

Invalid index name [sql], must not start with '']; ","status":400}.

我的报错如下:


根本用法

不同Elasticsearch花束-共享一款Elasticsearch-SQL插件--运用SQL语法查询Elasticsearch版别的运用办法不同,1.x / 2.x的办法类似,5.x的运用办法比较特别,

在elasticsearch 1.x / 2.x上,从浏览器拜访:

http://localhost:9200/_plugin/sql/

翻开页面如下:


根本查询

翻开页面的SQL Query中是最根本的查询,将"SELECT * FROM myindex"中的myindex改成你的Elasticsearch中索引的姓名就能够进行查找:

一起可增加查找条件:

SELECT common,page FROM myindex where common.channel = "AppStore" and page.duration > 5000 limit 10

在查找index时能够运用"*"来一起查找多个索引:

SELECT common,page FROM myindex-* where common.channel = "AppStore" and page.duration > 5000 limit 10

能够做根本的计算

Select COUNT(*),SUM(page.duration),MIN(page.duration) as m, MAX(page.duration),AVG(page.duration) FROM myindex-* GROUP BY common.device_id ORDER BY SUM(page.duration), m DESC

也能够运用Elasti花束-共享一款Elasticsearch-SQL插件--运用SQL语法查询Elasticsearchcsearch自带的一些函数做matchQuery、聚合(Aggreg花束-共享一款Elasticsearch-SQL插件--运用SQL语法查询Elasticsearchations)、地理位置(Geographic)等。


Elasticsearch的查询言语(DSL)不太好写,偏偏查询的功用千奇百怪,不管是经过封装JSON仍是经过python/java的api进行封装,都十分不便利。而Elasticsearch-SQL这个插件能够用sql查询Elasticsearch,全体仍是很便利的,主张我们运用。

后边会共享更多devops和DBA方面的内容,感兴趣的朋友能够重视一下~