Elasticsearch:ES|QL 改進的時間線

作者:來自 Elastic?Tomás Murúa

讓我們回顧一下 ES|QL 的歷史和它的改進。

更多閱讀,Elasticsearch:ES|QL 查詢展示。

Elasticsearch 配備了眾多新功能,幫助你為自己的用例構建最佳搜索方案。查看我們的示例筆記本了解更多內容,開始免費云試用,或在本地機器上試用 Elastic。


自首次發布以來,ES|QL 一直在不斷發展。引入了新的命令、函數和功能,以覆蓋更多用例。本文將回顧該語言在各版本中的成長過程以及每次更新所帶來的變化。

什么是 ES|QL?

ES|QL(Elasticsearch Query Language)是一種管道式查詢語言,用于處理 Elasticsearch 中的數據。它允許用戶通過一系列命令來過濾、轉換和匯總數據,并以 JSON 或(在指定時)表格格式返回結果,可通過 _query API 直接集成到后端工作流,或在 Kibana 中用于可視化、儀表板和告警。

ES|QL 的推出旨在簡化常見的數據分析流程,減少在工具或查詢語言之間切換的需要。它的目標是提供一種一致、可讀性強的語法,適用于可觀測性、安全性和通用用例,讓你可以從一個入口輕松對 Elasticsearch 數據提出復雜的問題。

例如,一個簡單的 ES|QL 查詢可能如下所示:

FROM kibana_sample_data_logs
| WHERE @timestamp > NOW() - 1d
| KEEP @timestamp, response, message, tags
| SORT response DESC

使用示例網站日志數據集生成的示例。

我們已經撰寫了許多關于 ES|QL 的文章,推薦你閱讀:

  • 新加入 Elasticsearch 倉庫:ES|QL

  • 從夢想走向現實:宣布 Elastic 的管道查詢語言 ES|QL

  • ES|QL 入門指南(Elasticsearch Query Language)

  • Elasticsearch 管道查詢語言 ES|QL 現已正式發布

  • ES|QL,用于搜索 —— 引入評分和語義搜索

  • 還有更多!

以下是從初始發布開始的 ES|QL 各版本更新摘要。

發布前

在首次公開發布(8.11)之前,ES|QL 已經開發了一年多。團隊在 Elasticsearch 內部設計并構建了一個專用的計算和查詢引擎,以便在靠近數據的位置進行高級處理。

Elasticsearch 8.11(技術預覽)

ES|QL 作為一種管道查詢語言在技術預覽版中首次引入,經過數月開發,旨在簡化數據分析流程。該初始版本引入了函數,如 LEAST、GREATEST、LEFT、RIGHT、CEIL,以及對持續時間和時間段的算術操作。你可以比較和排序文本字段,并使用 TopN 根據多值塊對行進行排序。

Elasticsearch 8.12

該版本重點提升 ES|QL 的速度和效率。新增 PROFILE 選項,用于顯示每個查詢步驟所耗時間,方便調試與優化。ES|QL 開始支持 GEO_POINT 和 CARTESIAN_POINT,可以在查詢中使用空間數據。內部優化減少了內存使用,并更高效地加載多個字段。此外,現在可以直接訪問 _source 字段,從而獲取原始文檔內容。

Elasticsearch 8.13

引入異步查詢 API,支持在后臺執行長時間運行的查詢并稍后獲取結果。新增函數 TO_UPPER、TO_LOWER、date_diff、MV_FIRST 和 MV_LAST,方便處理字符串和多值字段。=~ 運算符支持不區分大小寫的比較。支持跨集群 enrich 查詢,即可以基于遠程索引對查詢進行增強。STATS 命令現在支持聚合表達式。

Elasticsearch 8.14(正式發布)

ES|QL 現已正式發布。可以在 STATS 表達式中對值進行分組,并按表達式排序,而不僅限于常規字段。新增函數 LOCATE(查找子串)、SIGNUM(返回給定數字的符號),以及空間輔助函數 ST_CONTAINS、ST_DISJOINT 和 ST_WITHIN。正則表達式和 CASE 表達式得到了優化。enrich 管道支持文本字段,大型數組的序列化速度也更快。

Elasticsearch 8.15

現在你可以使用 :: 顯式轉換值類型,例如從字符串轉為整數。新增 top_list 聚合類型,幫助匯總最常見的值,ip_prefix 函數獲取 IP 地址的前綴。新增 Arrow 格式輸出,實現與 pandas 或支持 Arrow 的引擎的數據互操作。同時,_ignored 元數據字段也被公開。

Elasticsearch 8.16

新增函數 EXP、HYPOT、SPACE 和 REVERSE。MIN、MAX 和 TOP 聚合支持更多數據類型,如字符串、IP 和布爾值。現在可以使用 MV_PERCENTILE 計算多值字段的百分位數,使用 MV_PSERIES_WEIGHTED_SUM 進行加權評分。性能分析和內存跟蹤得到改進,幫助用戶更好理解性能和資源使用。

Elasticsearch 8.17

ES|QL 在技術預覽中開始支持 date_nanos,提高時間序列用例的精度。新增標量函數 BIT_LENGTH 和 BYTE_LENGTH,分別返回字符串的位數和字節數。skip_unavailable 現在在查詢規劃階段生效,提升多集群環境下的容錯能力。新函數指標(metrics)允許跟蹤哪些 ES|QL 函數使用最多。。

8.18 和 9.0 同時發布,但更新日志仍然不同。

Elasticsearch 8.18

LOOKUP JOIN 進入技術預覽,允許跨索引連接數據。例如,將日志與元數據或用戶配置文件匹配。全文評分通過 _score 正式支持,MATCH 等函數改進了新選項和兼容性。CATEGORIZE 針對大型數據集進行了優化。ST_EXTENT_AGG 和 ST_ENVELOPE 啟用空間匯總,如為地理數據查找邊界框。date_nanos 支持擴展到所有相關日期函數。 ?

Elasticsearch 9.0?

LOOKUP JOIN 進入技術預覽。KQL(技術預覽)允許將 Kibana 風格的過濾器嵌入查詢。 ?

全文匹配評分支持 disjunctions(例如,“this OR that”),_score 現在可在表達式中使用。高級遙測、計劃驗證和 TopN 下推中的部分排序字段都有助于更快、更智能的查詢執行。 ?

技術增強包括更智能的字段上限解析、跨集群查詢的遙測、CCS 的異步元數據以及對未映射字段的支持。STARTS_WITH、ENDS_WITH 和 TO_UPPER 等函數現已下推到 Lucene 以提高性能。 ?

要了解每個版本的詳細信息,你可以查看我們為這篇文章整理的完整時間線,如果你想親自試驗 ES|QL,可以嘗試 ES|QL 沙盒。

原文:Timeline of ES|QL improvements - Elasticsearch Labs

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/914985.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/914985.shtml
英文地址,請注明出處:http://en.pswp.cn/news/914985.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux | Bash 子字符串提取

注:本文為 “ Bash 子字符串提取” 相關合輯。 英文引文,機翻未校。 如有內容異常,請看原文。 How to Extract Bash Substring? [5 methods] 如何提取 Bash 子字符串?[5 種方法] 2024-04-28 00:00:00 In Bash, a substring is…

Vue2 前端開發 - vue-quill-editor 富文本編輯器(編輯器基礎案例、編輯器配置參數解讀、編輯器事件)

一、vue-quill-editor 1、vue-quill-editor 概述vue-quill-editor 是一個基于 Quill 富文本編輯器的 Vue 組件vue-quill-editor 在 Vue 2 項目中可以很方便地集成與使用2、vue-quill-editor 安裝 執行如下指令,安裝 vue-quill-editor npm install vue-quill-editor …

斷網情況下,網線直連 Windows 筆記本 和Ubuntu 服務器

在斷網情況下,通過網線直連 Windows 筆記本 和 Ubuntu 服務器,并使用 VSCode 訪問服務器及 Docker 容器 的步驟如下:1. 物理連接(網線直連) 1.1 使用網線連接 用 網線(Cat5e 或更高) 連接 Windo…

消息隊列總結

為什么需要消息隊列? 隨著互聯網快速發展,業務規模不斷擴張,技術架構從單體演進到微服務,服務間調用復雜、流量激增。為了解耦服務、合理利用資源、緩沖流量高峰,「消息隊列」應運而生,常用于異步處理、服務…

C#引用轉換核心原理:類型視角切換

🔍 C#引用轉換核心原理:類型視角切換 引用類型由內存指針和類型標記組成(如圖1)。引用轉換不改變內存地址,僅改變編譯器識別對象的“視角”: B myVar1 new B(); // 實際B類型對象 A myVar2 (A)myV…

重要發布丨MaxKB V2正式發布,助力用戶快速構建企業級智能體

2025年7月18日,MaxKB V2版本正式發布。MaxKB是一個強大易用的企業級智能體平臺,致力于解決企業AI落地所面臨的技術門檻高、部署成本高、迭代周期長等問題,讓企業用戶落地AI更簡單。 秉承“開箱即用,伴隨成長”的設計理念&#xff…

大語言模型任務分解與匯總:從認知瓶頸到系統化解決方案

一、緣起:為什么大模型需要"分而治之" 1.1 從一個真實場景說起 設想這樣一個場景:你要求GPT-4幫你完成一份包含市場調研、競品分析、財務預測和戰略規劃的商業計劃書。即使是最先進的大模型,面對這樣的復雜任務也會"力不從心&…

Spring核心注解@RequestMapping詳解

RequestMapping 是 Spring Framework 中一個核心注解,用于在 Spring MVC(或 Spring WebFlux)中將 HTTP 請求映射到特定的處理器(Controller 中的方法)或處理器類。它告訴 Spring 框架:當一個匹配特定條件的…

OSPF路由協議的協商過程

OSPF的知識點非常多,協議過程也是一個不大不小的知識點,今天就簡單的說一下,OSPF是如何進行協商的。OSPF(Open Shortest Path First)協議是一種用于路由選擇的動態鏈路狀態協議,是大型網絡普遍使用的動態路…

MySql:索引,結構

文章目錄注意事項結構注意事項 主鍵字段在建表時,會自動創建主鍵索引添加唯一約束時,數據庫實際上會添加唯一索引。 解釋: 增:創建: create [unique] index 索引名 on 表名 (字段名……);-- 舉例 :給tb…

ts學習2

JavaScript 中的每個值都有一組行為,您可以通過運行不同的操作來觀察這些行為。這聽起來很抽象,但作為一個簡單的例子,考慮我們可能在名為 message 的變量上運行的一些操作。 // Accessing the property toLowerCase // on message and then…

k8s環境使用Operator部署Seaweedfs集群(下)

作者:閆乾苓 文章目錄4.4.3 部署seaweedfs集群4.4.4 驗證集群運行狀態4.4.5 測試集群功能4.4.3 部署seaweedfs集群 集群Yaml示例 apiVersion: seaweed.seaweedfs.com/v1 kind: Seaweed metadata:name: seaweed1namespace: default spec:image: chrislusf/seaweedf…

【橘子分布式】gRPC(理論篇)

一、簡介 我們在前面學習了thrift rpc的知識,我們從其中接觸到了IDL,編解碼協議,服務的遠程調用(調用遠程服務就像在在本地調用一樣)等各種概念。 其實我個人對thrift的使用并不多,我更多的是使用今天我們要提到的一個RPC框架稱之…

OSPF高級特性之GR

一、概述OSPF GR(Graceful Restart),在路由器發生故障或管理員干預的情況下重啟了OSPF進程時,重新構建控制平面時,轉發平面不受影響,仍可以正常轉發數據。在我們OSPF網絡環境當中,假設路由器為框式路由器,通常框式路由器有多個主控板,當主主控板發生故障時會切換到備主控板上。…

iOS 構建配置與 AdHoc 打包說明

iOS 構建配置與 AdHoc 打包說明 1. 背景 在 iOS 項目中,通常需要支持 多個環境的構建和分發,比如: 開發環境 (Debug) → 本地調試內測環境 (AdHoc) → 提供 QA / 產品經理測試預發布環境 (AdHoc_Release) → 和正式版配置一致,但通…

【52】MFC入門到精通——MFC串口助手(二)---通信版(發送數據 、發送文件、數據轉換、清空發送區、打開/關閉文件),附源碼

文章目錄1 完整 功能展示2 添加控件變量及聲明2.1 添加控件及變量2.2 SerialPortDlg.h: 頭文件3 函數實現3.1 數據發送3.1.2 寫數據、字符串轉3.2 發送文件3.2.1 打開文件3.2.2 發送文件3.3 清空發送區4 完整MFC項目項下載1 完整 功能展示 串口通信助手 頁面展示,功…

筆試——Day12

文章目錄第一題題目思路代碼第二題題目:思路代碼第三題題目:思路代碼第一題 題目 刪除公共字符 思路 模擬: 遇到需要刪除的字符,則不添加到結果中 代碼 第二題 題目: 兩個鏈表的第一個公共結點 思路 模擬&#x…

SpringMVC @ResponseBody注解詳解

概要ResponseBody是 Spring MVC 中的一個重要注解,用于指示方法的返回值應該直接作為 HTTP 響應體返回,而不是解析為視圖名稱。基本功能ResponseBody主要用于將Java對象轉換為HTTP響應體(通常是JSON或XML)繞過視圖解析器直接返回數…

劍指offer——模擬:順時針打印矩陣

模擬vector.size返回的是矩陣的行數,vector[0].size返回的是矩陣的列數先排除傳入的矩陣是空矩陣先計算上下左右的邊界只要邊界不重合,就不停止輸出,完成一個部分的打印,就將當前的一個邊界回收不可以在for循環結束的時候一起判斷…

electron-vite實踐成品項目

羊駝的工具箱 項目地址 推薦使用該版本 并且使用yarn進行安裝 node版本:v22.16.0 技術棧:electron vue3 vite pinia vuetify3 sequelize sqlite Q:為什么vue3要用 vue2的寫法 A:其實是因為剛開始用vue3的寫法感覺超級惡心 對屬性的賦值和方法的管理可觀性…