Elastic 9.5 上线 Columnar Mode 技术预览:字段默认只存 doc values,倒排索引不再默认建
Elastic 9.5 已 GA,配套的 Elasticsearch release notes 同步更新。以下按官方变更清单逐项梳理会影响索引设计、查询路径和运维的部分。
Columnar Mode(技术预览)
一种 opt-in 的索引模式:每个字段只以列存形式写一次,默认不建倒排索引,换取更小的存储占用,也是更快写入、分析查询和更长数据保留周期的基础。它与现有索引模式并存,API、Dashboards、集成层零改动,已有索引不受影响。
具体行为:
- 字段只存为 doc values,默认没有倒排索引,也没有 BKD tree。
- doc values skippers(带 min/max 元数据的紧凑 skip list)在 number 类型字段上默认开启。
- Columnar Logs 是第一个面向日志的专用 profile:只在
message字段上保留单个倒排索引,保证全文检索速度,其余字段全部列式存储。 - 两种模式都需要显式开启。
适用边界:列式的收益集中在写入吞吐、存储占用和聚合/分析类查询上,适合日志、指标这类字段多、保留期长、以范围扫描和聚合为主的数据。代价是字段级精确查找和高选择性 term 过滤没有倒排索引可依赖,依赖 BKD 的数值/地理范围查询路径也会变化——这类查询密集的场景需要评估后再切。Columnar Logs 的选择也说明了一点:全文检索仍然要付出一个倒排索引的代价,它只是被收敛到了单个字段上。
VectorDB index mode 与 DiskBBQ 自动校准
VectorDB index mode 用单个 setting 开启高性能向量检索,不需要手工调配置;它会给出一组面向向量优化的默认值,覆盖量化、merge policy 和 cache loading。
DiskBBQ 向量检索引入了自动校准:对向量做统计分析后,自动配置量化深度、preconditioning 和 oversampling,不再依赖人工试参。
原生 Prometheus / PromQL 支持转 GA
原生 Prometheus 与 PromQL 支持已 GA,可以把 Prometheus 工作负载迁移到 Elasticsearch 上运行。
TSDB 原生支持 metric temporality
指标可以经由 OTLP 端点以 cumulative 和 delta temporality 摄取。temporality 会作为一个额外的 metric dimension 存储,ES|QL 的 TS 查询会解释 temporality。相关的新设置是 index.time_series.temporality_field。ES95 现在是新 time series data stream 的默认 doc values codec。
ES|QL 变更
- 支持
flattened字段类型(此前不支持)。 - 新增
FIELD_EXTRACT函数:FIELD_EXTRACT(object, "subfield"),从对象中取出单个子字段。 date_range字段类型进入技术预览,配套函数包括TO_DATE_RANGE、TO_RANGE、RANGE_MIN/RANGE_MAX/RANGE_CONTAINS/RANGE_INTERSECTS/RANGE_WITHIN,以及通用函数COUNT、PRESENT、ABSENT、MV_*。- ES|QL Data Federation 为实验性功能。
Dashboards、可视化与 Fast Mode
Dashboards & Visualizations API 已 GA,对话中的 dashboards 也 GA。Fast Mode 是 UI 上的开关:Dashboards 和 Discover 里基于 STATS 的查询会跑在采样数据集上,而不是扫描全量数据。
Agent Builder
新增 Agent Observability and Monitoring(技术预览):以 OpenTelemetry(OTel)格式在 Elasticsearch 中追踪 LLM 调用、工具调用和推理步骤。human-in-the-loop 审批用于拦截敏感操作,并把决策记录进审计轨迹。
9.5.5 及其它变更
最新的 9.5.5 包含安全修复。其他改动:
multi_terms聚合限制为最多 128 个字段。kibana_system角色获得第三方 agent 索引的权限。- 依赖升级:Parquet Hadoop bundle、zstd-jni 1.5.7-16。
DLM 支持 frozen tier
生命周期管理现在支持 frozen tier:超过设定年龄的 backing index 会被迁移到 frozen tier,作为部分挂载的 searchable snapshot 存在。该功能需要 Enterprise license,Elastic Cloud Serverless 上不可用。
参考
- Elastic 9.5 GA 公告:
- Elasticsearch release notes: