Doris 4.x 的 AI 化:向量搜索 + AI Functions 意味着什么?
Doris 在做什么
Apache Doris 从 4.0 开始,加入了一个新方向:AI 支持。具体包括:
- 向量搜索:原生支持向量存储和 ANN 检索,类似专用向量数据库的能力。
- AI Functions:SQL 中可以直接调用大模型(如
ai_generate()函数)。 - 全文搜索增强:和向量搜索结合做混合检索。
这听起来有点像”Doris 想做向量数据库”。但它的实际意图比这更有趣。
为什么一个 OLAP 数据库需要向量搜索?
Doris 的核心用户是数据分析师和运营人员。他们的问题是:”上个月销售额最高的品类是哪些?和去年同期比有什么变化?”
但现在的问题是:”为什么这个品类的销量突然下降了?帮我分析原因。”
这个问题的答案不在结构化数据(数字)里,而在非结构化数据里——用户评价、客服对话、社交媒体反馈。传统的 Doris 只能算数字,不能”理解”文本。
Doris 加向量搜索不是为了抢 Milvus 的饭碗,而是为了把”结构化分析”和”非结构化检索”放在同一个引擎里。
具体能做什么?
1. “找出和这个问题最相似的历史案例”
1 | -- 用向量搜索召回与当前问题最相似的历史工单 |
不用再维护 Doris 和向量数据库两套系统。一份数据,同时做分析和检索。
2. AI Functions:SQL 里调 LLM
1 | -- 批量对分析结果做 AI 总结 |
这在以前需要:Doris 跑完聚合 → 导出数据 → Python 脚本调 LLM → 写回结果。现在一个 SQL 搞定。
3. 日志/评论的情感分析
1 | -- 实时分析用户评论情感 |
和大数据栈的关系
Doris 的 AI 化意味着什么?意味着数据处理链路的缩短:
以前:
1 | 数据采集 → Kafka → Flink/Spark 处理 → Doris 存储 → 数据分析结果 |
现在:
1 | 数据采集 → Kafka → Doris(存储 + 分析 + 向量检索 + LLM 调用) |
少了三个组件。这对中小团队来说是巨大的简化——数据分析、向量检索、AI 推理全在一个 SQL 引擎里完成。
局限和边界
Doris 的 AI Functions 不是万能的:
- 不适合高频调用:每条数据都调一次 LLM?API 费用和延迟都是问题。适合批量或按需触发。
- 不是 Embedding 引擎:Doris 存向量但不生成向量。Embedding 还是要靠外部模型(Spring AI 里的 EmbeddingModel)。
- 不是 Agent 引擎:Doris 能调 LLM,但不能做多步骤推理和工具调用。那是 Spring AI Alibaba Graph 的活。
Doris 的 AI 化解决的是”数据分析和 AI 推理在同一个地方发生”,而不是”替代所有 AI 组件”。
意味着什么
- OLAP 数据库正在成为 AI 数据管道的核心节点。 数据到达 Doris 之后,分析和 AI 推理在这个节点上直接完成,不用再分流到多个系统。
- “分析 + AI”的融合是一个趋势。 ClickHouse 也在加向量搜索,StarRocks 也在加。这不是 Doris 一家的事,是整个 OLAP 品类的方向。
- 对后端架构的影响:关注数据流的简化。 如果你的架构里数据已经在 Doris/ClickHouse 里了,考虑直接在 OLAP 引擎上做 AI 推理,而不是把数据搬来搬去。
一句话:Doris 的 AI 化不是要成为向量数据库,而是要让”数据分析”和”AI 推理”在同一个 SQL 引擎里完成。这对数据密集型 AI 后端的架构简化是一个有意义的信号。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 CautionX!
