Hide
BigQuery

Pricing

BigQuery offers scalable, flexible pricing options to help fit your project and budget. BigQuery charges for data storage and for querying data, but loading and exporting data are free of charge. For querying data, we offer on-demand for a pay-as-you-go model.

When charging in local currency, Google will convert the prices listed into applicable local currency pursuant to the conversion rates published by leading financial institutions.

Contents

Free operations

The following table shows BigQuery operations that are free of charge. BigQuery's quota policy applies for these operations.

Action Examples
Loading data Loading data into BigQuery
Exporting data Exporting data from BigQuery
Metadata operations List, get, patch, update and delete calls

Storage pricing

Loading data into BigQuery is free, with the exception of a small charge for streamed data. Storage pricing is based on the amount of data stored in your tables, which we calculate based on the types of data you store. For a detailed explanation of how we calculate your data size, see data size calculation.

Storage pricing is prorated per MB, per second. For example, if you store 1 TB for half of a month, you pay $10.

Storage action Cost
Storage $0.020 per GB, per month.
Streaming Inserts $0.01 per 200 MB, with individual rows calculated using a 1 KB minimum size.

Query pricing

BigQuery offers on-demand pricing for queries. All queries are subject to BigQuery's quota policy.

On-demand pricing

On-demand queries use a shared pool of resources across users. The first 1 TB of data processed per month is free of charge (per billing account). You aren't charged for queries that return an error, or for cached queries.

BigQuery uses a columnar data structure. You're charged according to the total data processed in the columns you select, and the total data per column is calculated based on the types of data in the column. For more information about how we calculate your data size, see data size calculation.

Charges are rounded to the nearest MB, with a minimum 10 MB data processed per table referenced by the query, and with a minimum 100 MB data processed per query.

Cancelling a running query job may incur charges up to the full cost for the query were it allowed to run to completion.

Before January 1, 2016

Resource Pricing
Queries $5 per TB

Query pricing tiers

Starting January 1, 2016

Resource Pricing
Tier 1 $5 per TB
High Compute Tier 2 $10 per TB
High Compute Tier 3 $20 per TB

High Compute Tiers apply for queries that consume extraordinarily large computing resources relative to the amount of bytes scanned. For example, queries that contain a very large number of JOIN or CROSS JOIN clauses, or complex user-defined functions (UDFs) with large processing requirements.

BigQuery determines the tier your query falls under after the query completes, because there's no way to accurately estimate computing consumption before running the query.

To see what tier your query falls under, look at the totalBytesBilled and billingTier variables. Additionally, the tier is displayed when running a query in the BigQuery web UI.

You can opt out of the High Compute Tiers by contacting support or your local sales rep. After opting out, a resourcesExceeded error is returned when running an applicable query.

BigQuery Slots

BigQuery Slots is a model that lets you guarantee resources, regardless of demand on the overall multi-tenant pool. This allows you to minimize variability in query performance and maximize resources available for query processing. Use cases include SaaS platforms, mission-critical ETL tasks, and business reporting.

If you have workloads that require low resource variability, contact support or your local sales rep to discuss BigQuery Slots.

Data size calculation

When you load data into BigQuery or query the data, you're charged according to the data size. We calculate your data size based on the size of each data type.

Data type Size
STRING 2 bytes + the UTF-8 encoded string size
INTEGER 8 bytes
FLOAT 8 bytes
BOOLEAN 1 byte
TIMESTAMP 8 bytes
RECORD 0 bytes + the size of the contained fields

Null values for any data type are calculated as 0 bytes. Repeated fields are calculated per entry. For example, a repeated INTEGER with 4 entries counts as 32 bytes.

Sample query costs

When you run a query, you're charged according to the total data processed in the columns you select, even if you set an explicit LIMIT on the results. The total bytes per column is calculated based on the types of data in the column. For more information about how we calculate your data size, see data size calculation.

The following table shows several sample queries and a description of how many bytes are processed for each query.

Sample query Bytes processed
SELECT corpus, word FROM publicdata:samples.shakespeare LIMIT 1 Total size of the corpus + size of word columns
SELECT corpus FROM (SELECT * FROM publicdata:samples.shakespeare) Total size of the corpus column
SELECT COUNT(*) FROM publicdata:samples.shakespeare No bytes processed
SELECT COUNT(corpus) FROM publicdata:samples.shakespeare Total size of the corpus column
SELECT COUNT(*) FROM publicdata:samples.shakespeare WHERE corpus = 'hamlet' Total size of the corpus column
SELECT shakes.corpus, wiki.language FROM publicdata:samples.shakespeare AS shakes JOIN publicdata:samples.wikipedia AS wiki ON shakes.corpus = wiki.title Total size of the shakes.corpus, wiki.language and wiki.title columns