Skip to content

GreptimeDB vs. ClickHouse

Great analytics engine — ClickStack adds OTLP ingestion for observability, but it stays separate from the core OLAP engine. GreptimeDB runs near-real-time alerting and long-term analysis on one stack, with PromQL, OTLP, and traces built into a single engine for observability.

ClickHouse queries fast.
But observability needs more than a query engine.

ClickHouse is a high-performance columnar OLAP database — a general-purpose analytics engine, not built specifically for observability. ClickStack adds OTLP ingestion and ClickHouse has PromQL in private preview, but these are additions on top of the OLAP core. Observability deployments on ClickHouse commonly add a buffering layer, ingestion workers, and transformation steps in front of the database, and metrics, logs, and traces are assembled from separate pieces. GreptimeDB is built for observability on object storage, and runs both near-real-time alerting and long-term analysis on one stack. Click here to read the full report of GreptimeDB vs. ClickHouse in log scenarios.

CHALLENGER

ClickHouse

OLAP engine — observability runs on ClickStack, a separate layer

  • Time is just another column — storage layout not optimized for observability access patterns

  • Observability ingestion commonly adds a buffering layer (Kafka/Redis) + workers

  • PromQL in private preview; ClickStack OTLP is separate from OLAP core

  • Log storage 2x larger in log benchmark (2.6GB vs 1.3GB)

VS

GREPTIMEDB

GreptimeDB

SQL + PromQL + OTLP + Jaeger — all built in

  • Timestamp-first storage layout — built for observability from the ground up

  • Native OTLP endpoint — SDKs write directly, no buffering layer required

  • Dynamic schema — new span attributes auto-create columns, no migration needed

  • 50% lower log storage with better compression

Architecture comparison

ClickHouse is OLAP-first. Observability runs on ClickStack, a separate layer.

ClickHouse Stack

4-8 COMPONENTS

Collectors / ETL / Kafka pipeline

ingest + transform

ClickHouse shards + replicas

store + compute

Materialized views + rollups

optimize queries

Separate tooling for observability UX

dashboard + alert adaptation

GreptimeDB

1 DATABASE

Frontend node (stateless, auto-scale)

query + ingest gateway

Datanode (hosts regions, data on object storage)

native object storage

  • PromQL + SQL support out of the box
  • Logs, metrics, and traces in one engine
  • Scale compute and storage independently
Feature comparison
DimensionGreptimeDBClickHouse
Query languageSQL + PromQL (dual, native)SQL primary, PromQL support in private preview
Data typesMetrics + Logs + Traces in one databaseOLAP; observability via ClickStack
PromQL supportNative PromQL query enginePrivate preview via the TimeSeries engine (26.9); no native histograms or recording/alerting rules yet
OpenTelemetryNative OTLP (all signals)OTLP ingestion via ClickStack (separate from core OLAP engine)
Trace supportNative Jaeger Query APIVia ClickStack
Storage designTimestamp-first layout, optimized for observability access patternsTime is another column; general-purpose OLAP layout
Schema evolutionDynamic — new attributes auto-create columnsJSON or Map columns for new attributes; typed columns need ALTER TABLE
Storage formatApache Parquet (columnar, compressed)MergeTree engine family (columnar)
Log storage efficiency1.3GB (13% compression ratio)2.6GB (26% compression ratio) — 2x larger
Storage backendNative object storage (S3, OSS, GCS)Local disk or S3-backed MergeTree; SharedMergeTree is ClickHouse Cloud only
Ingestion pipelineSDK → native OTLP endpoint → database (no buffering layer required)Commonly fronted by a buffering layer (Kafka/Redis) + workers
High-cardinality ingestThroughput and on-disk size stay nearly flat as series cardinality grows (benchmark)High-cardinality metrics need careful primary-key and partition modeling
Scaling modelCompute-storage disaggregation; online region migration and repartitioning in open source, automated in EnterpriseShared-nothing sharding; shard count and key chosen up front, resharding is manual
Replication & HAOne shared copy on object storage; HA via metadata and region leadershipEach replica keeps a full copy (zero-copy replication is experimental); the fully compute-storage-separated engine (SharedMergeTree) is ClickHouse Cloud only
Continuous aggregationBuilt-in SQL + Flow streaming engineMaterialized views + aggregating MergeTree
LicenseApache 2.0Apache 2.0
Integration effortOut-of-the-box observability stackClickStack + configuration for observability

Storage comparison from log benchmark tests. Results vary by workload and configuration.

Migration path - as fast as one week

Start with your highest-pressure signal and consolidate step by step.

Read the migration guide→

Redirect new ingestion

Docs

Route incoming observability streams to GreptimeDB using compatible protocols while existing ClickHouse pipelines keep running.

30 min

Switch dashboard datasource

Docs

Update Grafana datasource and keep dashboards online with minimal query rewrites.

1 hour

Backfill historical data

Export historical partitions and bulk load into GreptimeDB for unified retention and query.

1-3 days

Retire custom glue

After verification, remove redundant ETL and protocol-conversion components built around ClickHouse.

2 Weeks

Poizon
Poizon
Staff Engineer
We built a cost-effective, real-time monitoring architecture with GreptimeDB. P99 query latency dropped from seconds to milliseconds after replacing multi-stage ETL pipelines with GreptimeDB's unified approach.

Stay in the loop

Join our community