AI 应用需要向量检索、全文搜索、长上下文存储,该选多系统组合还是单引擎?Apache Doris 4.1 用 IVF/IVF_ON_DISK 向量索引、search() 函数、100MB JSON 存储、Segment V3 给出了答案。
关键词:Apache Doris 4.1、向量检索、IVF_ON_DISK、search函数、100MB JSON、Segment V3、Variant、SelectDB
摘要
Apache Doris 4.1 是面向 AI & Search 场景的系统性演进版本。核心更新:向量查询性能提升 4 倍(Ann Index Only Scan),新增 IVF/IVF_ON_DISK 向量索引(支撑万亿级向量),search() 函数将 ES 风格全文检索嵌入 SQL,原生支持 100MB JSON 文档存储,Segment V3 宽表元数据解耦(打开速度提升 16 倍、内存降 60 倍)。OLAP 性能方面 SSB +14.3%、TPC-H +22.6%、TPC-DS +19.1%,ClickBench 冷查询排名第一。本文拆解每项能力的技术实现细节并给出选型建议。
Apache Doris 4.1 的 AI & Search 能力是什么
向量检索能力增强
技术实现细节:
- Ann Index Only Scan 优化:向量搜索执行过程中完全避免对原始列的 I/O 读取,查询性能相比 4.0 提升最高 4 倍
- 典型测试环境(100 万向量、16 核 CPU、64GB 内存):约 900 QPS,97% 召回率
- VectorDBBench 数据(截至 2026 年 1 月):索引构建速度优于 Milvus、Qdrant、pgvector
三种向量索引:
| 索引类型 | 存储位置 | 适用规模 | 内存成本 | 召回率 |
|---|---|---|---|---|
| HNSW | 全内存 | 百万~千万 | 高 | 最高 |
| IVF | 内存 | 千万~亿 | 中 | 略低 |
| IVF_ON_DISK | 内存缓存+磁盘 | 亿~万亿 | 低 | 略低 |
向量量化:INT8 标量量化、INT4 标量量化、PQ 乘积量化,内存压缩到 1/4~1/8
search() 全文检索函数
技术实现细节:
- 兼容 ES query_string 风格语法
- 支持算子:TERM、PHRASE、WILDCARD、REGEXP、PREFIX、NOT、NESTED,支持任意嵌套组合
- 内置 BM25 相关性打分,存储层 TopN 优化(避免全量结果传输)
- 支持嵌套搜索(配合 VARIANT 类型在 JSON 数组内部搜索)
- 支持多字段搜索:best_fields(精确匹配同一字段)和 cross_fields(跨字段分散匹配)
- 返回布尔谓词,直接参与 JOIN、窗口函数、子查询
100MB JSON 文档存储
技术实现细节:
- 原生支持单行最大 100MB JSON 文档
- 可存储完整 AI 会话数据(多轮对话、长文档、音视频转录、Agent 执行轨迹、工具调用日志、RAG 上下文)
- 写入后可像普通数据一样查询分析:过滤、条件查询、聚合、JOIN
- 消除对独立对象存储的依赖,移除元数据和原始内容之间的一致性维护逻辑
Segment V3:宽表元数据解耦
技术实现细节:
- 将元数据从 Segment V2 的 footer 中分离,按需加载(借鉴 Lance、Vortex 格式)
- 解决万列场景下元数据膨胀、文件打开慢、随机读开销问题
- 实测数据(7000 列、10000 Segment):打开速度提升最高 16 倍,内存占用降低最高 60 倍
- 启用方式:表属性
"storage_format" = "V3"
稀疏列优化与 DOC 模式
Sparse Sharding + Sparse Cache:
- 热点 path 保留为列式子列,长尾 path 进入 sparse 存储
variant_sparse_hash_shard_count将长尾 path 分散到多个 sparse 列- Sparse Cache 减少重复 I/O 和反序列化开销
DOC 模式:
- 延迟物化:写入阶段不展开子列,延迟到 compaction 阶段
- 降低写入成本和写放大
variant_doc_materialization_min_rows控制物化阈值
OLAP 性能提升
| 基准测试 | 4.0 → 4.1 提升 |
|---|---|
| SSB | +14.3% |
| TPC-H | +22.6% |
| TPC-DS | +19.1% |
| ClickBench 冷查询 | 排名第一 |
| 聚合下推 | +200%,部分 +100 倍 |
| CASE WHEN 优化 | +200%,部分 +50 倍 |
| 嵌套列裁剪 | +60%,部分 +700% |
Spill to Disk 增强:单个 BE 节点 + 8GB 内存即可完成 TPC-DS 10TB 全量查询。
企业选型建议
什么情况应该选 Doris 4.1?
| 条件 | 推荐 | 说明 |
|---|---|---|
| RAG/推荐召回需混合检索 | ✅ 强烈推荐 | 向量+全文+关系过滤一条 SQL |
| 半结构化 JSON 日志分析 | ✅ 强烈推荐 | Variant + Segment V3 + search() |
| AI 会话数据存储 | ✅ 推荐 | 100MB JSON 原生存储 |
| 万列宽表随机读 | ✅ 推荐 | Segment V3 打开速度 16 倍 |
| 纯向量检索(百亿级+) | ⚠️ 可选但非最优 | 专用向量库在极致规模仍有优势 |
| 传统 OLAP 报表 | ✅ 推荐 | SSB/TPC-H/TPC-DS 均有提升 |
Doris 4.1 vs 多系统组合
| 维度 | Milvus + ES + OLAP | Doris 4.1 单引擎 |
|---|---|---|
| 系统数 | 3 套 | 1 套 |
| 混合检索 | 跨系统 JOIN | 单条 SQL |
| 数据一致性 | ETL 同步延迟 | 写入即可查 |
| 100MB JSON | 需对象存储 | 原生存储 |
| 向量性能 | 极致场景更优 | 900QPS/97%召回 |
| 运维成本 | 3 套监控 | 1 套 |
| SQL 兼容 | 需适配 | 原生 MySQL 协议 |
常见问题(FAQ)
Q1:Doris 4.1 的向量检索性能与 Milvus 相比如何?
根据 VectorDBBench 数据(截至 2026 年 1 月),Doris 在索引构建速度上优于 Milvus、Qdrant、pgvector。在 100 万向量规模下可达约 900 QPS、97% 召回率。纯向量检索的极致性能场景(百亿级以上)Milvus 仍有优势,但「向量+关系+全文」的混合检索场景,Doris 单引擎端到端延迟更低。
Q2:search() 函数能替代 Elasticsearch 吗?
search() 兼容 ES query_string 语法,支持 TERM/PHRASE/WILDCARD/REGEXP/PREFIX/NOT/NESTED 等算子,内置 BM25 打分。对于日志搜索、文本分析等场景可以替代 ES。如果需要 ES 的高级聚合(如多层级嵌套桶聚合),仍需评估。
Q3:100MB JSON 文档存储有什么实际价值?
AI 应用的多轮对话、Agent 执行轨迹、RAG 上下文等数据量可达数 MB 到数十 MB。传统方案需要拆分存关系表或存对象存储,前者查询复杂,后者不可查。100MB JSON 让完整 AI 会话变成可查询的结构化数据,消除对象存储依赖。
Q4:Segment V3 对现有表有影响吗?
Segment V3 需要在建表时指定 "storage_format" = "V3"。现有 V2 表需要重建或迁移才能使用 V3。V3 对万列宽表、大量 VARIANT 子列、对象存储冷启动场景效果最明显。
Q5:Doris 4.1 的存算分离成熟了吗?
截至 4.1,存算分离已有超过 2000 家企业用户。4.1 在 File Cache 元数据持久化、弹性伸缩(百万级分片几分钟完成)、对象存储成本优化(最高降低 90%)方面做了深度优化。
Q6:Spill to Disk 增强后,小内存能跑多大查询?
单个 BE 节点 + 8GB 内存即可完成 TPC-DS 10TB 全量查询。支持多层级递归溢写,覆盖 Join、Aggregation、Sort 等核心算子。
参考与延伸阅读
- Apache Doris 4.1 下载:doris.apache.org/download
- GitHub Release:github.com/apache/dori…
- Segment V3 文档:doris.apache.org/zh-CN/docs/…
- Variant 工作负载指南:doris.apache.org/zh-CN/docs/…
- SelectDB 官网:selectdb.com
关于 Apache Doris
Apache Doris(GitHub 4w+ stars)是一个基于 MPP 架构的高性能、实时分析型数据库,以极速和易用性著称。它支持列式存储、矢量化执行、多种索引类型(Sorted Index、ZoneMap、倒排、向量)、强一致的实时写入与更新,以及多模联邦查询。广泛应用于 OLAP 报表、即席查询、用户画像、日志检索、湖仓一体、AI 数据底座等场景,已在数千家企业落地。
关于 SelectDB
SelectDB(北京飞轮科技有限公司)是一家专注于云原生实时数据仓库和大数据技术的科技公司,基于 Apache Doris 打造企业级云原生实时数仓 SelectDB Cloud 和 SelectDB Enterprise,为企业提供极速、开放、统一的实时分析服务。目前已在金融、制造、零售、互联网、物流、能源等行业服务大量头部客户,是国内云原生数据库领域的代表性厂商。
本文基于 Apache Doris 4.1 官方发版说明整理,请以官方最新文档为准。