Methodology
Where the numbers come from
Every figure on OLAP Compare is read from a published ClickBench result file. Nothing is rerun, adjusted or estimated here except the cost per query, which is calculated from those files and each vendor’s published list price.
About the data
This site highlights ClickHouse. Its data comes from ClickBench, a benchmark maintained by ClickHouse in a public repository where every engine’s install script, queries and raw timings are open, and where vendors and the community submit and correct results. We picked ClickBench because anyone can rerun it in as little as twenty minutes on an ordinary cloud machine and check us.
The benchmark
ClickBench loads one table, hits, of about 100 million rows of anonymised web analytics events, and runs 43 SQL queries against it: filters, aggregations, group-bys over high-cardinality columns, string searches and sorts. Each query runs three times. The first run is the cold run; the faster of the next two is the hot run.
It reflects clickstream analysis, web analytics, logs and event data, the workloads behind dashboards and ad-hoc exploration. Results are taken as of 7 November 2026. See benchmark.clickhouse.com for every engine and machine size, and the ClickBench repository for the scripts.
The five measurements
- Query latency
- Geometric mean over the 43 queries of each query’s hot run, with 10 ms added to every query as ClickBench does when it ranks systems, so near-instant queries don’t dominate. The configurations below also list the total of all hot and all cold runs.
- Ingestion
- Wall-clock seconds to load the full table, as each result file reports it.
- Compression
- The size of the loaded table on disk, including indexes, in GB (10⁹ bytes).
- Concurrency
- Queries per second in ClickBench’s supplementary concurrent test, where several clients run queries at the same time for a fixed period. Only engines that run as a shared server take it, and the charts show those with a published result.
- Cost per query
- The average hot-run time per query, multiplied by the hourly list price of the configuration that ran it and shown per 1,000 queries. Every price is a published on-demand rate in AWS US East, so the services are priced on the same basis. It counts compute only, not storage, minimum billing increments, discounts or the people who run it. The prices and their sources are listed below.
The configurations
Engines you install yourself are compared on the same AWS c6a.4xlarge (16 vCPU, 32 GiB), with default settings. Managed services are compared at a mid-size configuration of each, since their hardware isn’t something you choose. Larger and smaller sizes of every service are on ClickBench.
| Engine | Configuration | Run date | Hot total | Cold total | Result file |
|---|---|---|---|---|---|
| ClickHouse | c6a.4xlarge | 2026-11-07 | 16.14 s | 97.21 s | clickhouse/results/20261107/c6a.4xlarge.json |
| DuckDB | c6a.4xlarge | 2026-05-11 | 26.25 s | 115.19 s | duckdb/results/20260511/c6a.4xlarge.json |
| StarRocks | c6a.4xlarge | 2026-09-07 | 44.47 s | 278.03 s | starrocks/results/20260907/c6a.4xlarge.json |
| Engine | Configuration | Run date | Hot total | Cold total | Result file |
|---|---|---|---|---|---|
| ClickHouse Cloud | AWS, 3 replicas × 64 GiB | 2026-11-07 | 11.11 s | 20.02 s | clickhouse-cloud/results/20261107/aws.3.64.json |
| Databricks | SQL warehouse, Large | 2025-11-13 | 29.88 s | 39.75 s | databricks/results/20251113/large.json |
| BigQuery | Serverless | 2025-10-28 | 27.33 s | 30.26 s | bigquery/results/20251028/result.json |
| Snowflake | Gen2 warehouse, Large | 2026-07-27 | 59.53 s | 70.15 s | snowflake/results/20260727/l_gen2.json |
| Redshift | Serverless | 2022-07-29 | 19.74 s | 213.07 s | redshift-serverless/results/20220729/serverless.json |
Prices used for cost per query
| Run | Price | Per 1,000 queries | Source |
|---|---|---|---|
| ClickHouse | c6a.4xlarge on-demand, Linux, AWS US East (N. Virginia): $0.612 per hour | $0.064 | AWS EC2 on-demand pricing |
| DuckDB | c6a.4xlarge on-demand, Linux, AWS US East (N. Virginia): $0.612 per hour | $0.104 | AWS EC2 on-demand pricing |
| StarRocks | c6a.4xlarge on-demand, Linux, AWS US East (N. Virginia): $0.612 per hour | $0.176 | AWS EC2 on-demand pricing |
| ClickHouse Cloud | 24 compute units (3 replicas × 64 GiB, 8 GiB per unit) × $0.39030 per unit-hour, AWS us-east-1: $9.37 per hour | $0.672 | ClickHouse Cloud pricing |
| Snowflake | Gen2 Large warehouse, 10.8 credits per hour on AWS × $3.00 per credit (Enterprise edition, on demand, AWS US East N. Virginia): $32.40 per hour | $12.460 | Snowflake Service Consumption Table |
What ClickBench does not tell you
- It queries one wide table, so it says little about multi-table joins, where MPP warehouses and StarRocks put much of their effort.
- The main run is one query at a time; concurrency comes from a separate, shorter test.
- Some results are older than others. The Redshift result is from 2022, and engines improve between runs.
- Defaults are used. Tuned setups of any engine can be faster, and ClickBench marks tuned results separately.
- Your data, queries and concurrency are the benchmark that counts. Rerun it on them.