Explains BigQuery storage tiers, physical vs logical storage, slot-based compute pricing, and practical cost management techniques like partitioning, clustering, and choosing on-demand or flat-rate/flex slots.
Welcome back. In this lesson we explain how BigQuery storage types and compute pricing interact, and how to manage costs effectively. We cover:
BigQuery storage tiers: active vs long-term
Physical vs logical storage and how billing is applied
Compute (slots) and pricing models: on-demand, flat-rate, and flex slots
Practical guidance to reduce storage and query costs
Table partitioning and clustering improve performance and lower query costs by reducing the bytes scanned. Even after optimizing table design, storage and processing fees can still add up. This article shows how BigQuery charges for storage and compute so you can choose the best cost-management approach.
BigQuery applies two main storage tiers with automatic billing behavior:
Active storage: Data modified or ingested in the last 90 days. Billed at the standard storage rate and kept ready for frequent access.
Long-term storage: Data unchanged for 90 consecutive days. BigQuery automatically applies a discounted long-term rate (typically about half of active pricing).
Physical vs Logical Storage (and billing considerations)
Understanding physical vs logical storage helps explain why you might see differences between storage billed and query bytes processed.
Physical storage: The actual bytes written to disk after BigQuery’s columnar compression. Billing and reported storage usage in the console are based on this compressed size.
Logical storage: The uncompressed size or the conceptual amount of data in table columns. Logical layout determines how many bytes a query reads (bytes processed).
Key billing points:
Storage charges are based on the physical (compressed) size and the applied storage tier (active or long-term).
Query charges (on-demand) are based on bytes processed—driven by logical size and which columns/partitions the query reads.
Compression reduces storage costs and I/O, but query charges depend on which logical data the query scans; compression alone won’t eliminate query costs.
Concern
Billing basis
Impact on cost
Storage
Physical (compressed) bytes
Reduces storage costs when compression effective
Query processing
Logical bytes scanned (columns read)
Drives on-demand query charges; partition/clustering reduce this
BigQuery automatically applies the long-term storage discount to data that hasn’t been modified for 90 consecutive days—no manual action required.
BigQuery executes queries on slots (virtualized CPU capacity). You can pay for slots in multiple ways, depending on predictability and scale of workloads.
On-demand (pay-per-query)
Pricing: pay per bytes processed (commonly quoted per TB processed).
Best for: ad-hoc analysis, unpredictable workloads, experimentation.
Pros: no upfront commitment.
Cons: costs can spike with many or inefficient queries, or when large unpartitioned tables are scanned.
Flat-rate (reservations)
Pricing: reserve a fixed number of slots for a predictable monthly cost.
Best for: steady, production workloads requiring predictable performance.
Pros: consistent performance and predictable spend for large teams.
Cons: higher upfront cost; typically used by organizations with sustained usage.
Flex slots
Pricing: short-term slot reservations (hourly) to temporarily increase capacity.
Best for: short bursts (end-of-month reporting, heavy ETL window).
Pros: scale up only when needed without long-term commitment.
Cons: limited to temporary bursts; may require orchestration to use effectively.
Choose the right compute model carefully: on-demand can be cost-effective for small or sporadic workloads, while flat-rate is usually more economical for sustained, high-volume query traffic. Monitor slot utilization and query efficiency to avoid overspending.