Comparison
Seven OLAP databases, side by side
The capabilities that decide whether a database can serve real-time analytics: how data gets in, how it is stored, who can run it, how fast it answers at scale and how you pay for it.
| Capability | ClickHouse | DuckDB | StarRocks | BigQuery | Snowflake | Amazon Redshift | Databricks SQL |
|---|---|---|---|---|---|---|---|
| Real-time ingestionRows queryable seconds after they are written, from streams or many small inserts. | Kafka & S3 engines, async inserts, materialized views on write | Batch loads; single writer process | Stream Load, Routine Load from Kafka | Storage Write API streaming, priced separately | Snowpipe / Snowpipe Streaming | Streaming ingestion from Kinesis and MSK | Structured Streaming into Delta tables |
| Columnar storageData stored by column and compressed, so a query reads only what it needs. | MergeTree; per-column codecs (LZ4, ZSTD, Delta, Gorilla) | Columnar row groups | Columnar segments | Capacitor format | Micro-partitions | Columnar blocks | Delta Lake on Parquet |
| Open sourceCan you read the code and run it yourself, anywhere? | Apache 2.0 | MIT | Apache 2.0 | Proprietary | Proprietary | Proprietary | Proprietary engine on open formats |
| Managed cloudA service that runs the database for you. | ClickHouse Cloud on AWS, GCP and Azure | Third-party (MotherDuck) | Third-party (CelerData) | Google Cloud only | AWS, GCP and Azure | AWS only | AWS, GCP and Azure |
| Query speed at scaleClickBench hot-run score within its group. 1.0 is the fastest possible; lower is better. | 1.03 self-hosted · 1.06 managed | 2.03 self-hosted | 2.90 self-hosted | 4.89 managed | 5.66 managed | 2.77 managed (2022 run) | 5.16 managed |
| High concurrencyServing many queries at once, as a user-facing app or shared dashboard does. | 20–38 QPS on bare metal in ClickBench | Single process; not tested | 7–14 QPS on the same hosts | Not tested; slot and quota limits apply | Not tested; scales out with multi-cluster warehouses | Not tested; concurrency scaling billed extra | Not tested; scales out with more clusters |
| Cost modelHow you pay for compute. | Free to self-host; usage-based compute and storage in the cloud | Free; you pay for the machine it runs on | Free to self-host; vendor cloud available | Per TiB scanned, or reserved slots | Credits per warehouse-second, 60 s minimum | Per node-hour, or RPU-hour on Serverless | DBUs per warehouse-hour |
StrongPartial or with limitsWeak or absent
Query speed figures are ClickBench hot-run scores; see benchmarks for configurations. Self-hosted and managed scores come from separate groups and are not directly comparable with each other.
Which one, for what
Our recommendation by workload.
| If you need | Choose | Why |
|---|---|---|
| User-facing analytics and dashboards that must answer in under a second | ClickHouse | Best hot-run latency in every group and the highest concurrent throughput measured. |
| Event, log and observability data arriving continuously | ClickHouse | Kafka and S3 engines, async inserts and materialized views keep data fresh with no extra system. |
| Analysis in a notebook or a single-user tool | DuckDB | Runs in-process with nothing to operate, and is quick on a cold cache. |
| Complex multi-table joins over MySQL protocol, self-hosted | StarRocks | A cost-based optimizer built around joins; slower than ClickHouse on aggregates. |
| Scheduled company-wide BI in one cloud | Snowflake, BigQuery or Redshift | Mature governance and integrations, at the price of interactive latency and a less predictable bill. |
| SQL over a lakehouse that also runs your ETL and ML | Databricks SQL | One platform over Delta tables; expect seconds, not milliseconds. |