| Provider | $/mo est.* ▼ | Compute model | Query $/TB | Compute $/h | Storage $/TB/mo | Free tier | Notes |
|---|---|---|---|---|---|---|---|
| Loading… | |||||||
* $/mo est. = scan × query $/TB + storage × storage $/TB/mo. Does not include compute $/h charges. If a provider has no per-TB scan price or published storage price, we show "–" (we do not invent missing numbers).
Why is a data warehouse bill hard to predict?
Scanned ≠ returned. With BigQuery and Synapse on-demand, you pay for how much data a query
reads, not what it returns — SELECT * without
column limits or partitioning can scan an entire table and cost multiples. With credit-
and hourly models (Snowflake, Redshift, ClickHouse) you pay for warehouse uptime, and
many have minimum billing on startup (60 s). An idle warehouse burns money.
How to control it: partition and cluster tables, select only needed columns, and let compute scale to zero (serverless). For small/medium data, MotherDuck/DuckDB or ClickHouse are often a fraction of hyperscaler pricing. Remember egress (data transfer) if you pull data out, and compare managed databases (OLTP) and S3 storage (raw data).
How to choose?
Variable/sporadic usage: serverless per-query (BigQuery $6.25/TB, Synapse $5/TB) — pay only for queries run, no idle cost. Continuous heavy usage: reserved compute (Snowflake, Redshift, ClickHouse) is more predictable. Small/medium data: MotherDuck (DuckDB) and ClickHouse Cloud scale to zero and are affordable — often the best value under a terabyte of data.
Ecosystem often decides: if you are already on AWS/GCP/Azure, that cloud's warehouse (Redshift/BigQuery/Synapse) integrates most tightly. Snowflake and Databricks are cloud-agnostic and strong in large organizations. EU data residency: all have EU regions, but pricing there is typically higher than in the US. Always compare storage + estimated query volume together, not list price alone.