Compare · 3 个对象
Hive vs ClickHouse vs Doris
数据仓库、极速 OLAP、实时数仓:先看查询形态,再谈性能
从谁的角度看
| 对比维度 | Hive 离线数仓,SQL 查 HDFS | ClickHouse 单表聚合极快,列存 | Doris MPP 实时数仓,join 更强 |
|---|---|---|---|
| 定位 | |||
| 本质 | SQL 翻译层,数据在 HDFS | 列式数据库,存算一体 | MPP 分析数据库,FE/BE 分离 |
| 典型延迟 | 分钟级 | 亚秒~秒级 | 亚秒~秒级 |
| 存储与查询 | |||
| 存储格式 | Parquet / ORC / Text,存 HDFS / S3 | 自有列存 + MergeTree | 自有列存 + Tablet |
| 索引 | 无索引,只有分区/分桶裁剪 | 稀疏主键索引 + 跳数索引 | 前缀索引 + Bloom Filter + 倒排索引 |
| 多表 join | 强(批处理随便 join,就是慢) | 弱,大表 join 容易 OOM | 较强,支持 colocate join |
| 能力 | |||
| 数据更新 | 按分区覆盖写 | 异步 mutation,代价高 | Unique Key 主键 upsert |
| 并发查询 | 低(每次起作业) | 中低,百级 QPS | 高,适合几百用户在线 |
| 事务 | ACID 表有限支持 | 无 | 导入事务,无跨表事务 |
| 写入方式 | 批量写文件(insert / Spark) | 批量 INSERT,需攒批 | Stream / Routine / Broker Load |
| 运维 | |||
| 部署依赖 | HDFS + Metastore + 执行引擎 | 单机即可,集群需 ZK | 3 FE + 3 BE 起步 |
| 扩容 | 加机器即扩容(存算分离) | 分片需重新分布数据 | 加 BE 自动均衡 |
| 一句话选型 | |||
| 什么时候选它 | 离线数仓分层建模、T+1 报表、数据湖元数据 | 埋点/日志/监控的大宽表聚合,数据量 TB 级以上 | 实时数仓、报表平台、需要 join 和主键更新 |
点某一行可以高亮该维度,方便逐条横向读;移动端左右滑动查看全部列。
选型建议
Hive
数据湖的底座和元数据标准,做分层建模和 T+1 跑批,绕不开它。
ClickHouse
单表大宽表、极致聚合性能、团队能接受弱 join,选它最划算。
Doris
要 join、要 upsert、要几百人同时查报表,选 Doris 更省心。
一句话结论
三者常常同时存在:Hive 存原始与明细、Doris 做实时报表、ClickHouse 扛大屏聚合。选型先问「查询长什么样、并发多少、要不要更新」,再比性能。