◈ DB 选型参考
← 返回首页

Apache Doris

OLAP

Apache Doris 是 Apache 顶级项目(源自百度 Palo)的 MPP 实时分析型数据库:列式存储 + 全向量化执行引擎,MySQL 协议接入,主打"高并发点查与复杂 OLAP 查询统一服务",是实时数仓与统一分析场景的主流选项之一。

用 AI 深挖这款:
证据等级:官方文档 厂商口径 社区实测 社区共识 待验证

基本信息

  • 开发方 / 社区:Apache 软件基金会顶级项目,社区驱动;前身为百度 Palo,2018 年捐赠进入 Apache 孵化器,后毕业为顶级项目。商业公司 SelectDB(由 Doris 创始团队创立)提供企业版与云托管服务——评估时须把 Apache 社区项目与商业产品分开。
  • 与 StarRocks 的关系(中立说明):两者都可追溯到百度 Palo。Palo 于 2018 年捐赠给 Apache 形成 Apache Doris;StarRocks 由早期 Doris 代码线独立发展,于 2021 年以 StarRocks 之名开源。今天两者是独立的项目:架构术语与部分接口仍有共同历史痕迹,但功能实现、版本节奏、社区治理已经分化,不能按"相互兼容"做选型假设。
  • 评审版本:4.1.4(2026-09-29 查看 GitHub Releases,为当时最新 release;4.0.x 亦在同步维护,如 4.0.8)。
  • 架构:FE(Frontend:SQL 解析、查询规划、元数据管理)+ BE(Backend:数据存储与查询执行)两类角色;表按分区/分桶切分为 Tablet,多副本分布到 BE。3.0 起支持存算分离模式(计算节点 + 对象存储/HDFS,元数据侧引入 FoundationDB 等共享组件)。
  • 接入协议:MySQL 协议(默认 9030)、HTTP 接口(默认 8030)。
  • 许可证:Apache License 2.0。
  • 主要运行环境:Linux(x86/ARM 均有发行版),支持物理机、容器、Kubernetes(官方提供 Doris Operator)。

硬维度(47 项)

1 静态加密 / TDE 未找到证据

未找到证据——本轮检索未在官方文档与社区资料中找到 Apache Doris 社区版原生 TDE(落盘透明加密)的可靠证据。对象存储服务端加密、磁盘层加密属于基础设施能力,不等于 Doris 内核 TDE。某中文博客声称的 be.conf 中 enable_tde 参数无官方佐证,不可采信。(证据:中;结论方向偏向"查证为无",但因未找到官方明确的不支持声明,按规则记为"未找到证据")

2 TLS / 传输加密 部分支持

部分支持——官方 2.1 中文手册确认自 2.0 起 FE HTTP 接口支持 HTTPS(JKS/PKCS12 证书配置)。MySQL 协议链路、FE–BE 内部 RPC、Stream Load 等链路的 TLS 覆盖情况未找到完整官方说明,故记为部分支持。(证据:中)

3 审计 有

有——FE 提供查询/慢查询审计日志(audit_log_dir、audit_log_modules 支持 slow_query、query 等模块,audit_log_roll_num 控制滚动),并有官方 Audit Loader 插件可把审计日志导入 Doris 内表做分析。注意:这是"有审计日志能力",不等于开箱即用的合规审计报表。(证据:强,见 2.1 中文手册 PDF)

4 认证与权限 有

有——支持用户、角色(Role)、GRANT/REVOKE 权限体系。行级/列级等更细粒度权限的版本边界本轮未逐项核实;LDAP/外部目录集成的官方证据本轮未找到。(证据:中)

5 备份恢复 部分支持

部分支持——通过 Repository + BACKUP/RESTORE 把快照经 Broker 保存到远端存储,支持表级/库级备份与跨集群恢复,可做周期快照与集群迁移。限制:恢复期间表可能已可见但不可访问;覆盖恢复失败后通常需要重新执行;未找到官方 PITR(时间点恢复)证据。(证据:中,核心机制见 2.1 中文手册)

6 可观测性 有

有——FE/BE 提供 metrics 接口、查询 Profile、慢查询日志、审计日志;官方文档提供 Prometheus + Grafana 监控接入方案。这是 Doris 运维体系中比较完整的一块。(证据:强)

7 连接模型 有

有——客户端经 MySQL 协议连接 FE(默认 9030),由 FE 管理会话、解析与规划,再下发到 BE 执行。高并发接入需要前端负载均衡与连接数管理(FE 有 qe_max_connection 等连接上限配置),长连接复用是常规做法。(证据:强)

8 事务与隔离级别 部分支持

部分支持——Doris 的"事务"主要存在于导入路径:Stream Load 的 label 去重与单批原子性、两阶段提交(2PC)预提交/提交、Group Commit 攒批事务;查询侧是快照读。不支持通用 OLTP 式多语句交互事务与标准隔离级别语义,不要按关系型事务数据库做选型假设。(证据:强)

9 复制与一致性 有

有——数据层按 Tablet 多副本(默认 3 副本)分布在 BE 上,副本故障后自动修复与重平衡;FE 元数据多节点高可用(基于 bdbje)。单副本写入多数派确认等协议级细节本轮未做源码级核实。(证据:中)

10 扩展方式 有

有——传统存算一体架构下 BE 可热扩容(注册新 BE 即加入集群,数据自动重平衡);3.0 起的存算分离模式支持计算节点弹性扩缩。FE 扩容涉及元数据组变更,比 BE 重。(证据:强)

11 兼容性 部分支持

部分支持——MySQL 协议兼容:JDBC 与各语言 MySQL 驱动可直接连接,常用 SQL 语法可用,BI 工具接入顺滑。但这不等于 MySQL 存储引擎/事务语义兼容;复杂 MySQL 特性、存储过程等需逐项验证。(证据:强)

12 许可证与商业模式 有

有——Apache License 2.0,社区版功能完整。SelectDB 等厂商提供商业版/云托管服务(含额外企业特性与 SLA),与 Apache 社区项目是两条线,POC 时要确认测的是哪一条。(证据:强)

13 中文资料丰富度 有

有——官方文档中英文齐全,国内社区活跃,博客、问答、生产案例多。但第三方中文博客质量参差,个别文章存在未经核实的配置声称(如所谓 TDE 参数),关键配置务必以官方文档为准。(证据:强)

14 性能与延迟特征 有

有(MPP 向量化;与 StarRocks 同代竞争)。

  • 向量化执行引擎;官方 TPC-H/TPC-DS 数据厂商口径厂商口径。
  • 主键模型支持实时更新,并发点查好于传统 OLAP 官方文档。
  • 存算分离、物化视图是查询加速主要手段 社区共识。

15 合规与认证 部分支持

部分支持(国产 OLAP;信创与云资质走厂商)。

  • Apache Doris 开源版:无官方合规认证 社区共识。
  • 信创名录/信通院测评、SelectDB Cloud 合规资质以厂商官方公告为准厂商口径厂商口径。

16 成熟度与社区生态 有

有(2017 年开源;2022 年 Apache 毕业)。

  • 前身百度 Palo,2017 年开源,2022 年 Apache 毕业 社区共识。
  • GitHub stars 万级;SelectDB 提供商业支持 社区共识。
  • 国内社区活跃,海外声量弱于 ClickHouse/StarRocks 社区共识。

17 标杆用户 有

有(百度系起源;互联网与金融)。

  • 起源百度,百度内部大规模使用 社区共识。
  • 小米、美团等互联网公司公开案例厂商口径厂商口径。
  • 金融/运营商实时数仓案例增长中 厂商口径。

18 生态工具链 有

有(Broker 备份;Flink CDC;Stream Load)。

  • 备份:Broker 备份到 HDFS/S3 官方文档。
  • 入数/CDC:Flink CDC、Stream Load、Routine Load(Kafka)官方文档。
  • 迁移:Doris-Spark/Flink 连接器;监控:Prometheus 社区共识。

19 云托管与 Serverless 有

有(SelectDB Cloud)。

  • SelectDB Cloud(官方云服务)厂商口径。
  • 阿里云/腾讯云等也有 Doris 托管/Serverless 形态 厂商口径。
  • 开源自建仍是主流形态之一 社区共识。

20 数据接入与摄入 有

有(Stream/Broker/Routine/Spark Load 四件套)。

  • Stream Load(HTTP 推)、Broker Load(HDFS/S3 拉)、Routine Load(Kafka 常驻)、Spark Load(大批量)官方文档。
  • Flink Doris Connector / Doris Stream Loader 生态成熟 社区共识。
  • 选型看数据量与实时性:Routine Load 适合常驻流,Broker 适合离线大文件 社区共识。

21 外部数据访问 有

有(Multi-Catalog:Hive/Iceberg/Hudi/JDBC/ES)。

  • Multi-Catalog 可直查 Hive/Iceberg/Hudi/Delta Lake、Elasticsearch、JDBC 源 官方文档。
  • 外表查询可下推谓词,湖仓一体是主打场景 厂商口径。
  • 外表性能弱于内表,大查询建议先导入 社区共识。

22 CDC 与下游同步 部分支持

部分支持(Flink CDC 入 Doris 成熟;对外无原生 CDC)。

  • 入:Flink CDC → Doris 是标准链路 社区共识。
  • 出:Doris 无行级变更日志,对外靠 Binlog(版本覆盖有限)或定期导出 待验证。
  • 常见替代:用 Routine Load 消费上游 Kafka 而不是从 Doris 抽变更 社区共识。

23 TTL 与数据生命周期管理 部分支持

部分支持(动态分区+分区过期;无行级 TTL)。

  • 动态分区按时间自动建分区,配分区保留个数实现滚动过期 官方文档。
  • 无原生行级 TTL,行级过期走 DELETE(Doris 的 DELETE 走导入链路,代价高)官方文档。
  • 冷热分层(storage policy)可把老分区沉到对象存储降成本 官方文档。

24 在线 DDL 与 Schema 演进 部分支持

部分支持(light schema change 加列轻量;改类型/键列重写代价高;分区列/分桶列不可改)。

  • 只改定义不碰数据:加/删 value 列、重命名列、改 VARCHAR 长度走 light schema change——只改 FE 元数据、秒级完成、不重写数据文件 官方文档。
  • 重写数据但位置不变:改列类型、NOT NULL→NULL、改列顺序、改 key 列/主键走 heavyweight——后台 BE 任务逐 tablet 重写,期间双写、存储翻倍,耗时随数据量从分钟到天 官方文档;加 rollup/倒排索引是异步 job 官方文档。
  • 搬数据:分区列、bucket 列不可改(查证为无)官方文档;改分区/分桶策略只能建新表重导 社区共识。
  • 验证约束:NOT NULL + UNIQUE/DUPLICATE/AGGREGATE 键模型约束有 官方文档;CHECK/外键约束未找到证据。
    • 规模:第二类代价 O(n),tablet 数/数据量越大越慢;重写期间存储翻倍,alter_tablet_worker_count 默认 3、调大加 IO 压 官方文档。
    • 语义:重写是后台 job——SHOW ALTER TABLE COLUMN 查进度、CANCEL 可取消 官方文档;同一张表一次只能跑一个 schema change 官方文档;DDL 全表事务性未找到证据。

25 多租户与资源隔离 有

有(workload group 资源组限流)。

  • workload group 可按用户/查询限 CPU/内存/IO,做租户 QoS 官方文档。
  • 2.x 后资源组能力持续增强,是官方推荐的多租户方案 官方文档。
  • 配置不当仍可能互相影响,需压测调参 社区共识。

26 跨地域多活 部分支持

部分支持(可手工跨区部署;无原生多活)。

  • FE/BE 可跨区部署,但无原生多 region 写入协调 社区共识。
  • 跨区副本同步延迟影响写,生产多用单区+容灾 社区共识。

27 高可用架构与 RTO/RPO 有

有(FE/BE 多副本,master 自动切换)。

  • FE 多节点(master 自动选),BE 多副本,单点故障自动容错 官方文档。
  • RPO≈0(多数派写成功),RTO 分钟级内 社区共识。
  • FE 元数据依赖 bdbje 高可用,部署要注意 社区共识。

28 行级安全与数据脱敏 部分支持

部分支持(行级权限靠Row Policy,待验证)。

  • Doris 提供 Row Policy(行级权限策略)并支持列级权限,公开文档中有说明 官方文档
  • 动态脱敏能力的公开说明不完整 待验证
  • 企业级安全特性的版本差异需按版本核对 待验证

29 JSON 与半结构化能力 有

有(JSONB/Variant+倒排索引)。

  • JSON/JSONB 类型,2.x Variant 半结构化,倒排索引加速 官方文档。
  • Variant 动态列过多膨胀 tablet,生产需设限 社区实测。

30 全文检索能力 有

有(倒排索引全文检索,中文 ngram)。

  • 倒排索引支持全文检索,中文 ngram 分词 官方文档。
  • 相关性排序能力弱于 ES,MATCH 语义简单 社区共识。

31 存储效率与压缩 有

有(列存+ZSTD/LZ4,压缩比高)。

  • 列式存储引擎,支持 ZSTD、LZ4、Snappy 等压缩算法,segment 级压缩。官方文档
  • 支持多种数据模型(Aggregate/Unique/Duplicate),聚合模型天然减少存储。官方文档
  • 官方宣称压缩比可达 5-10 倍,社区实测在日志/行为数据上接近该水平。社区实测

32 开源协议与厂商锁定风险 无

无(Apache 2.0;已捐赠 Apache 基金会)。

  • Apache Doris 为 Apache 基金会顶级项目,Apache 2.0 协议,社区治理。官方文档
  • 无协议变更黑历史;SelectDB Cloud 为商业托管版,但开源版功能完整。厂商口径
  • 与 StarRocks 系出同源但已分化,生态独立,迁移路径清晰。社区共识

33 查询优化器与计划稳定性 有

有(Nereids 新 CBO;hint 可用)。

  • Nereids 新优化器替代旧 planner,CBO 能力持续增强 官方文档。
  • 支持 leading/shuffle hint 等干预 官方文档。
  • 老版本 planner 计划质量弱,升级 Nereids 是常规建议 社区共识。

34 参数调优与自治能力 部分支持

部分支持(参数可调;调优靠建模与分桶)。

  • BE/FE 参数可调,核心调优点在建表(分区分桶、物化)官方文档。
  • 自治能力中等,无自动索引推荐 社区共识。

35 静默数据损坏防护 部分支持

部分支持(BE 数据文件带校验,多副本可重建)。

  • BE 存储层对数据文件做校验,损坏文件可被发现并隔离。待验证
  • 多副本机制下坏副本可从健康副本重建,属副本级自愈而非页级。社区共识
  • 无用户可配的常驻页校验开关,校验覆盖细节缺少公开文档。待验证

36 存储过程/触发器/过程语言 无

无(查证为无存储过程/触发器)。

  • 无存储过程、触发器(查证为无)官方文档。
  • 逻辑在 ETL/应用层 社区共识。

37 约束与数据完整性 无

无(OLAP 无外键/CHECK)。

  • 无外键、CHECK(查证为无)官方文档。
  • 数据质量靠 Stream Load/Routine Load 前置校验 社区共识。

38 分析 SQL 完备性 有

有(窗口/GROUPING SETS 完备)。

  • 窗口函数、GROUPING SETS/CUBE/ROLLUP 完备 官方文档。
  • 高基数精确去重等场景注意性能 社区实测。

39 被遗忘权与数据擦除 部分支持

部分支持(手动DELETE;tablet多版本残留)。

  • 删除靠 DELETE / DROP PARTITION,无原生擦除证明 社区共识
  • Doris 的 tablet 多版本机制下旧版本在 compaction 前残留 社区共识
  • 备份与快照延长残留期 社区共识

40 数据血缘与目录集成 无

无(查证为无原生血缘)。

  • 无原生数据血缘/目录 官方文档。
  • 需第三方治理平台 社区共识。

41 存算分离 vs 存算一体 有

有(2.x 起存算分离;默认存算一体)。

  • 默认存算一体(本地盘);2.x 起支持存算分离架构 官方文档。
  • 分离架构下计算节点无状态,弹性更好 官方文档。
  • 存算分离版本生态与稳定性待生产验证 待验证。

42 多模能力 部分支持

部分支持(关系+JSON+倒排全文+向量)。

  • JSON 类型、倒排索引(全文)、向量索引均已支持 官方文档。
  • 无图引擎 社区共识。

43 FinOps 成本可观测性 不适用

不适用(自建无计费,成本=硬件+运维人力自理)。

  • 开源自建无内置计费概念,成本是节点硬件、存储与运维人力。社区共识
  • 云托管版可在云账单侧做标签归因与预算告警。厂商口径

44 驱动与多语言生态 有

有(MySQL 协议兼容)。

  • MySQL 线协议兼容,MySQL 驱动/JDBC/ODBC 直接可用 官方文档。
  • Flink/Spark Connector 生态成熟 社区共识。

45 物化视图 有

有(同步/异步物化视图,自动改写)。

  • 同步/异步物化视图,查询自动透明改写 官方文档。
  • 同步物化视图放大写入,宽表多 MV 注意导入性能 社区实测。

46 支持跨云 有

有(开源任意云;SelectDB Cloud 多云)。

  • 开源版任意云/自建可部署 官方文档。
  • SelectDB Cloud 支持多雲 厂商口径。
  • 存算分离架构下对象存储跨云是主要 friction 社区共识。

47 热点数据更新能力 部分支持

部分支持(Unique Key 模型支持点更新,热点靠批量写扛)。

  • 并发控制原语是 Unique Key 表(默认 MoW)的 key 级 upsert:无行锁,并发更新同一 key 即并发写入新行版本,无锁冲突/abort;乱序到达时用 sequence column 保证"新者胜"(官方机制);"部分列更新"不是 in-place,而是导入时缺失字段补齐后整行写入(官方文档原理解释)。重试归属:导入失败/冲突由应用按 label 幂等重提(Stream Load label 去重保证安全重试)官方文档。
  • 衰减形态:热点 key 高频更新使同一 tablet 持续产生新 rowset/版本,compaction 追不上则版本堆积,读合并成本与写入延迟一起涨;高频小批量不攒批会触发 too many versions,直接拖垮写入(官方与社区共识的经典故障)。单点瓶颈:同一 key 按哈希固定到一个 tablet/分桶,加 BE 节点不分摊单 key 热度官方文档。
  • 内置缓解:未找到官方命名或文档化的单 key 热点自动打散/限流机制的证据(不是查证为无,靠应用层/建模);2.1+ Group Commit 把高频小批量在服务端攒成事务提交(sync/async 模式)——缓解的是“小批量”,不是“单 key 热点”;MoW(写时合并,读快写代价高)与 MoR 建表时二选一、不可更改待验证。
  • 应用层模式与代价:高频更新必须客户端攒批或走 Group Commit/Stream Load 批量写(代价:秒级新鲜度延迟、批次大小调优);热 key 场景在 Flink 侧先聚合再写 Doris(如 Lalamove 把 8 条流拼成 1 条,代价:流处理资源);高并发点查走 SHORT-CIRCUIT 条件(MoW + 行存 + 主键等值,社区口径 16 核单节点 3 万 QPS,实际以自测为准)社区共识。

招牌能力

  1. 全向量化执行引擎 + 列式存储:是什么——BE 存储全列式,执行层算子向量化,MPP 并行扫描。为什么是真本事——复杂聚合、大范围扫描类查询吞吐高,这是 Doris 报表与即席查询体验好的根本原因。边缘真相——对超高并发小查询,FE 的解析/调度与网络开销仍是瓶颈;向量化不解决建模错误,宽表无脑扫描一样慢。
  2. MySQL 协议生态兼容:是什么——9030 端口讲 MySQL 协议,JDBC 改连接串即连,FineBI/Tableau 等 BI 工具、各类 ORM 与脚本开箱可用。为什么是真本事——协议层兼容是实打实的,大幅降低应用迁移与工具链对接成本。边缘真相——协议兼容不等于语义兼容:写入走导入作业而非普通 INSERT 事务,权限与事务行为与 MySQL 完全不同,迁移应用必须重测。
  3. 流式导入体系(Stream Load label 幂等 + 2PC + Group Commit):是什么——HTTP Stream Load 单批次 label 去重("Label Already Exists" 即幂等命中);2PC 预提交/提交配合 Flink Doris Connector 实现端到端 exactly-once;2.1+ 的 Group Commit 把高频小批量在服务端攒成事务提交(sync/async 两种模式,async 先写 WAL 即返回)。为什么是真本事——从"能灌进去"到"exactly-once"再到"扛住高频小批量",三层机制是完整的。边缘真相——exactly-once 的前提是 checkpoint/2PC 配置正确且落在事务超时窗口内;小批量不攒批(不用 Group Commit 又不做客户端攒批)会触发 too many versions,compaction 压力直接拖垮写入。
  4. 异步物化视图与透明查询改写:是什么——异步 MV 支持全量刷新与分区增量刷新(变化分区拆成多个 INSERT OVERWRITE 顺序处理),查询可被优化器自动改写命中预聚合结果。为什么是真本事——预聚合+自动改写让"加速查询"不需要改业务 SQL。边缘真相——刷新是最终一致且本身是计算密集任务(官方建议用 workload group 约束其资源);外表数据变更感知不足时,透明改写可能用陈旧数据做加速,相关开关必须在明确接受一致性风险后才开。
  5. 存算分离(3.0+):是什么——数据落对象存储/HDFS,计算节点无状态化按需扩缩,存储成本显著低于三副本本地盘。为什么是真本事——弹性与成本结构是真实变化的,尤其适合潮汐负载。边缘真相——计算节点依赖本地 File Cache,缓存冷启动、对象存储限流/延迟会直接传导为查询抖动;元数据侧引入 FoundationDB 等新依赖,其成熟度边界要按自己跑的版本实测验证,不能默认"官方 GA 即生产就绪"。

深水区

  1. 领域:架构与高可用——FE/BE 分工与 Tablet 多副本的真实代价。机制:FE 负责 SQL 解析、规划与元数据(多 FE 节点经 bdbje 同步元数据),BE 负责存储与执行;表按分区/分桶切成 Tablet,多副本分散到不同 BE。边缘行为:BE 故障或扩容会触发副本修复与数据重平衡,大量吃磁盘 IO 与网络带宽,期间查询尾延迟明显上升;FE 是元数据的风险集中域,bdbje 过半丢失/损坏后恢复极困难,依赖 image 检查点与备份。选型含义:必须把 FE 元数据当作有状态系统做定期备份(不能只备份 BE 数据目录);重平衡期间的业务 SLO 要单独评估。来源:官方架构文档(证据强);SRE 实践总结 thneoly/sre-learning-hub(证据中)。
  2. 领域:数据导入——exactly-once 的完整边界。机制:Stream Load 单批以 label 标识,同一 label 至多生效一次,重试命中 "Label Already Exists" 即视为成功(幂等);Stream Load 2PC 支持预提交(数据不可见)+ 提交(可见)两阶段,Flink Doris Connector 默认开启 2PC,以 Flink checkpoint 为边界实现端到端 exactly-once;Routine Load 从 Kafka 持续消费、按 checkpoint 恢复进度。边缘行为:label 复用或过期会导致误判;checkpoint 间隔直接决定数据可见延迟;checkpoint 与 Doris 提交之间的故障窗口、事务超时、FE/BE 故障都可能打破"恰好一次"的假设;高频小批次不攒批会产生大量版本,触发 too many versions。选型含义:exactly-once 不是开箱即得,是 connector 版本 + 2PC/checkpoint 配置 + 表模型三者共同保证的,POC 必须做故障注入验证。来源:Flink Doris Connector 实践文章(证据中);geaflow Doris connector 文档对 label 幂等的描述(证据中)。
  3. 领域:数据模型——Unique Key 的 Merge-on-Write 与 Merge-on-Read。机制:建表参数 enable_unique_key_merge_on_write 控制合并时机;MoR(默认)写入只追加、查询时合并多版本,写入快;MoW 写入时即完成合并、保证存储最新数据,查询快。边缘行为:MoW 有写放大,需要维护删除位图(delete bitmap),compaction 负担更重;高频小更新场景下 MoW 的写入代价可能超过查询收益。选型含义:更新频度与查询 SLA 决定选哪边:读多写少选 MoW,写入吞吐优先选 MoR;没有银弹,POC 要用真实更新比例压测。来源:社区文档与实践博客(证据中)。
  4. 领域:建模——分区/分桶与 Tablet 数量的平衡术。机制:分区裁剪查询范围,分桶决定并行度与数据分布,Tablet 是调度的最小单位。边缘行为:分桶键选择错误导致数据倾斜,热点 BE 成为长尾;Tablet 过多拖累 FE 元数据规模与调度开销(每个 tablet 在 BE 还有 memtable 等内存开销),过少则限制查询并行度;社区实践建议单个 tablet 大小控制在 1–10GB。选型含义:建表即架构评审,分桶键必须按真实数据分布验证倾斜度;表数量大、tablet 总数大的集群要给 FE 留足内存。来源:官方建表最佳实践的社区转述(证据中)。
  5. 领域:物化视图——异步刷新的延迟、资源争抢与陈旧读。机制:异步 MV 支持全量与分区增量刷新,增量刷新把变化分区拆为多个 INSERT OVERWRITE 顺序处理;透明改写默认开启(资料称自 2.1.5 起)。边缘行为:刷新延迟意味着 MV 永远是最终一致;高频刷新会与业务查询争 CPU、内存、IO;外表数据变更感知不足时,透明改写可能用陈旧数据加速查询而不自知。选型含义:用 workload group 把刷新任务的资源隔离开并错峰;对一致性敏感的核心报表,评估关闭透明改写或明确接受延迟 SLA。来源:腾讯云开发者社区文章、InfoQ 文章(证据中)。
  6. 领域:存算分离——弹性背后的缓存与外部依赖。机制:3.0 起计算节点无状态,数据在对象存储/HDFS,本地 File Cache 扛热数据;元数据侧引入 FoundationDB 等共享组件。边缘行为:缓存冷启动慢,对象存储 429/限流、网络抖动直接变成查询抖动;File Cache 命中率是核心观测指标,不调优等于没做存算分离;新增的元数据依赖项带来新的故障域。选型含义:适合弹性伸缩与成本敏感场景,但容量规划必须包含缓存命中率目标与对象存储 SLA;3.x 存算分离的生产成熟度按自身版本实测,不套用"官方发布即稳定"的假设。来源:阿里云开发者社区文章(证据中;其中具体性能数字为厂商口径,未采用)。
  7. 领域:升级——滚动升级的窗口与不可逆点。机制:常规滚动升级先 FE 后 BE,BE 可逐台替换。边缘行为:FE 元数据格式一旦升级不可轻易回滚;FE/BE 混部版本的兼容窗口有限,拖太久会出问题;Audit Loader 插件、周边工具链版本要同步验证。选型含义:升级前全量备份 FE 元数据与数据快照;在测试集群把"升级→验证→回滚预案"完整走一遍再上生产。来源:社区部署实践总结(证据中)。

客户经验

本区内容主要基于厂商口径与媒体转述,独立社区验证不足,引用时请打折。

内核 一个 Doris 干掉 ES+ClickHouse+HBase

一句话
同一引擎同时扛起亚秒 OLAP 分析和高并发点查/检索服务——从"ES 管搜、CK 管分析、HBase 管 KV"三件套收敛到一套系统。
窄场景
用户行为/广告/音乐标签分析:既要复杂 OLAP(漏斗、留存、多维下钻),又要面向用户的毫秒级点查/关键词检索;希望"少运维一套系统"的中厂数据团队。
机制
"列存 MPP + 倒排索引 + 主键点查优化"的缝合体:列式存储 + 向量化执行做 OLAP;inverted index 做关键词/标签过滤(替代 ES 的倒排);Unique Key 模型 + 点查短路径(绕开 MPP 调度)做高并发 KV 式读取。Kwai 淘汰 ClickHouse 的直接原因是"ClickHouse 不支持 unique key 更新"。
生产验证
Kwai(快手,4 亿 DAU):ClickHouse+Elasticsearch→Doris,延迟降 64%-90%,写入吞吐 3 倍,单表实时写入峰值 300 万行/秒/节点(https://medium.com/@VeloDB_poweredby_ApacheDoris/from-clickhouse-elasticsearch-to-apache-doris-how-kwai-unified-trillion-scale-ad-analytics-31528f41513d);NetEase Games:Elasticsearch+HBase+ClickHouse→统一 Doris lakehouse,"查询性能与 CK 相当,但显著更易运维"(https://medium.com/@VeloDB_poweredby_ApacheDoris/netease-games-from-elasticsearch-hbase-and-clickhouse-to-a-unified-apache-doris-lakehouse-686362fa1bc1);Tencent Music(8 亿 MAU):ES→Doris 做统一检索引擎,存储成本降 80%(https://github.com/apache/doris-website/blob/HEAD/blog/tencent-music-migrate-elasticsearch-to-doris.md)。诚实备注:案例多经 VeloDB/社区官方渠道发布,已降档;数字未经独立复现;缺独立英文第三方复盘。
竞品差距
ClickHouse 无主键行级更新、运维门槛高(但纯 OLAP 扫描仍略强);StarRocks 定位最接近(同样 MySQL 协议、主键更新),差异在生态侧——Doris 的 ES 替代故事(倒排索引+点查)在社区案例中更成体系。"替代 ES+CK 双栈"的完整证据链,31 款中只有 Doris 拿得出来。
证据等级
社区官方/厂商生态渠道(已降档标注)+ 机制层面的竞品淘汰原因;缺少独立英文第三方复盘,数字未经独立复现
最后核验
2026-10-01

内核 MySQL 协议零学习成本接入

一句话
FE 层完整兼容 MySQL 协议与方言,Tableau/Superset/Navicat/MySQL 客户端等工具直连即用——分析师不用学新方言、不用换工具。
窄场景
分析师团队习惯 MySQL 生态、没有专职数据工程师做"方言翻译"的小团队;从 MySQL/TiDB 系迁移 OLAP 负载的团队。
机制
Doris 的 Frontend 直接讲 MySQL 协议(9030 端口),SQL 方言贴近 MySQL:BI 工具的 MySQL connector 零改造可用;分析师已有的 MySQL 知识(SHOW TABLES、方言函数习惯)直接迁移。对比 ClickHouse 方言特立独行(Array 类型、采样语法、FINAL 语义),上手曲线陡峭。
生产验证
Kwai 工程师原话:"Doris supports the MySQL protocol, which is much easier for data analyst to fetch data and make charts"(https://github.com/apache/doris-website/blob/HEAD/blog/BestPractice_Kwai.md);第三方 olap-radar digest(2026-03):"Doris: visibly improving MySQL compatibility and enterprise SQL operational behavior"——把 MySQL 兼容列为 Doris 区别于 CK/SR 的 SQL 姿态特征(https://github.com/baymine/olap-radar/issues/168)。
竞品差距
StarRocks 同样 MySQL 协议兼容——此项打平,是两者共同区别于 ClickHouse 的特征;ClickHouse 方言差异大,学习曲线是社区公认短板。Druid/Pinot 方言同样小众,侧面印证"MySQL 协议"是 Doris/SR 系的差异化武器。
证据等级
社区共识 + 具名工程师原话
最后核验
2026-10-01

内核 Unique Key 模型的实时更新

一句话
主键模型支持行级 upsert/partial update,实时写入秒级可见——"数据会变"的实时分析场景不用 Lambda 架构兜底。
窄场景
广告素材/订单状态/用户画像:维度数据频繁更新,事实表需要 upsert 语义;实时写入后秒级可见。
机制
ClickHouse 的 ReplacingMergeTree 是后台异步去重(查询时可能读到未合并的重复行,更新代价是分区级);Doris 的 Unique Key 模型在写入路径做主键去重(delete bitmap / merge-on-read),upsert 语义确定、延迟秒级。VeloDB 口径"Doris 实时更新比 ClickHouse 快 34 倍"(厂商生态数字,未独立复现,仅作量级参考)。
生产验证
Kwai 的选型淘汰逻辑是最好的机制证据:评估三家后"eliminated ClickHouse first because it did not support unique key updates, which the ad material data update scenario required"——先因更新模型淘汰 CK,再在 ES 和 Doris 间比(https://medium.com/@VeloDB_poweredby_ApacheDoris/from-clickhouse-elasticsearch-to-apache-doris-how-kwai-unified-trillion-scale-ad-analytics-31528f41513d)。
竞品差距
ClickHouse 无行级 upsert 语义(机制性差距);StarRocks 主键模型同样支持 upsert——此项打平。
证据等级
社区官方渠道 + 机制事实(CK 更新模型属公开技术事实)
最后核验
2026-10-01

避坑 英文社区薄弱 + 新功能稳定性长尾

一句话
Doris 的生产验证高度集中在中文社区与官方渠道;英文社区声量弱,且新功能(如 Iceberg 外表)有已知的稳定性坑。
窄场景
谁最容易中招——英文为主的团队(Stack Overflow/HN 现成答案少,issue 要到中文社区找);追新版本、用 Iceberg 外表等前沿功能的团队。
机制
这不是内核缺陷,是社区结构问题。第三方独立 digest(olap-radar,baymine,非 Doris 生态方)2026-03-13 明确写道:"high volume does not eliminate risk: the Iceberg BE crash is the clearest current stability concern"。Doris 在 HN/Reddit 几乎无实质讨论,与 ClickHouse/StarRocks 形成反差——StarRocks 因 CelerData 的英文布道,英文案例反而多。
生产验证
olap-radar digest 点名 Iceberg BE crash 为当前最清晰的稳定性风险,"should be watched closely"(https://github.com/baymine/olap-radar/issues/16);同 digest 对比四家的可运维性诉求:"teams want systems that are easier to operate, not just benchmark"——Doris 被点名缺 SEARCH() metrics 等可观测性(https://github.com/baymine/olap-radar/issues/237)。
竞品差距
StarRocks 英文社区更强(Pinterest/Airbnb 等英文案例);ClickHouse 英文社区最强但升级回归风险更高。Doris 处在"中文强、英文弱"的独特位置。
证据等级
社区共识(第三方独立 digest)
最后核验
2026-10-01

用户最买账的 5 点

  1. 上手极快,MySQL 生态直连。为什么是真的:9030 端口讲 MySQL 协议,JDBC 改个连接串就能连,BI 工具、脚本、ORM 几乎零改造成本。极限和失效条件:协议兼容不等于语义兼容——写入要走导入作业、事务行为完全不同,复杂应用迁移仍需全链路重测,指望"换个连接串就上线"会踩坑。
  2. 报表与即席查询快。为什么是真的:列式存储 + 向量化执行 + MPP 并行,聚合扫描类查询吞吐确实高。极限和失效条件:建模错误(无脑宽表、分桶倾斜)或资源不足时一样慢;超高并发小查询受 FE 调度开销限制,"快"是有前提的。
  3. 实时导入跟得上,语义讲得清。为什么是真的:Stream Load label 幂等、2PC、Routine Load、Group Commit 四件套覆盖了从批量到流式、从 at-least-once 到 exactly-once 的需求。极限和失效条件:exactly-once 依赖 connector 与 checkpoint 的正确配置;高频小批量不用 Group Commit 又不做客户端攒批,会触发 too many versions 把写入拖死。
  4. 扩容与自愈相对省心。为什么是真的:BE 热扩容(注册即加入、自动重平衡),副本故障自动修复,日常运维负担低于很多自建方案。极限和失效条件:FE 元数据是有状态的,bdbje 出问题时的恢复是深水区;重平衡期间 IO/网络被吃,尾延迟会涨——"省心"不包括元数据层。
  5. 中文社区与资料多。为什么是真的:Apache 项目 + 国内大厂生产背书,官方中英文文档齐全,问答、博客、案例丰富,遇到问题容易找到前人经验。极限和失效条件:第三方博客质量参差,出现过编造配置参数(如所谓 TDE 开关)的情况,关键配置必须以官方文档为准。

吐槽清单

分类吐槽影响版本状态
导入高频小批量导入不攒批会触发 too many versions,compaction 跟不上拖死写入2.xopen
导入Stream Load 经 FE 8030 返回 307 重定向,客户端不跟随或不透传认证导致导入失败,新手常踩2.x–4.xopen
查询/资源大查询与在线查询共享 BE 无隔离,报表曾把在线查询拖死;workload group 在 3.x 有增强但仍需手工规划2.x–3.xpartially-fixed
元数据FE bdbje 元数据损坏或过半丢失后恢复困难,FE 必须当有状态系统备份2.x–4.xopen
物化视图异步 MV 透明改写在外表场景下可能用陈旧数据加速查询而不自知2.1+open
部署BE 对 vm.max_map_count、ulimit 敏感,环境不达标时 BE 注册后 Alive=false,新手部署常踩2.x–4.xopen
安全社区版无原生 TDE/落盘加密的官方方案,强合规场景需靠基础设施层补4.xopen
升级大版本升级路径文档分散,FE 元数据升级不可逆,回滚预案全靠自建3.x–4.xopen

判决

  • 适合谁:需要 MySQL 生态接入的实时数仓/OLAP 团队;已有 Flink/Kafka 实时链路、要求端到端 exactly-once 的数据团队;希望一套引擎同时扛"高并发点查 + 复杂分析查询"混合负载的;看重中文社区与国内生产案例的团队。
  • 不适合谁:需要原生 TDE/落盘加密等强合规安全能力的(社区版无官方方案);想把 Doris 当 OLTP/高并发事务库用的(它的事务是导入事务,不是通用事务);期望 exactly-once 开箱即得、不愿投入 connector 配置与表模型调优的;接受不了 FE 元数据有状态运维负担的团队。
  • 迁移成本:从 MySQL 生态迁查询层成本低(协议兼容,BI 与应用连接改动小);但写入链路(导入作业、CDC 同步)、数据建模(分区/分桶/tablet、物化视图设计)、权限体系都要重做。从 ClickHouse/StarRocks 迁移:SQL 方言与导入语义差异需逐项验证;Doris 与 StarRocks 虽同源但已分化,不能按"平滑切换"假设,必须做完整 POC。

来源与待验证清单

  • last_reviewed:2026-09-29;评审版本:Apache Doris 4.1.4(以当日 GitHub Releases 最新 release 为准;4.0.x 同步维护)。
  • 来源:
    • Apache Doris GitHub Releases(版本信息,证据强)
    • Apache Doris 2.1 中文手册 PDF(审计、备份、HTTPS、插件机制,证据强;版本较旧,4.x 能力以官方最新文档复核为准)
    • apache/doris-website TOC(文档结构,证据强)
    • Flink Doris Connector 实践文章(2PC exactly-once 机制,证据中)
    • geaflow Doris connector 文档(Stream Load label 幂等描述,证据中)
    • SRE 学习笔记 thneoly/sre-learning-hub(常见故障与恢复,证据中)
    • 阿里云开发者社区文章(存算分离机制,证据中;性能数字为厂商口径未采用)
    • 腾讯云开发者社区、InfoQ 文章(异步物化视图机制,证据中)
    • 若干 CSDN 博客(仅作线索;其中个别配置声称如 TDE 参数无官方佐证,已排除)
  • 证据等级说明:本档案中"强"指官方文档/GitHub 源码与 release 信息;"中"指社区实践文章、第三方技术博客中有机制描述但未经官方逐项复核;"弱"指单一样本或立场明显的厂商转载。本轮未对 4.x 官方文档做逐页复核,标记为"部分支持"的维度建议在 POC 前查阅对应版本官方文档确认。
  • Doris/StarRocks 分叉说明:本档案采用中立表述——两者同源于百度 Palo,2018 年 Palo 捐赠 Apache 形成 Doris,StarRocks 由早期代码线独立发展后于 2021 年开源;现为独立项目,不做"谁更正统"的价值判断。