Skip to content

Latest commit

 

History

History
26 lines (16 loc) · 5.03 KB

File metadata and controls

26 lines (16 loc) · 5.03 KB

Clickhouse is winning the Observability Wars

TL;DR

作者认为ClickHouse在日志可观测性中胜出,因其列式存储、高压缩比和线性扩展能力。无论数据量从1TB到10TB/日,架构几乎不变,成本可控,而其他方案或架构畸形或成本失控。前期付出换来长期简单,使其能随团队共同成长。

Summary

近十年来,作者大部分工作时间都花在可观测性上,而其中日志一直是最让人头疼的部分。开发人员对日志的期望源于早期在单机或小规模系统上用 greptail -f 等简单工具就能快速找到答案的那段“完美体验”,这导致他们日后面对大规模分布式系统时,依然期待同样即兴、无模式的查询方式,而不愿被固定的索引或查询语言所束缚。与此同时,日志又被越来越多非技术团队(如客服、数据)所消费,他们要求仪表盘稳定、界面友好,双方的需求本质上是冲突的。

ClickHouse 最初是 Yandex 为分析海量点击流数据而构建的列式数据库,并非为可观测性而生,却因日志数据与点击流数据特征高度相似(高吞吐、追加写、时间排序、大多以聚合方式读取、偶尔需要检索单条记录)而表现得异常出色。它支持 SQL,可直接通过 OpenTelemetry Collector 写入,文档优秀,自托管成本可控。

日志数据在查询时多半只涉及少数几个字段,ClickHouse 的列式存储恰好能避免行式存储(如 Elasticsearch、Postgres)那种“为了三条字段读取整行数据”的 I/O 浪费;同时同一列中的值高度相似,配合 ZSTD 等编码能实现 10–14 倍的压缩比,远远超过一般行式系统的 2–3 倍。这才是 ClickHouse 在日志场景下真正的性能根基。

但最令作者折服的并非性能本身,而是 ClickHouse 在数据量急剧增长时,架构几乎不需要变形。文章通过三个数量级(1 TB/天、5 TB/天、10 TB/天)对比了四套主流方案:

  • 1 TB/天:所有方案都够用。Elasticsearch 配上 Logstash 和 ILM 策略,月费 6k–9k 美元;LGTM(Loki + Grafana + Mimir + Tempo)用 Alloy 统一采集,约 3.5k–5k 美元;Datadog 基本零运维负担,但成本已高达 45k–75k 美元;ClickHouse 需要自己设计表结构、选择排序键,月费仅 1.5k–2.5k 美元,但初期略显繁琐。

  • 5 TB/天:差距开始显现。Elasticsearch 必须引入 Kafka 作为缓冲,精心规划分片,甚至需要商业许可使用搜索快照,费用升至 40k–55k 美元,运维复杂度剧增。LGTM 被迫拆分为大量微服务,65+ Pod,还需处理 gossip/memberlist 等集群协调问题,成本 22k–32k 美元。Datadog 依然无需运维,但账单已飙升至 180k–350k 美元,企业不得不组建专门的“降本小组”来控制支出,反而催生了另一套内部预处理系统。而 ClickHouse 仅仅增加了几个分片,其余一切照旧,成本 7k–11k 美元。

  • 10 TB/天:多数方案已不堪重负。Elasticsearch 需要拆成多个专用集群并通过跨集群搜索联邦,热数据放在昂贵的 NVMe 上,需要真正的专家团队,总成本 95k–140k 美元以上。LGTM 膨胀到 180+ Pod,必须做区域感知、租户隔离、重平衡,需要 3–5 人的平台团队专门维护,成本 55k–85k 美元。Datadog 的月度账单轻松突破百万美元,组织内部同时维护着复杂的预处理管道和另一个自托管日志系统(很多公司会选择 ClickHouse),形成“简单但贵”和“自己补”并存的悖论。ClickHouse 呢?架构图摆在那里,和 1 TB/天时几乎一模一样,只是分片更多、物化视图成为必选项,成本 18k–28k 美元。

文章的核心观点就此清晰:所有可观测性栈在小规模下都差不多,选择团队最熟悉的即可。但决定成败的关键,是那套方案在数据量翻几倍、团队扩张、最初的设计者已经离职两年之后,是否还能保持与今天相似的形态。Elasticsearch 会异变成 Kafka + 多集群 + 商业许可的复杂巨兽;LGTM 会异变成一个需要专业 SRE 团队伺候的微服务矩阵;Datadog 虽然表面不变,但它会异变成不断吞噬预算的财务负担和一块庞大的间接工程成本。唯有 ClickHouse 仅通过增加分片就能线性扩展,查询接口、运维模式、思维模型一如当初。

当然,ClickHouse 并非没有代价:你需要在一开始就付出更多精力做好模式设计、排序键选择,甚至让开发人员暂时感到不便。但这笔交换的结果是,随着数据规模跨过好几个数量级,开发者和运维者的体验基本保持一致。作者在十年间目睹过无数观测栈在身下坍缩变形,而 ClickHouse 是第一个没变形、能真正“随着他一起成长”的系统——这是他坚信 ClickHouse 正在赢得可观测性战争的根本原因。