
点击蓝字关注我们
ES|QL简介
1.1 基本概念
ES|QL (Elasticsearch Query Language) 是 Elastic 推出的全新管道化查询语言,具有高度的易用性,能帮助用户更快地探索数据,并且清晰直观地组织复杂查询。
1.2 核心特性
①. 使用|符号连接多个数据处理步骤。
②. 简化数据探索和日志分析的过程。
③. 更清晰、更易读的语法,减少学习曲线。
1.3 主要优势
①. 管道结构:逻辑清晰,易于理解和维护。
②. 强大易用:类 SQL 语法,无需记忆复杂的 JSON 格式。
③. 实时分析:天然支持实时数据探索和即时分析。
1.4 简单示例
查询最新的5条状态为error的日志记录:
FROM logs| WHERE status == "error"| SORT @timestamp DESC| LIMIT 5
ES|QL 与 Elasticsearch DSL(传统查询语言)对比
2.1 概念对比
①. Elasticsearch DSL:
Elasticsearch的传统JSON格式查询语言,功能强大但语法复杂,嵌套深,适合程序员或具备一定技术背景的用户。
②. ES|QL:
新一代管道化语言,语法直观易读,类SQL风格,适合快速数据探索,降低了学习成本和使用难度。
2.2 功能及特性对比:

2.3 查询示例对比
统计不同客户端的请求次数,取前5个最多的客户端。
①. 传统 Elasticsearch DSL 写法(仅聚合):
GET logs/_search{"size": 0,"aggs": {"top_clients": {"terms": {"field": "client_ip","size": 5}}}}
②. ES|QL 写法:
FROM logs| STATS request_count = COUNT(*) BY client_ip| SORT request_count DESC| LIMIT 5
2.4 常用函数

简单使用示例
从名为application_logs的索引里,找出所有等级为error(错误)的日志记录,按照发生的时间倒序排列(最新的在前),并且只显示每条日志的时间、具体错误信息,以及发生错误的主机名称,最后只取最新的10条错误日志进行展示。
FROM application_logs| WHERE level == "error"| SORT @timestamp DESC| KEEP @timestamp, message, host.name| LIMIT 10
逐行分析:
①. FROM application_logs:从来自名为application_logs的索引中获取数据
②. | WHERE level == "error":筛选出字段level值为"error"的记录
③. | SORT @timestamp DESC:根据时间戳字段@ timestamp降序排序
④. | KEEP @timestamp, message, host.name:查询返回的结果仅包含以下三个字段
⑤. | LIMIT 10:最终只展示前10条记录,快速查看最新的错误日志
转化为DSL查询语言即为:
GET application_logs/_search{"size": 10,"_source": ["@timestamp", "message", "host.name"],"query": {"term": {"level": "error"}},"sort": [{"@timestamp": {"order": "desc"}}]}
总结
本篇文章详细介绍了ES|QL基础概念、与传统Elasticsearch DSL的差异和优势,以及常用基础函数和入门示例。
下一篇文章,我们将进入ES|QL高级篇,深入探索聚合、时间序列分析、高级函数组合应用等高级内容,帮助您进一步提升数据分析能力,敬请期待!
关于公司
感谢您关注新智锦绣科技(北京)有限公司!作为 Elastic 的 Elite 合作伙伴及 EnterpriseDB 在国内的唯一代理和服务合作伙伴,我们始终致力于技术创新和优质服务,帮助企业客户实现数据平台的高效构建与智能化管理。无论您是关注 Elastic 生态系统,还是需要 EnterpriseDB 的支持,我们都将为您提供专业的技术支持和量身定制的解决方案。
欢迎关注我们,获取更多技术资讯和数字化转型方案,共创美好未来!
![]() | ![]() |
Elastic 微信群 | EDB 微信群 |

发现“分享”和“赞”了吗,戳我看看吧






