正在加载

ES|QL

Elasticsearch 查询语言 (ES|QL) 是一种管道查询语言,用于过滤、转换和分析数据。

您可以编写 ES|QL 查询来查找特定事件、执行统计分析和创建可视化效果。 它支持各种命令、函数和运算符来执行各种数据操作,例如过滤、聚合、时间序列分析等。 它最初支持 Query DSL 中可用功能的子集,但随着每个 Elastic Cloud Serverless 和 Stack 版本的发布,它都在迅速发展。

ES|QL 设计为易于阅读和编写,方便具有不同技术水平的用户使用。 它对于需要在 Elasticsearch 中处理大型数据集的数据分析师、安全专业人员和开发人员特别有用。

ES|QL 使用管道 (|) 以逐步方式操作和转换数据。 这种方法允许您组合一系列操作,其中一个操作的输出成为下一个操作的输入,从而实现复杂的数据转换和分析。

这是一个 ES|QL 查询的简单示例

FROM sample_data
| SORT @timestamp DESC
| LIMIT 3

请注意,查询中的每一行都代表数据处理管道中的一个步骤

  • FROM 子句指定要查询的索引或数据流
  • SORT 子句按 @timestamp 字段降序对数据进行排序
  • LIMIT 子句将输出限制为前 3 个结果

您可以通过两种方式与 ES|QL 交互

  • 程序化访问:将 ES|QL 语法与 Elasticsearch _query 端点一起使用。

  • 交互式界面:通过 Elastic 用户界面(包括 Kibana Discover、Dashboards、Dev Tools 以及 Elastic Security 和 Observability 中的分析工具)使用 ES|QL。

注意

ES|QL 参考文档位于 Elastic 文档的 Elasticsearch 参考部分中。

注意

ES|QL 的计算架构

ES|QL 构建于 Elasticsearch 中的新计算架构之上,旨在满足 ES|QL 的高功能和性能要求。 ES|QL 搜索、聚合和转换函数直接在 Elasticsearch 本身中执行。 查询表达式不会被转换为 Query DSL 以供执行。 这种方法使 ES|QL 极其高效且用途广泛。

新的 ES|QL 执行引擎在设计时考虑了性能 - 它一次处理多个块而不是每行处理,面向向量化和缓存局部性,并采用专业化和多线程。 它是与现有 Elasticsearch 聚合框架分离的组件,具有不同的性能特征。

© . All rights reserved.