Skip to content

GreptimeDB vs. ClickHouse

分析能力很强——但用它做可观测性,意味着要自建 PromQL 层、OTLP 管道和 Jaeger 后端。

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

ClickHouse 是高性能列式 OLAP 数据库,时间只是另一个维度——不是存储的组织原则。ClickStack 增加了 OTLP 摄入,ClickHouse 有早期实验性 PromQL 支持,但这些都是在 OLAP 核心之上的附加功能。用 ClickHouse 做可观测性通常需要缓冲中间件 + 摄入 worker + 转换管道。点击这里阅读日志基准报告。

挑战者

ClickHouse

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

  • 时间只是另一列——存储布局不针对时序访问模式优化
  • 可观测性摄入通常需要 Redis 缓冲 + worker + 转换管道
  • 早期实验性 PromQL(功能有限);ClickStack OTLP 与 OLAP 核心分离
  • 在[日志基准测试](/blogs/2025-04-01-clickhouse-greptimedb-comparison)中日志存储大 50%(2.6GB vs 1.3GB)
VS

GreptimeDB

GreptimeDB

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

  • 以时间戳为核心的存储布局——从底层为时序设计
  • 原生 OTLP 端点——SDK 直写数据库,无需中间队列
  • 动态 schema——新 span 属性自动建列,无需迁移
  • 在[日志基准测试](/blogs/2025-04-01-clickhouse-greptimedb-comparison)中日志存储低 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 端点 → 数据库(无中间件)通常需要缓冲(Redis/Kafka)+ 摄入 worker
扩展模型存算分离,无状态节点无共享分片,有状态副本
持续聚合内置 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

加入我们的社区