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 界面
- ES|QL 用于搜索用例
- 查询多个源
ES|QL 参考文档位于 Elastic 文档的 Elasticsearch 参考部分中。
ES|QL 的计算架构
ES|QL 构建于 Elasticsearch 中的新计算架构之上,旨在满足 ES|QL 的高功能和性能要求。 ES|QL 搜索、聚合和转换函数直接在 Elasticsearch 本身中执行。 查询表达式不会被转换为 Query DSL 以供执行。 这种方法使 ES|QL 极其高效且用途广泛。
新的 ES|QL 执行引擎在设计时考虑了性能 - 它一次处理多个块而不是每行处理,面向向量化和缓存局部性,并采用专业化和多线程。 它是与现有 Elasticsearch 聚合框架分离的组件,具有不同的性能特征。