Google BigQuery 1 has no clusters to size. Its Dremel engine splits each query into stages that run on slots, units of virtual CPU drawn from a shared pool, over columnar files in Google's Colossus file system. You choose how to pay for the slots:
On-demand: pay per byte scanned, $6.25 per TiB after a free 1 TiB per month, with up to 2,000 concurrent slots per project. Partitioning, clustering and selecting fewer columns cut the bill directly.
Capacity (editions): reserve slots in Standard, Enterprise or Enterprise Plus edition and pay per slot-hour, $0.04 for Standard pay-as-you-go in us-central1, billed per second with a one-minute minimum and autoscaled; one- or three-year commitments are discounted.
Storage costs about $0.023 per GiB-month for active and $0.016 for long-term (90 days unmodified) logical bytes, with the first 10 GiB free. On-demand suits spiky, light use; a reservation suits steady load, since a query that scans little but runs long is cheap on one model and expensive on the other. On-demand, the table layout is the cost control:
CREATE TABLE booknest.fact_sales (
order_date DATE, genre STRING, country STRING, qty INT64, gross_amount NUMERIC)
PARTITION BY order_date
CLUSTER BY genre, country
OPTIONS (require_partition_filter = TRUE); -- refuse queries that would scan every dayA dry run (bq query --dry_run) reports a query's bytes before you pay for them.