Elasticsearch SQL 访问

17 Mar 2025 | 4 分钟阅读

X-pack 是一个 Elastic Stack 扩展,它具有 SQL 功能,可以针对 Elasticsearch 执行 SQL 查询。它以表格形式返回查询结果。这些 SQL 查询在实时环境中执行。在 Elasticsearch 6.3 版本中,引入了 SQL 支持,使用户能够针对搜索引擎运行查询。

为了方便理解,您可以将 Elasticsearch SQL 视为一个翻译器。一个翻译器可以理解 ElasticsearchSQL。通过利用 Elasticsearch 的功能,它可以轻松地实时读取和处理数据。 Elasticsearch SQL 查询的最大优势是,如果您已经熟悉 SQL,则无需学习查询 DSL。

我们都知道,每个工具都有一些优点和缺点。因此,elasticsearch SQL 也有一些优点,如下所示 -

Elasticsearch SQL 的优点

Elasticsearch SQL 具有一些出色的功能,可以帮助您保持思路清晰,为什么您应该使用它。以下是 Elasticsearch SQL 的优点 -

原生集成

Elasticsearch SQL 具有原生集成,允许针对相关节点执行每一个查询。它会根据底层存储高效地执行这些查询。

轻量级且高效

Elasticsearch SQL 是一款轻量级且高效的数据库工具。它没有抽象 Elasticsearch 及其搜索功能。虽然它采用了 SQL 并公开了 SQL,以便能够进行实时的全文搜索。

没有外部部分

这是 Elasticsearch SQL 最有用的优点,因为它不需要任何额外的硬件、进程或库来查询 Elasticsearch。

Elasticsearch SQL CLI

Elasticsearch 提供 elasticsearch-sql-cli.bat 文件,我们可以在其中执行 SQL 查询。它提供对在 Elasticsearch 中运行 SQL 查询的访问权限。此 bat 文件位于 bin 文件夹中。

Elasticsearch SQL 功能

在本章中,我们将演示如何执行基本的 SQL 查询。 Elasticsearch SQL 是一个丰富的平台,它提供了各种有助于执行 SQL 查询的功能。以下是 Elasticsearch SQL 的功能 -

  • 有多种格式,例如 json、txt、csv、yaml 等,用于响应 SQL 查询。
  • Elasticsearch 提供了一个 elasticsearch-sql-cli 实用程序,它提供了一个 CLI,我们可以在其中直接执行 SQL 查询。
  • 它还允许用户使用 Elasticsearch SQL 实现额外的查询 DSL 过滤。

开始使用 Elasticsearch SQL

让我们以创建索引和一些数据为例,开始使用 Elasticsearch SQL。在此示例中,我们将创建一个名为 college 的索引,该索引将包含课程列表。

响应

通过在 elasticsearch-head 插件中执行上述查询,我们将获得与下面给出的响应相同的响应 -

运行 SQL 查询

Elasticsearch SQL 查询以表格形式显示返回的数据。这些 SQL 查询可以使用 SQL REST API 执行。在下面的示例中,我们将创建一个 SQL 查询来从索引中提取数据,您将看到它如何执行并响应用户。

响应

上述查询用于获取来自 college 索引的记录,其中费用超过 148000。您将获得与以下输出相同的响应 -

Elasticsearch SQL Access

Elasticsearch SQL CMD

Elasticsearch 包提供了一个 elasticsearch-sql-cli 命令提示符,用于执行 Elasticsearch SQL 查询。elasticsearch-sql-cli 是一个批处理文件,位于 bin 文件夹中。通过运行此 bat 文件,将显示一个 SQL 命令提示符,您可以在其中执行 Elasticsearch SQL 查询。它将类似于以下屏幕截图

截图

Elasticsearch SQL Access

在这里,您可以访问在 Elasticsearch 中执行 SQL 查询。因此,您不需要学习查询 DSL。