暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

ES|QL 入门篇--ES|QL介绍

新智锦绣 2025-04-30
250

点击蓝字关注我们



1

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



    2

    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"
                  }
                }
              ]
            }



            3

            总结









            本篇文章详细介绍了ES|QL基础概念、与传统Elasticsearch DSL的差异和优势,以及常用基础函数和入门示例。

            下一篇文章,我们将进入ES|QL高级篇,深入探索聚合、时间序列分析、高级函数组合应用等高级内容,帮助您进一步提升数据分析能力,敬请期待!


            关于公司

            感谢您关注新智锦绣科技(北京)有限公司!作为 Elastic 的 Elite 合作伙伴及 EnterpriseDB 在国内的唯一代理和服务合作伙伴,我们始终致力于技术创新和优质服务,帮助企业客户实现数据平台的高效构建与智能化管理。无论您是关注 Elastic 生态系统,还是需要 EnterpriseDB 的支持,我们都将为您提供专业的技术支持和量身定制的解决方案。


            欢迎关注我们,获取更多技术资讯和数字化转型方案,共创美好未来!

            Elastic 微信群

            EDB 微信群


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


            文章转载自新智锦绣,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

            评论