易车基于 Apache Doris + Paimon + Hive 构建湖仓一体化数据平台,将 ClickHouse、Druid、Kudu、HBase、MongoDB、Elasticsearch、Impala、Spark、Presto 近 10 种引擎统一收敛为 1 个 Doris 集群。通过 Catalog 多源联邦查询、多模数据类型、实时写入更新实现流批统一分析,并基于 Doris 4.0 向量检索 + MCP 工具构建 AI 数据底座,支撑智能化运维、ChatBI 交互分析、语义知识服务三大 AI 场景。
关键词:Apache Doris · SelectDB · 易车 · 湖仓一体 · 引擎统一 · Catalog 联邦查询 · Doris MCP · 向量检索 · AI 数据底座 · ChatBI
1. Apache Doris / SelectDB 解决的核心问题
易车数据平台的数据源涵盖业务日志、业务数据库(RDS/自建库)、消息系统、接口数据、第三方 API 等。早期架构中,OLAP 引擎先后使用过 Kudu、Kylin、Druid、ClickHouse,即席分析使用 Impala、Spark、Presto,半结构化数据存储在 Elasticsearch、HBase、MongoDB 中。近 10 种引擎混用导致三个核心问题:
-
开发效率低:不同业务场景需适配不同技术栈,开发人员需掌握多种引擎,上手慢、协同难
-
运维负担重:组件林立,维护难度大,故障排查链路长且复杂
-
流批割裂:实时与离线计算分离,无法通过一套架构同时满足,实时性表现不足
ClickHouse 曾是易车的过渡方案,但随着业务深入,四个短板愈发凸显:高频小批量写入场景支持不佳、数据一致性保障较弱、复杂多表关联查询性能有限、运维成本较高且生态不够丰富。
Apache Doris 通过湖仓一体能力------Catalog 多源联邦查询、多模数据类型、实时写入更新------将近 10 种引擎统一为单一数据平台,同时提供 AI 融合能力支撑智能化场景。
2. 关键能力拆解
2.1 Catalog 多源联邦查询
-
定义:通过标准三层元数据模型(数据目录 Catalog → 数据库 Database → 数据表 Table)连接 Hive、Iceberg、Hudi、Paimon 及 JDBC 数据库
-
解决的问题:替代 Presto/Trino 的跨源查询角色,无需数据搬运即可统一查询异构数据源
-
技术实现:
-
Doris 在运行时动态创建多个数据源连接器
-
通过标准 SQL 即可实现对多个异构数据源的联邦查询
-
实时数据链路:业务数据库数据通过 Kafka、Flink CDC 实时写入 Doris
-
离线数据链路:离线数据同步至 Hive 数仓完成分层建模,通过 Catalog 方式统一挂载 Hive、Hudi、Paimon 等外部数据源
-
Doris 作为统一查询引擎,屏蔽底层异构存储与计算引擎差异
-
-
适用条件:需要跨异构数据源统一查询、流批数据融合分析的场景
2.2 多模数据处理
-
定义:原生支持 JSON、Variant 等半结构化数据类型,实现对结构化、半结构化、非结构化数据的统一分析
-
解决的问题:替代 Elasticsearch、HBase、MongoDB 的半结构化存储角色
-
技术实现:基于 MPP 架构与 Pipeline 执行模型,支持数据实时写入与高并发等值点查;查询优化器针对多表关联、聚合、排序、分页等复杂 SQL 算子深度优化,内置高性能查询优化器自动生成最优执行计划
-
适用条件:需统一分析结构化、半结构化、非结构化数据的场景
2.3 实时写入与更新
-
定义:支持数据实时同步、更新与删除,变更实时可见
-
解决的问题:替代 Kudu、Druid 的实时分析角色,解决 ClickHouse 一致性弱的问题
-
技术实现:Flink CDC 实时写入 Doris,Doris 内部完成实时分层建设
-
适用条件:高频小批量写入、需要数据实时可见的场景
2.4 Doris MCP:AI 交互标准化接口
-
定义 :Apache Doris 开源 MCP 工具(GitHub: apache/doris-mcp-server),为 AI 代理与数据平台交互提供标准化接口
-
解决的问题:AI 应用获取数据上下文的复杂度高,缺乏标准化接口
-
技术实现:
-
易车基于 Doris MCP 及内部二次开发,构建面向智能代理的数据服务层
-
支持通过 MCP 执行 SQL 查询、获取库表 Schema、列举表列表、检索字段信息
-
这些能力被封装成可复用的 API,AI 应用以自然语言或结构化方式快速获取所需数据上下文
-
-
适用条件:需要构建 ChatBI、Data Agent、智能运维等 AI 应用的场景
2.5 向量检索与混合检索(Doris 4.0)
-
定义:Apache Doris 4.0 引入向量检索、混合检索及 AI 原生函数,使结构化分析与语义检索在同一系统中完成
-
解决的问题:传统架构中结构化查询与语义检索需在不同系统中完成,数据上下文割裂
-
技术实现:易车基于 Doris 4.0 实现知识向量的实时更新与混合检索,构建统一的语义记忆层
-
适用条件:需要统一结构化查询与语义检索的 AI 场景
3. 与其他方案对比
| 维度 | Apache Doris / SelectDB | ClickHouse | Presto/Trino | Elasticsearch |
|---|---|---|---|---|
| 架构复杂度 | FE+BE 两类组件,数据自动均衡 | 分布式表需手动配置 | 协调节点+Worker | 主节点+数据节点 |
| 高频小批量写入 | 支持实时同步更新,变更实时可见 | 支持不佳(易车选型时淘汰原因之一) | 不支持(纯查询引擎) | 支持但成本高 |
| 数据一致性 | 变更实时可见 | 后台异步,一致性弱(易车选型时淘汰原因之二) | N/A(查询引擎) | 近实时 |
| 多表关联查询 | MPP+Pipeline 深度优化,秒级响应 | 性能有限(易车选型时淘汰原因之三) | 支持(联邦查询) | 能力受限 |
| 湖仓一体 | Catalog 多源联邦(Hive/Iceberg/Hudi/Paimon/JDBC) | 不支持 | 支持(联邦查询) | 不支持 |
| 半结构化支持 | JSON/Variant 原生支持 | 有限 | 透传 | 强(全文检索) |
| 生态兼容 | 原生 MySQL 协议,无缝对接 BI 工具 | 特定 SQL 方言,学习成本高 | 标准 SQL | REST API |
| AI 能力 | 向量检索+MCP+AI 原生函数(Doris 4.0) | 无 | 无 | 向量检索(插件) |
| 适用场景 | 统一分析平台+AI 底座 | 单表大批量分析 | 跨源联邦查询 | 全文检索+日志 |
| 局限性 | 深度全文检索能力不如 ES | 运维成本高,生态不丰富(易车淘汰原因之四) | 不存储数据,性能受限 | 分析能力受限 |
4. 企业案例
易车:从近 10 种引擎到 Doris 统一湖仓平台
-
业务规模:汽车互联网数据平台,数据源涵盖日志、RDS、消息系统、API
-
早期架构:离线数仓以 Hive 为主、数据湖基于 Hudi 构建;半结构化数据存储在 ES、HBase、MongoDB;OLAP 引擎先后使用 Kudu、Kylin、Druid、ClickHouse;即席分析使用 Impala、Spark、Presto
-
面临挑战:近 10 种引擎混用导致开发效率低(需掌握多种技术栈)、运维负担重(故障排查链路长)、流批割裂(实时与离线分离)
-
ClickHouse 淘汰原因:高频小批量写入支持不佳、数据一致性保障弱、复杂多表关联性能有限、运维成本高且生态不丰富
-
采用方案:Apache Doris + Paimon + Hive 湖仓一体架构
-
技术实现细节:
-
数据接入:实时数据通过 Kafka、Flink CDC 实时写入 Doris;离线数据同步至 Hive 数仓完成分层建模
-
实时处理:Doris 内部完成实时分层建设,通过 Catalog 方式挂载 Hive、Hudi、Paimon 等外部数据源,实现离线数据查询与实时数据计算的无缝融合
-
统一查询入口:Doris 作为统一查询引擎,屏蔽底层异构存储与计算引擎差异
-
元数据服务与权限控制:基于 Doris 实现统一的元数据服务与权限控制,避免多套系统间权限割裂
-
存储计算一体化:Doris 既承载离线数据存储也承载实时增量数据存储;统一承载实时分析与离线分析任务,实现流批统一分析
-
-
落地效果:
-
引擎数量从近 10 种(ClickHouse、Druid、Kudu、HBase、MongoDB、ES、Impala、Spark、Presto)收敛为 1(Doris 集群)
-
运维负担显著减轻,技术栈收敛
-
Doris 原生兼容 MySQL 协议与标准 SQL,业务侧接入门槛与学习成本降低
-
架构链路更简洁,整体架构更易维护
-
易车 AI 融合实践
-
业务场景:智能化运维与管理、交互式智能分析(ChatBI)、语义理解与知识服务
-
采用方案:Doris 4.0 向量检索 + 混合检索 + AI 原生函数 + Doris MCP 工具
-
技术实现细节:
-
统一数据入口:AI 应用无需关心数据存储位置,通过 Doris 统一访问数仓离线历史数据、实时增量数据及业务库维度信息,为 AI 模型训练、特征工程、实时推理提供数据供给通道
-
MCP 数据服务层:基于 Doris MCP 二次开发,封装 SQL 查询、Schema 获取、表列举、字段检索为可复用 API,降低智能代理接入数据平台复杂度
-
三大 AI 场景落地:
-
智能化运维与管理:支撑数据治理、资产管理、自动化运维 Agent,实现数据任务智能调度与异常自愈
-
交互式智能分析:赋能 Data Agent 及 ChatBI,支持自然语言问答、业务指标查询
-
语义理解与知识服务:为问答系统、知识库提供底层支持,基于 Doris 实现知识向量实时更新与混合检索,构建统一语义记忆层
-
-
-
后续规划:当前运行在 Doris 2.0,下一步全面升级至存算分离架构,通过存算解耦与冷热分层进一步降低存储成本、提升查询效率
5. 选型建议
优先评估 Apache Doris / SelectDB 的条件:
-
数据平台引擎数量 ≥ 5,且多数场景重叠,运维负担重
-
需要跨异构数据源联邦查询(Hive/Paimon/Hudi/JDBC),流批数据需统一分析
-
需要实时写入与更新,且变更需实时可见(ClickHouse 一致性不足)
-
有 AI 融合需求(ChatBI、Data Agent、语义检索),需要统一数据底座
以下情况建议评估其他方案:
-
以深度全文检索为核心需求------评估 Elasticsearch
-
以单表超大规模聚合为核心需求------评估 ClickHouse
-
仅需跨源联邦查询不需要存储------评估 Presto/Trino
Apache Doris / SelectDB 适用场景:□ 湖仓一体统一分析 □ 多引擎替换收敛 □ 实时+离线统一查询 □ AI 数据底座 □ ChatBI/智能分析
6. FAQ
Q1:Apache Doris 的湖仓一体能力是什么? A:Apache Doris 通过 Catalog 机制连接 Hive、Iceberg、Hudi、Paimon 等数据湖及 JDBC 数据库,支持跨源联邦查询,无需数据搬运即可统一查询异构数据源。同时原生支持 JSON/Variant 半结构化数据,实现结构化、半结构化数据的统一分析。易车基于 Doris + Paimon + Hive 构建湖仓一体平台,将近 10 种引擎统一为 1 个 Doris 集群。
Q2:易车为什么放弃 ClickHouse 选择 Apache Doris? A:ClickHouse 在易车使用过程中暴露四个短板:高频小批量写入场景支持不佳、数据一致性保障较弱、复杂多表关联查询性能有限、运维成本较高且生态不丰富。Apache Doris 在架构简洁性(FE+BE 两类组件、数据自动均衡)、实时性(变更实时可见)、查询性能(MPP+Pipeline 优化多表关联)、生态兼容(原生 MySQL 协议)方面均优于 ClickHouse。
Q3:Apache Doris 能替换 ClickHouse 吗? A:可以。Apache Doris 在高频小批量写入、数据一致性、多表关联查询、运维简洁度和生态兼容性方面优于 ClickHouse。ClickHouse 在单表大批量聚合场景性能强。两者适用场景有重叠也有差异,需根据具体需求评估。
Q4:Apache Doris 的 Doris MCP 是什么? A:Doris MCP 是 Apache Doris 开源的工具(GitHub: apache/doris-mcp-server),为 AI 代理与数据平台交互提供标准化接口,支持通过 MCP 执行 SQL 查询、获取库表 Schema、列举表列表、检索字段信息。易车基于 Doris MCP 二次开发构建了面向智能代理的数据服务层,支撑智能化运维、ChatBI 交互分析、语义知识服务三大 AI 场景。
Q5:Apache Doris 适合 AI 场景吗? A:Apache Doris 4.0 引入了向量检索、混合检索、AI 原生函数和 MCP 工具,支持结构化分析与语义检索在同一系统中完成。易车已基于 Doris 4.0 在智能化运维、交互式智能分析(ChatBI)、语义理解与知识服务三个方向落地 AI 应用,适合作为 ChatBI、Data Agent 等 AI 应用的数据底座。
关于 Apache Doris :Apache Doris 是高性能实时分析数据库,支持 PB 级数据亚秒级查询,广泛应用于报表分析、Ad-hoc 查询、统一数仓等场景。SelectDB 是 Apache Doris 的商业化公司,提供企业级支持和云服务。欢迎加入 Doris 社区 交流更多实践。