Spokes.wiki Search About
Created
Updated

ClickHouse

A distributed columnar analytical (OLAP) database — shared-nothing, horizontally scalable across nodes, built for large-scale analytical workloads. The distributed end of the analytical-databases spectrum, and the engine tinybird manages.

Profile

  • Distributed, multi-node, server-based — client-server protocol; scales horizontally and vertically (posthog-duckdb-vs-clickhouse).
  • MergeTree storage — data in immutable parts with background merges; continuous streaming ingest and insert-time materialized views for pre-aggregation (posthog-duckdb-vs-clickhouse).
  • Where it fits: high-ingest pipelines (100K+ rows/s), hundreds of concurrent queries, datasets beyond RAM, fault-tolerant production analytics (tinybird-clickhouse-vs-duckdb).
  • Indicative numbers (vendor, tinybird-clickhouse-vs-duckdb): a 1 TB query ~10 s single-node → ~2-3 s on 4 nodes; ingestion ~200K inserts/s on a 16-core node → ~800K/s across 4 nodes.

Operational cost

The flip side of the distributed model is ops: tuning MergeTree variants and managing replicas (historically via ZooKeeper) (posthog-duckdb-vs-clickhouse). That operational burden is exactly what the managed-service layer (tinybird) and, in part, the reach for duckdb in some workloads are responses to. PostHog notes self-managed ClickHouse "would not work for data warehousing for all of our customers," which pushed them to duckdb for that layer (posthog-duckdb-vs-clickhouse).

The layer above

jitsu is the spoke's first source on how events reach an engine like this one — an open-source Segment alternative that splits the job into ingest, routing and a separate warehouse-loading service that owns batching and schema management. That last split is the interesting one here: the thing ClickHouse makes expensive (MergeTree tuning, replica management) is operational, and the thing an event pipeline makes expensive is schema drift at the boundary. They are separate problems, and Jitsu putting a dedicated service on the second one says the boundary is not free.

jitsu · duckdb · analytical-databases · tinybird · tinybird-clickhouse-vs-duckdb · posthog-duckdb-vs-clickhouse · synthesis