Elasticsearch 6.3 于前天正式发布,其中带来了很多新特性,详情请参见:https://www.elastic.co/blog/elasticsearch-6-3-0-released。这个版本最大的亮点莫过于内置支持 SQL 模块!我在早些时间就说过 Elasticsearch 将会内置支持 SQL,参见:
ElasticSearch内置也将支持SQL特性
。我们可以像操作 MySQL一样使用 Elasticsearch,这样我们就可以减少 DSL 的学习成本,这个 SQL 模块是属于 X-Pack 的一部分。Elasticsearch SQL 主要有以下几个特点:
允许我们在 Elasticsearch 使用 SQL 查询其中的数据;
支持 REST 、 JDBC 以及命令行来来下数据,任何客户端都可以使用 SQL 在 Elasticsearch 中本地搜索和聚合数据;
内部应该是将 SQL 翻译成 DSL 来查询数据的
本文将简单介绍如何在 Elasticsearch 中使用 SQL。
安装
在使用之前,我们需要先安装 Elasticsearch 6.3,因为我这只是测试,所以安装过程非常简单。步骤如下:
经过上面几步,我们就在服务器上简单地部署好了 Elasticsearch 6.3。我们可以访问 ip:9200 页面来确定我们的 Elasticsearch 6.3 是否正常运行:
如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop
在使用 Elasticsearch SQL 之前,我们先通过下面命令往 Elasticsearch 导一些数据:
[返回结果]
SQL REST API
返回结果
上面通过 format=txt 指定以文本的形式返回结果,这种形式对我们人来说看起来很舒服,但是对计算机来说很不友好,所以我们可以指定返回数据的格式:
返回结果
其他的格式支持包括:yaml、smile、cbor 、txt、csv、tsv等等,我们可以通过 format 参数指定。
SQL Translate API
ElasticSearch 提供了 SQL Translate API 接口,我们可以通过这个接口查看 ElasticSearch 如何将我们的 SQL 翻译成 DSL:
返回结果
SQL CLI
ElasticSearch 还为我们提供了一个 CLI,我们可以通过下面命令启动并查询数据:
如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop
SQL JDBC
当然,我们还可以在程序里面通过 JDBC 连接 ElasticSearch 来查询里面的数据:
关于 ElasticSearch SQL 的更多信息,请参见官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/xpack-sql.html
领取专属 10元无门槛券
私享最新 技术干货