概览
面试题
doris 和 clickhouse 对比?
- 场景支持
- doris 一站式解决多场景需求
- 同时支持实时和离线数据应用。支持多种方式导入数据
- 实时。stream load/routine load
- 离线。broker load/spark load
- 即席查询(ad-hoc 查询)。
- 多表关联。复杂 join 查询
- 湖仓一体,多源联邦查询
- 可满足多种场景:实时数仓、离线数仓、ad-hoc 查询、报表看板、用户画像、日志与事件分析
- clickhouse 侧重单表高性能分析
- 单表大规模聚合、时序数据查询
- 缺点。多表 join 性能弱,事务支持不足,批量导入复杂
- 架构设计
- doris。fe + be 分层,组件少,运维简单
- 运维工具多。doris-manager,doris-kubernetes-operator
- 弹性扩展。支持节点动态增删、无数据迁移成本
- clickhouse。去中心化架构,运维复杂
- 元数据依赖外部组件(zookeeper)
- 副本同步依赖表引擎配置,跨节点一致性难保证
- 扩展需手动调整分片,运维成本高
- 功能特性
- 数据导入
- doris 支持 stream/routine/broker/spark,支持断点续传,事务回滚。还有 X2Doris 可视化同步数据至 doris
- clickhouse 依赖外部工具,原生导入工具少,无事务保障
- 事务与一致性
- doris 支持 acid 事务,两阶段提交(2pc)确保分布式一致性
- clickhouse 无完整事务,并发写入易出现数据不一致
- 数据模型
- doris 支持 3 种数据模型:Duplicate/Aggregate/Unique,支持动态 schema 变更
- clickhouse 以 MergeTree 为主,模型单一,schema 变更成本高
- 湖仓一体
- doris 支持 hudi/iceberg/paimon,支持物化视图加速数据湖查询
- clickhouse 需自定义开发
- 性能表现
- 复杂查询,多表 join 性能高
- doris。mpp 架构+智能优化器(RBO+CBO+HBO)
- clickhouse。单表查询快,但多表 join 依赖 hash join,大表关联易 OOM
- 写入性能。高吞吐+低延迟均衡
- doris。客户端直连 BE + 异步刷盘,支持每秒数万条写入,延迟秒级
- clickhouse。写入性能强劲,但并发写入易引发Merge风暴,导致查询卡顿
- 稳定性
- doris。Compaction 后台异步执行,不阻塞读写,支持自动故障转移
- clickhouse。Merge 操作占用大量资源,易导致集群不稳定,节点故障恢复复杂
- 运维与生态
- 部署。一键部署工具(Doris Manager),可视化运维
- 监控。内置完善监控指标,对接 Prometheus/Grafana
- 升级。支持滚动升级,无停机风险
- 社区生态
- doris。apache 社区,社区活跃
- clickhouse。社区活跃,