Elasticsearch教程

ES SQL访问

Elasticsearch SQL Access

X-pack 是一个弹性堆栈扩展,它具有 SQL 特性来执行针对 elasticsearch 的 SQL 查询。它以表格形式返回查询结果。这些 SQL 查询在实时环境中执行。在 Elasticsearch 6.3 版本中,引入了 SQL 支持,使用户能够针对搜索引擎运行查询。
为了理解,您可以将 Elasticsearch SQL 视为翻译器。翻译人员可以理解 Elasticsearch 和 SQL 。通过利用 elasticsearch 功能,它可以轻松地实时读取和处理数据。 elasticsearch SQL查询的最大优点是,如果你已经熟悉SQL,你就不需要学习查询DSL。
我们都知道每个工具都有一些优点和缺点。因此,elasticsearch SQL 也有一些优点,具体如下——

Elasticsearch SQL 的优点

Elasticsearch SQL 有一些优秀的特性,有助于保持头脑清醒直接,为什么你应该使用它。以下是 Elasticsearch SQL 的优势-
本地集成
Elasticsearch SQL 具有本地集成,允许针对相关节点执行每个查询。它根据底层存储高效地执行这些查询。
轻量级高效
Elasticsearch SQL 是一个轻量级且高效的数据库工具。它不抽象 elasticsearch 及其搜索功能。尽管它包含并公开 SQL 以允许实时进行适当的全文搜索。
无外部部件
这是 elasticsearch 最有用的优点SQL 因为它不需要任何额外的硬件、进程或库来查询 elasticsearch。
Elasticsearch SQL CLI
Elasticsearch 提供 elasticsearch-sql-cli.bat 文件,我们可以在其中执行 SQL 查询。它提供了在 elasticsearch 中运行 SQL 查询的访问权限。这个 bat 文件存在于 bin 文件夹中。

Elasticsearch SQL features

在本章中,我们将演示我们如何执行基本的 SQL 查询。 Elasticsearch SQL 是一个丰富的平台,提供各种有助于执行 SQL 查询的功能。以下是elasticsearch SQL的特点-
有多种格式可用于响应 SQL 查询,例如 json、txt、csv、yaml 等。 Elasticsearch 提供了一个 elasticsearch-sql-cli 实用程序,它提供了一个 CLI,我们可以在其中直接执行 SQL 查询。 它还允许用户使用 elasticsearch SQL 实现额外的查询 DSL 过滤。

Elasticsearch SQL 入门

让我们以一些数据创建索引为例,开始使用 Elasticsearch SQL。在此示例中,我们将创建一个名为 college 的索引,该索引将包含课程列表。
PUT http://localhost:9200/college/
_bulk?refresh/
{
   "index": {"_id": "Btech"}
}
{
   "course": "Btech",
   "branch": "CS", 
   "duration": "4 year", 
   "fee": "142000"
}
{
   "index": {"_id": "MBA"}
}
{
   "course": "MBA", 
   "branch": "Marketing",
   "duration": "2 year",
   "fee": "148000"
}
{
   "index": {"_id": "Fashion Designing"}
}
{
   "course": "Fashion Designing", 
   "branch": "Clothing and textile",
   "duration": "2 year", 
   "fee": "210000"
}
Response
通过在elasticsearch-head插件中执行上面的查询,我们将得到与下面给出的相同的响应-
{
   "took": 247,
   "error": false, 
   "items": [
        {
"index": { 
     "_index": "college",
     "_type": "_docs",
     "_id": "Btech",
     "_version": 1,
     "result": "created",
     "forced_refresh": true,
     "_shards": {
  "total": 2,
  "successful": 1,
    "failed": 0
       },
      "_seq_no": 0,
     "_primary_term": 1,
     "status": 167,
}
         },
        {
"index": { 
     "_index": "college",
     "_type": "_docs",
     "_id": "MBA",
     "_version": 1,
     "result": "created",
     "forced_refresh": true,
     "_shards": {
  "total": 2,
  "successful": 1,
    "failed": 0
       },
      "_seq_no": 0,
     "_primary_term": 1,
     "status": 167,
}
         },
        {
"index": { 
     "_index": "college",
     "_type": "_docs",
     "_id": "Fashion Designing",
     "_version": 1,
     "result": "created",
     "forced_refresh": true,
     "_shards": {
  "total": 2,
  "successful": 1,
    "failed": 0
       },
      "_seq_no": 0,
     "_primary_term": 1,
     "status": 167,
}
         }
     ]
}

运行 SQL 查询

Elasticsearch SQL 查询以表格形式显示返回的数据。这些 SQL 查询可以使用 SQL REST API 执行。在下面的示例中,我们将创建一个 SQL 查询来从索引中获取数据,您将在其中看到它是如何执行并响应用户的。
POST _sql?format=txt
{
   "query": "SELECT * FROM college WHERE fee > '145000'"
}
Response
以上查询用于获取college索引中包含fee is more的记录148000。您将得到与以下输出相同的响应-
Elasticsearch SQL Access

Elasticsearch SQL CMD

Elasticsearch 包提供了一个 elasticsearch-sql-cli 命令提示符来执行 Elasticsearch SQL 查询。 elasticsearch-sql-cli 是一个批处理文件,存在于 bin 文件夹中。通过运行这个 bat 文件,一个 SQL 命令提示符将显示你可以在哪里执行 elasticsearch SQL 查询。它看起来像下面的截图:
Screenshot
Elasticsearch SQL Access
在这里您可以访问在 elasticsearch 中执行 SQL 查询。因此,您无需学习查询 DSL。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4