Skip to content

GreptimeDB vs. ClickHouse

分析能力很强——但可观测性所需的 PromQL、OTLP、Jaeger 都在 OLAP 核心之外。GreptimeDB 为可观测性而生,一套栈同时承载近实时告警与长期分析。

ClickHouse 查询很快。
但可观测性需要的不仅仅是查询引擎。

ClickHouse 是高性能列式 OLAP 数据库——通用分析引擎,并非专为可观测性打造。ClickStack 增加了 OTLP 摄入,ClickHouse 有早期实验性 PromQL 支持,但这些都是在 OLAP 核心之上的附加功能。在 ClickHouse 上做可观测性,通常会在数据库前面加一层缓冲、摄入 worker 和转换步骤,指标、日志、链路由不同部件拼装。GreptimeDB 是为可观测性设计的数据库,原生跑在对象存储上,近实时告警和长期分析都在同一套栈里完成。点击这里阅读日志基准报告。

挑战者

ClickHouse

OLAP 引擎——可观测性通过 ClickStack 运行,是独立的层

  • 时间只是另一列——存储布局不针对可观测性负载优化

  • 可观测性摄入通常会加一层缓冲(Kafka/Redis)+ worker

  • 早期实验性 PromQL(功能有限);ClickStack OTLP 与 OLAP 核心分离

  • 日志基准测试中日志存储大 50%(2.6GB vs 1.3GB)

VS

GreptimeDB

GreptimeDB

PromQL、OTLP、Jaeger 在同一个二进制

  • 以时间戳为核心的存储布局——从底层为可观测性设计

  • 原生 OTLP 端点——SDK 直写,无需缓冲层

  • 动态 schema——新 span 属性自动建列,无需迁移

  • 日志基准测试中日志存储低 50%,压缩率更优

架构对比

ClickHouse 以 OLAP 为核心。可观测性通过 ClickStack 运行,是独立的层。

ClickHouse Stack

4-8 个组件

采集器 / ETL / Kafka 管道

摄取 + 转换

ClickHouse 分片与副本

存储 + 计算

物化视图与 Rollup

查询优化

额外可观测工具层

仪表盘 + 告警适配

GreptimeDB

1 DATABASE

Frontend 节点(无状态,自动扩缩)

查询 + 摄取网关

Datanode(计算层,无状态)

原生对象存储

  • 开箱支持 PromQL + SQL
  • 同一引擎统一日志、指标和链路
  • 计算与存储可独立扩展
特性对比
维度GreptimeDBClickHouse
查询语言SQL + PromQL(双语原生)SQL 为主,早期实验性 PromQL 支持
数据类型指标 + 日志 + 链路在一个数据库OLAP 分析数据;可观测性通过 ClickStack
PromQL 支持原生 PromQL 查询引擎实验性(仅支持 rate/delta/increase 等基础函数)
OpenTelemetry原生 OTLP(全信号)通过 ClickStack 摄入 OTLP(与核心 OLAP 引擎分离)
链路支持原生 Jaeger Query API通过 ClickStack
存储设计以时间戳为核心的布局,针对可观测性访问模式优化时间只是另一列;通用 OLAP 布局
Schema 演进动态——新属性自动建列需要 ALTER TABLE 或 schema 迁移
存储格式Apache Parquet(列式,高压缩)MergeTree 引擎系列(列式)
日志存储效率1.3GB(13% 压缩率)2.6GB(26% 压缩率)——大 2 倍
存储后端原生对象存储(S3、OSS、GCS)本地磁盘为主,冷存储到 S3
摄入管道SDK → 原生 OTLP 端点 → 数据库(无需缓冲层)通常在前面加一层缓冲(Kafka/Redis)+ worker
高基数写入写入吞吐和落盘大小随时序基数增长基本保持平稳(基准测试高基数指标需要谨慎设计主键和分区
扩展模型存算分离;region 随数据增长自动再平衡与重分区无共享分片;分片数与分片键需前置决定,重分片需手动
复制与高可用对象存储上共享一份副本,高可用靠元数据与 region leadership每个副本各存一份全量(zero-copy 复制为实验性);完全存算分离的 SharedMergeTree 仅 ClickHouse Cloud 提供
持续聚合内置 SQL + Flow 流计算引擎Materialized Views + Aggregating MergeTree
许可证Apache 2.0Apache 2.0
集成成本开箱即用的可观测性方案ClickStack + 配置

存储对比来自日志基准测试,实际效果因负载和配置而异。

迁移路径:最快一周可落地

先从最痛的信号开始,逐步完成统一。

重定向新增写入

文档

将新流量通过兼容协议写入 GreptimeDB,同时保留现有 ClickHouse 链路稳定运行。

30 分钟

切换仪表盘数据源

文档

更新 Grafana 数据源,在尽量少改查询的情况下完成平滑切换。

1 小时

回填历史数据

导出历史分区并批量导入 GreptimeDB,实现统一保留与统一查询。

1-3 天

下线自建胶水层

验证完成后,逐步移除围绕 ClickHouse 构建的冗余 ETL 与协议转换组件。

2 周

经过多方评估,我们选择了 GreptimeDB 而非 ClickHouse。时序原生的存储引擎、计算存储分离架构和原生 OTLP 支持更契合我们的可观测场景。
得物
得物
资深工程师
基于 GreptimeDB 构建了全新的可观测监控体系,用统一的 Flow 引擎替代了多阶段 ETL pipeline,P99 查询延迟从秒级降至毫秒级。

Stay in the loop

加入我们的社区