ClickHouse、Doris与Elasticsearch在日志分析场景下的性能对决

张开发
2026/4/17 11:52:58 15 分钟阅读

分享文章

ClickHouse、Doris与Elasticsearch在日志分析场景下的性能对决
1. 日志分析场景的技术选型痛点做日志分析最头疼的就是选型问题。去年我们团队接手一个日均TB级日志量的项目时我花了整整两周时间对比各种方案。当时主要纠结三个方向用老牌搜索引擎Elasticsearch稳但贵试ClickHouse怕扛不住高并发查询选Doris又担心生态不成熟。这就像买车时的选择困难症——要动力强的、油耗低的还是保养便宜的先说说日志分析的典型特征数据像洪水一样持续涌入高写入压力查询时可能突然要统计最近1小时错误日志高并发分析还得能快速检索特定关键词全文搜索。这三个需求就像不可能三角传统方案往往只能满足其中两项。这也是为什么ClickHouse、Doris和Elasticsearch会成为主流候选——它们各自在某个维度有杀手锏。我见过最典型的翻车案例某公司用ES集群处理Nginx日志前期运行良好等到日志量突破百亿级别时突然发现存储成本失控压缩率只有1:0.8数据反而膨胀了。后来用ClickHouse重做存储直接降到原来的1/3但团队又抱怨模糊查询慢得像蜗牛。这种教训说明没有银弹只有适合场景的权衡。2. 写入性能实测对比2.1 测试环境搭建实录上次压测时我犯了个低级错误——用单线程写入测试分布式系统。这次学乖了搭建了真正的生产级环境硬件配置清一色阿里云ecs.g7ne.16xlarge64核128G网络带宽10Gbps确保不会成为瓶颈集群规模ClickHouse和Doris都是6节点ES扩展到10节点这玩意真的吃资源数据样本真实采集的K8s容器日志包含JSON原始报文、时间戳、主机IP等典型字段建表时特别注意了性能优化点。比如ClickHouse用了ZSTD压缩算法Doris配置了倒排索引ES调整了translog刷盘策略。这些细节就像赛车调校稍不注意就会影响最终成绩。2.2 写入速度巅峰对决当并发写入线程开到30时三个系统的表现截然不同ClickHouse像短跑运动员峰值达到120万条/秒但CPU直接飙到90度物理温度警告Doris像马拉松选手稳定在60万条/秒资源占用曲线平滑得像条直线Elasticsearch...这么说吧我们中途去喝了杯咖啡回来发现才处理了10万条更惊人的是资源消耗对比。处理相同10亿条日志存储空间ES用了281GBDoris只要161GBClickHouse仅95GBCPU消耗ES节点平均负载是Doris的3倍是ClickHouse的2倍这里有个反常识的发现增加Doris的写入并发数超过15后吞吐量不升反降。后来和官方团队沟通才知道这是BE节点处理微批任务的机制决定的。而ClickHouse就像个直男并发给得越多吃得越欢。3. 查询效率深度解析3.1 六大实战场景评测设计测试场景时我特意混合了三种典型查询统计聚合按IP和PATH分组计数考验列式存储条件过滤查找包含Error的日志考验索引效率全文检索搜索上海关键词考验文本分析结果让人大跌眼镜场景1ClickHouse凭借Projection预聚合0.06秒完成比其他两个快100倍场景5Doris的MATCH_ALL语法只用了0.33秒ClickHouse的LIKE却要16秒场景6ES的全文检索仅0.49秒但内存占用是Doris的2倍特别要提这个坑ClickHouse的LIKE查询没有走索引后来改用ngrambf索引优化后性能提升8倍。这告诉我们——再好的引擎也需要正确的打开方式。3.2 并发查询下的表现模拟真实生产环境我们在持续写入的同时发起查询Doris最稳查询延迟波动在20%以内ES出现两次超时当时JVM正在做GCClickHouse最惨原本就慢的查询直接超时这个测试暴露出ClickHouse的另一个问题资源隔离做得不够好。当merge线程和查询线程打架时Doris的查询调度器明显更智能会优先保证正在执行的查询。4. 运维成本全维度对比4.1 硬件资源开销很多团队只关注软件性能却忽略了硬件成本。我们算过一笔账ES集群需要12台机器才能达到ClickHouse 6台的处理能力内存消耗ES的JVM配置就要吃掉30%内存Doris的BE节点反而更省磁盘IOClickHouse的merge操作经常引发IO尖峰需要配高性能SSD有个省钱技巧Doris支持冷热数据分层存储可以把老旧日志自动转存到OSS这点对合规性要求高的企业特别实用。4.2 运维复杂度实录凌晨三点被报警叫醒是什么体验这三个系统我都经历过ES最折腾要调JVM参数、管理分片、处理脑裂问题ClickHouse最痛ALTER TABLE要卡10分钟zk节点挂了就全瘫Doris最友好Web界面就能完成扩缩容但小版本升级常出兼容性问题监控方面ES的生态最完善有ElasticHQ、Cerebro等工具ClickHouse需要自己搭Prometheus看板Doris自带的监控页面倒是够用。5. 终极选型指南经过三个月的实测我们总结出这套决策框架选ClickHouse当每天日志量超10亿条90%以上是聚合分析查询有专业运维团队兜底选Doris当需要同时处理实时分析和模糊搜索团队熟悉MySQL生态对稳定性要求高于极致性能选Elasticsearch当需要复杂的全文检索如日志关键词告警已经有大ES集群在运行预算充足不在乎硬件成本最近发现个新趋势不少团队开始用DorisES混搭方案让Doris处理结构化分析ES专注文本搜索。这种组合就像咖啡配奶精意外地和谐。不过要注意数据同步的一致性问题和时间差。

更多文章