BigQuery pricing

BigQuery is a serverless data analytics platform. You don't need to provision individual instances or virtual machines to use BigQuery. Instead, BigQuery automatically allocates computing resources as you need them. You can also reserve compute capacity ahead of time in the form of slots, which represent virtual CPUs. The pricing structure of BigQuery reflects this design.

Overview of BigQuery pricing

BigQuery pricing has two main components:

  • Compute pricing is the cost to process queries, including SQL queries, user-defined functions, scripts, and certain data manipulation language (DML) and data definition language (DDL) statements.

  • Storage pricing is the cost to store data that you load into BigQuery.

BigQuery charges for other operations, including using BigQuery Omni, BigQuery ML, BI Engine, and streaming reads and writes.

In addition, BigQuery has free operations and a free usage tier.

Every project that you create has a billing account attached to it. Any charges incurred by BigQuery jobs run in the project are billed to the attached billing account. BigQuery storage charges are also billed to the attached billing account. You can view BigQuery costs and trends by using the Cloud Billing reports page in the Google Cloud console.

Compute pricing models

BigQuery offers a choice of two compute pricing models for running queries:

  • On-demand pricing (per TiB). With this pricing model, you are charged for the number of bytes processed by each query. The first 1 TiB of query data processed per month is free.

  • Capacity pricing (per slot-hour). With this pricing model, you are charged for compute capacity used to run queries, measured in slots (virtual CPUs) over time. This model takes advantage of BigQuery editions. You can use the BigQuery autoscaler or purchase slot commitments, which are dedicated capacity that is always available for your workloads, at a lower price.

For more information about which pricing to choose for your workloads, see Workload management using Reservations.

On-demand compute pricing

By default, queries are billed using the on-demand (per TiB) pricing model, where you pay for the data scanned by your queries.

With on-demand pricing, you will generally have access to up to 2,000 concurrent slots, shared among all queries in a single project. Periodically, BigQuery will temporarily burst beyond this limit to accelerate smaller queries. In addition, you might occasionally have fewer slots available if there is a high amount of contention for on-demand capacity in a specific location.

On-demand (per TiB) query pricing is as follows:

If you pay in a currency other than USD, the prices listed in your currency on Cloud Platform SKUs apply.

Pricing details

Note the following regarding on-demand (per TiB) query charges:

  • 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 your data size is calculated, see Estimate query costs.
  • You are charged for queries run against shared data. The data owner is not charged when their data is accessed.
  • You aren't charged for queries that return an error or for queries that retrieve results from the cache. For procedural language jobs this consideration is provided at a per-statement level.
  • Charges are rounded up to the nearest MB, with a minimum 10 MB data processed per table referenced by the query, and with a minimum 10 MB data processed per query.
  • Canceling a running query job might incur charges up to the full cost for the query if you let the query run to completion.
  • When you run a query, you're charged according to the data processed in the columns you select, even if you set an explicit LIMIT on the results.
  • Partitioning and clustering your tables can help reduce the amount of data processed by queries. As a best practice, use partitioning and clustering whenever possible.
  • On-demand (per TiB) pricing is referred to as analysis pricing on the Google Cloud SKUs page.
  • When you run a query against a clustered table, and the query includes a filter on the clustered columns, BigQuery uses the filter expression to prune the blocks scanned by the query. This can reduce the number of scanned bytes.

BigQuery provides cost control mechanisms that enable you to cap your query costs. You can set:

For detailed examples of how to calculate the number of bytes processed, see Query size calculation.

Capacity compute pricing

BigQuery offers a capacity-based compute pricing model for customers who need additional capacity or prefer a predictable cost for query workloads rather than the on-demand price (per TiB of data processed). The capacity compute model offers pay-as-you-go pricing (with autoscaling) and optional one year and three year commitments that provide discounted prices. You pay for query processing capacity, measured in slots (virtual CPUs) over time.

To enable capacity pricing, use BigQuery reservations.

BigQuery slot capacity:

  • is available in 3 editions: Standard, Enterprise, and Enterprise Plus.
  • applies to query costs, including BigQuery ML, DML, and DDL statements.
  • does not apply to storage costs or BI Engine costs.
  • does not apply to streaming inserts and using the BigQuery Storage API.
  • can leverage the BigQuery autoscaler.
  • is billed per second with a one minute minimum.

Optional BigQuery slot commitments:

  • are available for one or three year periods.
  • are available in Enterprise and Enterprise Plus editions.
  • are regional capacity. Commitments in one region or multi-region cannot be used in another region or multi-region and cannot be moved.
  • can be shared across your entire organization. There is no need to buy slot commitments for every project.
  • are offered with a 100-slot minimum and increments of 100 slots.
  • are automatically renewed unless set to cancel at the end of the period.

Standard Edition

The following table shows the cost of slots in Standard edition.

Enterprise Edition

The following table shows the cost of slots in Enterprise edition.

Enterprise Plus Edition

The following table shows the cost of slots in Enterprise plus edition.

If you pay in a currency other than USD, the prices listed in your currency on Cloud Platform SKUs apply.

Storage pricing

Storage pricing is the cost to store data that you load into BigQuery. You pay for active storage and long-term storage.

  • Active storage includes any table or table partition that has been modified in the last 90 days.

  • Long-term storage includes any table or table partition that has not been modified for 90 consecutive days. The price of storage for that table automatically drops by approximately 50%. There is no difference in performance, durability, or availability between active and long-term storage.

  • Metadata storage includes storage for logical and physical metadata for datasets, tables, partitions, models and functions stored in the BigQuery metastore.

The first 10 GiB of storage per month is free.

If you pay in a currency other than USD, the prices listed in your currency on Cloud Platform SKUs apply.

See the physical storage documentation for eligibility criteria.

Pricing details

Storage pricing is based on the amount of data stored in your tables, temporary session tables and temporary multi-statement tables. There are no storage charges for temporary cached query result tables.

The size of the data is calculated based on the data types of the individual columns. For a detailed explanation of how data size is calculated, see Data size calculation.

Storage pricing is prorated per MiB, per second. For example, if you are using active logical storage in us-central1:

  • For 512 MiB for half a month, you pay $0.00575 USD
  • For 100 GiB for half a month, you pay $1.15 USD
  • For 1 TiB for a full month, you pay $23.552 USD

Storage usage is calculated in gibibytes months (GiB months), where 1 GiB is 230 bytes (1,024 MiB). Similarly, 1 tebibyte (TiB) is 240 bytes (1,024 GiB). The final usage value is the product of data size in gibibytes and storage use time in months.

If the data in a table is not modified or deleted within 90 consecutive days, it is billed at the long-term storage rate. There is no degradation of performance, durability, availability, or any other functionality when a table is considered long-term storage.

Each partition of a partitioned table is considered separately for long-term storage pricing. If a partition hasn't been modified in the last 90 days, the data in that partition is considered long term storage and is charged at the discounted price.

If the table is edited, the price reverts back to the regular storage pricing, and the 90-day timer starts counting from zero. Anything that modifies the data in a table resets the timer, including:

Action Details
Loading data into a table Any load or query job that appends data to a destination table or overwrites a destination table.
Copying data into a table Any copy job appends data to a destination table or overwrites a destination table.
Writing query results to a table Any query job that appends data to a destination table or overwrites a destination table.
Using data manipulation language (DML) Using a DML statement to modify table data.
Using data definition language (DDL) Using a CREATE OR REPLACE TABLE statement to replace a table.
Streaming data into the table Ingesting data using the tabledata.insertAll API call.

All other actions do not reset the timer, including the following:

  • Querying a table
  • Creating a view that queries a table
  • Exporting data from a table
  • Copying a table (to another destination table)
  • Patching or updating a table resource

For tables that reach the 90-day threshold during a billing cycle, the price is prorated accordingly.

Long-term storage pricing applies only to BigQuery storage, not to data stored in external data sources such as Bigtable, Cloud Storage, and Google Drive.

Data size calculation

When you load data into BigQuery or query the data, you're charged according to the data size. Data size is calculated based on the size of each column's data type.

The size of your stored data and the size of the data processed by your queries is calculated in gibibytes (GiB), where 1 GiB is 230 bytes (1,024 MiB). Similarly, 1 tebibyte (TiB) is 240 bytes (1,024 GiB).

For more information, see Data type sizes.

Metadata storage free tier

BigQuery provides a usage based free tier for metadata storage, wherein

  • total_metadata_storage includes any data stored in the BigQuery metastore
  • total_bigquery_data_storage includes any data stored in BigQuery data storage
  • metadata (%) = total_metadata_storage / total_bigquery_data_storage
  • If metadata (%) <= 2%, then it is within free tier and is not charged
  • If metadata (%) > 2%, then the amount above the free tier is charged at the rate provided in the table above.

The metadata free tier allowance is calculated at a per-project level.

Data Transfer Service pricing

The BigQuery Data Transfer Service charges monthly on a prorated basis. You are charged as follows:

Data source Monthly charge (prorated) Notes
Campaign Manager

No charge. BigQuery Quotas and limits apply.

1
Cloud Storage

No charge. BigQuery Quotas and limits apply.

1
Amazon S3

No charge. BigQuery Quotas and limits apply.

1,2,3
Google Ads

No charge. BigQuery Quotas and limits apply.

1
Google Ad Manager

No charge. BigQuery Quotas and limits apply.

1
Google Merchant Center

No charge. BigQuery Quotas and limits apply.

1
Google Play

$25 per unique Package Name in the Installs_country table.

1
Search Ads 360

No charge. BigQuery Quotas and limits apply.

1
YouTube Channel

No charge. BigQuery Quotas and limits apply.

1
YouTube Content Owner

No charge. BigQuery Quotas and limits apply.

1
Data warehouse Monthly charge (prorated) Notes
Teradata

No charge. BigQuery Quotas and limits apply.

1, 2, 3, 4
Amazon Redshift

No charge. BigQuery Quotas and limits apply.

1, 2, 3
Third-party Connectors Costs apply See 5 for more details

Notes on transfer pricing

All transfers

1. After data is transferred to BigQuery, standard BigQuery storage and query pricing applies.

Migrations from other platforms

2. Extraction, uploading to a Cloud Storage bucket, and loading data into BigQuery is free.

3. Costs can be incurred outside of Google Cloud by using the BigQuery Data Transfer Service, such as AWS or Azure data transfer charges.

Teradata migrations

4. Data is not automatically deleted from your Cloud Storage bucket after it is uploaded to BigQuery. Consider deleting the data from your Cloud Storage bucket to avoid additional storage costs. See Cloud Storage pricing.

Third-party Connectors

5. Costs apply for connectors provided by third-party partners. The pricing model differs for different partners and connectors. For more pricing details, refer to individual connectors when enrolling in Marketplace.

Google Play Package Name

Every Android app has a unique application ID that looks like a Java package name, such as com.example.myapp. The Installs report contains a column of "Package Name". The number of unique package names is used for calculating usage of transfers.

Each transfer you create generates one or more runs per day. Package names are only counted on the day a transfer run completes. For example, if a transfer run begins on July 14th but completes on July 15th, the package names are counted on July 15th.

If a unique package name is encountered in more than one transfer run on a particular day, it is counted only once. Package names are counted separately for different transfer configurations. If a unique package name is encountered in runs for two separate transfer configurations, the package name is counted twice.

If a package name appeared every day for an entire month, you would be charged the full $25 for that month. Otherwise, if it appeared for a part of the month, the charge would be prorated.

Example#1: If we sync for 1 application - com.smule.singandroid, will it cost us $25 per month + storage price for BigQuery?

The answer is $25 per month (prorated) + storage/querying costs from BigQuery.

Example#2: If we sync all historic data (for 10 years), will we be charged for 120 months or for 1 month, because we transferred them at once?

The answer is still $25 per month (prorated) + storage/querying costs from BigQuery, since we charge $25 per unique Package Name in the Installs_country table, regardless of how many years the historic data goes back to for that unique Package Name.

BigQuery Omni pricing

BigQuery Omni offers the following pricing models depending on your workloads and needs.

On-Demand compute pricing

Similar to BigQuery on-demand analysis model, BigQuery Omni queries, by default are billed using the on-demand (per TiB) pricing model, where you pay for the data scanned by your queries.

With on-demand pricing, you will generally have access to a large pool of concurrent slots, shared among all queries in a single project. Periodically, BigQuery Omni will temporarily burst beyond this limit to accelerate smaller queries. In addition, you might occasionally have fewer slots available if there is a high amount of contention for on-demand capacity in a specific location.

BigQuery Omni on-demand (per TiB) query pricing is as follows:

Region Price per TiB
AWS North Virginia (aws-us-east-1) $7.82
Azure North Virginia (azure-eastus2) $9.13
AWS Seoul (aws-ap-northeast-2) $10.00
AWS Oregon (aws-us-west-2) $7.82
AWS Ireland (aws-eu-west-1) $8.60
AWS Sydney (aws-ap-southeast-2) $10.55
AWS Frankfurt (aws-eu-central-1) $10.16

If you pay in a currency other than USD, the prices listed in your currency on Cloud Platform SKUs apply.

Pricing details

The details and limitations are similar to BigQuery analysis pricing. Note the following regarding on-demand (per TiB) query charges:

  • 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 your data size is calculated, see Data size calculation.
  • You aren't charged for queries that return an error or for queries that retrieve results from the cache. For procedural language jobs this consideration is provided at a per-statement level.
  • Charges are rounded up to the nearest MB, with a minimum 10 MB data processed per table referenced by the query, and with a minimum 10 MB data processed per query.
  • Canceling a running query job might incur charges up to the full cost for the query if you let the query run to completion.
  • When you run a query, you're charged according to the data processed in the columns you select, even if you set an explicit LIMIT on the results.
  • Partitioning and clustering your tables can help reduce the amount of data processed by queries. As a best practice, use partitioning and clustering whenever possible.
  • On-demand (per TiB) pricing is referred to as analysis pricing on the Google Cloud SKUs page.
  • When you run a query against a clustered table, and the query includes a filter on the clustered columns, BigQuery uses the filter expression to prune the blocks scanned by the query. This can reduce the number of scanned bytes.

BigQuery provides cost control mechanisms that enable you to cap your query costs. You can set:

BigQuery Omni with editions

BigQuery Omni regions support BigQuery editions. At present only Enterprise Edition is supported in Omni regions

The following table shows the cost of slots in Omni regions

AWS North Virginia (aws-us-east-1)

Commitment model Hourly cost Number of slots
PAYG (no commitment) $7.50 (billed per second with a 1 minute minimum) 100
1 yr commit $6 (billed for 1 year) 100
3 yr commit $4.50 (billed for 3 years) 100

Azure North Virginia (azure-eastus2)

Commitment model Hourly cost Number of slots
PAYG (no commitment) $8.80 (billed per second with a 1 minute minimum) 100
1 yr commit $7 (billed for 1 year) 100
3 yr commit $5.30 (billed for 3 years) 100

AWS Seoul (aws-ap-northeast-2)

Commitment model Hourly cost Number of slots
PAYG (no commitment) $9.60 (billed per second with a 1 minute minimum) 100
1 yr commit $7.7 (billed for 1 year) 100
3 yr commit $5.80 (billed for 3 years) 100

AWS Oregon (aws-us-west-2)

Commitment model Hourly cost Number of slots
PAYG (no commitment) $7.50 (billed per second with a 1 minute minimum) 100
1 yr commit $6.00 (billed for 1 year) 100
3 yr commit $4.50 (billed for 3 years) 100

AWS Ireland (aws-eu-west-1)

Commitment model Hourly cost Number of slots
PAYG (no commitment) $8.25 (billed per second with a 1 minute minimum) 100
1 yr commit $6.60 (billed for 1 year) 100
3 yr commit $4.95 (billed for 3 years) 100

AWS Sydney (aws-ap-southeast-2)

Commitment model Hourly cost Number of slots
PAYG (no commitment) $10.13 (billed per second with a 1 minute minimum) 100
1 yr commit $8.10 (billed for 1 year) 100
3 yr commit $6.08 (billed for 3 years) 100

AWS Frankfurt (aws-eu-central-1)

Commitment model Hourly cost Number of slots
PAYG (no commitment) $9.75 (billed per second with a 1 minute minimum) 100
1 yr commit $7.80 (billed for 1 year) 100
3 yr commit $5.85 (billed for 3 years) 100

Omni Cross Cloud Data Transfer

When using Omni’s Cross Cloud capabilities (Cross Cloud Transfer, Create Table as Select, Insert Into Select, Cross Cloud Joins, and Cross Cloud Materialized Views) that involve data moving from AWS or Azure to Google Cloud, there will be additional charges for data transfer.

Specifically for Cross-Cloud Materialized Views, Create Table as Select, Insert Into Select, and Cross Cloud Joins there are no charges during Preview. Starting 29 February 2024, these services will be generally available and you will be charged for data transfer. You will be charged for data transfer only when using any of the above listed services from an AWS or Azure region to a Google Cloud BigQuery region. You will be charged on a per GiB rate based on the amount of data transferred from AWS or Azure to Google Cloud.

SKU Billing model Meter List price
Cross-cloud data transfer from AWS North Virginia (aws-us-east-1) to Google Cloud North America usage-based GiB transferred $.09
Cross-cloud data transfer from Azure North Virginia (azure-eastus2) to Google Cloud North America usage-based GiB transferred $.0875
Cross-cloud data transfer from AWS Seoul (aws-ap-northeast-2) to Google Cloud Asia usage-based GiB transferred $.126
Cross-cloud data transfer from AWS Oregon (aws-us-west-2) to Google Cloud North America usage-based GiB transferred $.09
Cross-cloud data transfer from AWS Ireland (aws-eu-west-1) to Google Cloud Europe usage-based GiB transferred $.09
Cross-cloud data transfer from AWS Sydney (aws-ap-southeast-2) to Google Cloud Oceania usage-based GiB transferred $.114
Cross-cloud data transfer from AWS Frankfurt (aws-eu-central-1) to Google Cloud Europe usage-based GiB transferred $.09

Omni Managed Storage

When using Omni’s Cross Cloud Materialized Views capability, you will also be charged for creation of local materialized views which is on BigQuery Managed Storage on AWS. You will be charged a per GiB for the amount of physical storage that is used for the local materialized view.

Operation Pricing
Active physical storage (aws-us-east-1) $0.05 per GiB per month
Long-term physical storage (aws-us-east-1) $0.025 per GiB per month
Active physical storage (azure-eastus2) $0.05 per GiB per month
Long-term physical storage (azure-eastus2) $0.025 per GiB per month
Active physical storage (aws-ap-northeast-2) $0.052 per GiB per month
Long-term physical storage (aws-ap-northeast-2) $0.026 per GiB per month
Active physical storage (aws-us-west-2) $0.04 per GiB per month
Long-term physical storage (aws-us-west-2) $0.02 per GiB per month
Active physical storage (aws-eu-west-1) $0.044 per GiB per month
Long-term physical storage (aws-eu-west-1) $0.022 per GiB per month
Active physical storage (aws-ap-southeast-2) $0.052 per GiB per month
Long-term physical storage (aws-ap-southeast-2) $0.026 per GiB per month
Active physical storage (aws-eu-central-1) $0.052 per GiB per month
Long-term physical storage (aws-eu-central-1) $0.026 per GiB per month

Data ingestion pricing

BigQuery offers two modes of data ingestion:

For more information about which mode to choose, see Introduction to loading data.

If you pay in a currency other than USD, the prices listed in your currency on Cloud Platform SKUs apply.

Pricing details

By default, you are not charged for batch loading data from Cloud Storage or from local files into BigQuery. Load jobs by default use a shared pool of slots. BigQuery does not make guarantees about the available capacity of this shared pool or the throughput you will see. Alternatively, you can purchase dedicated slots to run load jobs. You are charged capacity-based pricing for dedicated slots. When load jobs are assigned to a reservation, they lose access to the free pool. For more information, see Assignments.

Once your data is loaded into BigQuery, it is subject to BigQuery storage pricing. If you load data from Cloud Storage, you are charged for storing the data in Cloud Storage. For details, see Data storage on the Cloud Storage pricing page.

Data extraction pricing

BigQuery offers the following modes of data extraction:

  • Batch export. Use an an extract job to export table data to Cloud Storage. There is no processing charge for exporting data from a BigQuery table using an extract job.

  • Export query results. Use the EXPORT DATA statement to export query results to Cloud Storage, Bigtable, or Spanner. You are billed for the compute cost to process the query statement.

  • Streaming reads. Use the Storage Read API to perform high-throughput reads of table data. You are billed for the amount of data read.

If you pay in a currency other than USD, the prices listed in your currency on Cloud Platform SKUs apply.

Batch export data transfer pricing

You are charged for data transfer when you export data in batch from BigQuery to a Cloud Storage bucket or Bigtable table in another region, as follows:

Case Example Rate
Export within the same location From us-east1 to us-east1 Free
Export from BigQuery US multi-region From US multi-region to us-central1 (Iowa) Free
Export from BigQuery US multi-region From US multi-region to any region (except us-central1 (Iowa)) See following table
Export from BigQuery EU multi-region From EU multi-region to europe-west4 (Netherlands) Free
Export from BigQuery EU multi-region From EU multi-region to any region (except europe-west4 (Netherlands)) See following table
Export across locations From us-east1 to us-central1 See following table
Source location Destination location
Northern America Europe Asia Indonesia Oceania Middle East Latin America Africa
Northern America $0.02/GiB $0.05/GiB $0.08/GiB $0.10/GiB $0.10/GiB $0.11/GiB $0.14/GiB $0.11/GiB
Europe $0.05/GiB $0.02/GiB $0.08/GiB $0.10/GiB $0.10/GiB $0.11/GiB $0.14/GiB $0.11/GiB
Asia $0.08/GiB $0.08/GiB $0.08/GiB $0.10/GiB $0.10/GiB $0.11/GiB $0.14/GiB $0.11/GiB
Indonesia $0.10/GiB $0.10/GiB $0.10/GiB $0.08/GiB $0.08/GiB $0.11/GiB $0.14/GiB $0.14/GiB
Oceania $0.10/GiB $0.10/GiB $0.10/GiB $0.08/GiB $0.08/GiB $0.11/GiB $0.14/GiB $0.14/GiB
Middle East $0.11/GiB $0.11/GiB $0.11/GiB $0.11/GiB $0.11/GiB $0.08/GiB $0.14/GiB $0.11/GiB
Latin America $0.14/GiB $0.14/GiB $0.14/GiB $0.14/GiB $0.14/GiB $0.14/GiB $0.14/GiB $0.14/GiB
Africa $0.11/GiB $0.11/GiB $0.11/GiB $0.14/GiB $0.14/GiB $0.11/GiB $0.14/GiB $0.11/GiB

Storage Read API data transfer within Google Cloud

Case Examples Rate
Accessing cached query results from temporary tables
  • Temporary tables "anonymous dataset"
Free
Data reads within the same location
  • From us-east1 to us-east1
Free
Data read from a BigQuery multi-region to a different BigQuery location, and both locations are on the same continent.
  • From us to us-east1
  • From eu to europe-west1
Free
Data read between different locations on the same continent (assuming none of the above free cases apply)
  • From us-east1 to northamerica-northeast1
  • From europe-west1 to europe-north1
$0.01/GiB*
Data moves between different continents within Google cloud and neither is Australia.
  • From us to asia
  • From europe-west1 to southamerica-east1
$0.08 per GiB
Data moves between different continents within Google cloud and one is Australia.
  • From us to australia-southeast1
  • From australia-southeast1 to europe-west1
$0.15 per GiB

If you pay in a currency other than USD, the prices listed in your currency on Cloud Platform SKUs apply.

Storage Read API general network usage

Monthly Usage Data Transfer to Worldwide Destinations (excluding Asia & Australia)
(per GiB)
Data Transfer to Asia Destinations (excluding China, but including Hong Kong)
(per GiB)
Data Transfer to China Destinations (excluding Hong Kong)
(per GiB)
Data Transfer to Australia Destinations
(per GiB)
Data Transfer in
0-1 TiB $0.12 $0.12 $0.19 $0.19 Free
1-10 TiB $0.11 $0.11 $0.18 $0.18 Free
10+ TiB $0.08 $0.08 $0.15 $0.15 Free

If you pay in a currency other than USD, the prices listed in your currency on Cloud Platform SKUs apply.

Storage Read API pricing details

The Storage Read API has an on-demand price model. With on-demand pricing, BigQuery charges for the number of bytes processed (also referred to as bytes read). On-demand pricing is solely based on usage, with a bytes read free tier of 300 TiB per month for each billing account. Bytes scanned as part of reads from temporary tables are free and do not count against the 300TiB free tier. This free bytes read 300 TiB is on the bytes-read component, and does not apply to associated outbound data transfer.

Note the following regarding Storage Read API charges:

  • You are charged according to the total amount of data read. The total data read per column is calculated based on the type of data in the column, and the size of the data is calculated based on the column's data type. For a detailed explanation of how data size is calculated, see Data size calculation.
  • You are charged for any data read in a read session even if a ReadRows call fails.
  • If you cancel a ReadRows call before the end of the stream is reached, you are charged for any data read before the cancellation. Your charges can include data that was read but not returned to you before the cancellation of the ReadRows call.
  • As a best practice, use partitioned and clustered tables whenever possible. You can reduce the amount of data read by using a WHERE clause to prune partitions. For more information, see Querying partitioned tables.
  • When using Interconnect, Cloud Interconnect pricing applies instead of BigQuery Storage Read API General Network Usage prices.

Data replication pricing

BigQuery offers two modes of replicating (copying) data between regions:

  • Cross-region copy. One time or scheduled copy of table data to between regions or multi-regions, see copy datasets or copy tables.

  • Cross-region replication. Ongoing, incremental replication of a dataset between two or more different regions or multi-regions, see cross-region dataset replication.

  • Cross-region Turbo replication. High performance, ongoing, incremental replication of a dataset between two or more different regions or multi-regions. Available only with managed disaster recovery.

Storage for replicated data

Replicated data stored in the destination region or multi-region is charged according to BigQuery storage pricing.

Data replication data transfer pricing

You are charged for data transfer for the volume of data replicated. The use cases and breakdown of data transfer charges are provided as follows:

Case Example Rate
Replicate within the same location From us-east1 to us-east1 Free
Replicate from BigQuery US multi-region From US multi-region to us-central1 (Iowa) Free
Replicate from BigQuery US multi-region From US multi-region to any region (except us-central1 (Iowa)) See following table
Replicate from BigQuery EU multi-region From EU multi-region to europe-west4 (Netherlands) Free
Replicate from BigQuery EU multi-region From EU multi-region to any region (except europe-west4 (Netherlands)) See following table
Replicate across locations From us-east1 to us-central1 See following table
Source location Destination location
Northern America Europe Asia Indonesia Oceania Middle East Latin America Africa
Northern America $0.02/GiB $0.05/GiB $0.08/GiB $0.10/GiB $0.10/GiB $0.11/GiB $0.14/GiB $0.11/GiB
Europe $0.05/GiB $0.02/GiB $0.08/GiB $0.10/GiB $0.10/GiB $0.11/GiB $0.14/GiB $0.11/GiB
Asia $0.08/GiB $0.08/GiB $0.08/GiB $0.10/GiB $0.10/GiB $0.11/GiB $0.14/GiB $0.11/GiB
Indonesia $0.10/GiB $0.10/GiB $0.10/GiB $0.08/GiB $0.08/GiB $0.11/GiB $0.14/GiB $0.14/GiB
Oceania $0.10/GiB $0.10/GiB $0.10/GiB $0.08/GiB $0.08/GiB $0.11/GiB $0.14/GiB $0.14/GiB
Middle East $0.11/GiB $0.11/GiB $0.11/GiB $0.11/GiB $0.11/GiB $0.08/GiB $0.14/GiB $0.11/GiB
Latin America $0.14/GiB $0.14/GiB $0.14/GiB $0.14/GiB $0.14/GiB $0.14/GiB $0.14/GiB $0.14/GiB
Africa $0.11/GiB $0.11/GiB $0.11/GiB $0.14/GiB $0.14/GiB $0.11/GiB $0.14/GiB $0.11/GiB

Data replication data transfer pricing for Turbo replication

Source location Destination location
Northern America Europe Asia Indonesia Oceania Middle East Latin America Africa
Northern America $0.04/GiB $0.10/GiB $0.16/GiB $0.20/GiB $0.20/GiB $0.22/GiB $0.28/GiB $0.22/GiB
Europe $0.10/GiB $0.04/GiB $0.16/GiB $0.20/GiB $0.20/GiB $0.22/GiB $0.28/GiB $0.22/GiB
Asia $0.16/GiB $0.16/GiB $0.16/GiB $0.20/GiB $0.20/GiB $0.22/GiB $0.28/GiB $0.22/GiB
Indonesia $0.20/GiB $0.20/GiB $0.20/GiB $0.16/GiB $0.16/GiB $0.22/GiB $0.28/GiB $0.28/GiB
Oceania $0.20/GiB $0.20/GiB $0.20/GiB $0.16/GiB $0.16/GiB $0.22/GiB $0.28/GiB $0.28/GiB
Middle East $0.22/GiB $0.22/GiB $0.22/GiB $0.22/GiB $0.22/GiB $0.16/GiB $0.28/GiB $0.22/GiB
Latin America $0.28/GiB $0.28/GiB $0.28/GiB $0.28/GiB $0.28/GiB $0.28/GiB $0.28/GiB $0.28/GiB
Africa $0.22/GiB $0.22/GiB $0.22/GiB $0.28/GiB $0.28/GiB $0.22/GiB $0.28/GiB $0.22/GiB

Metastore access pricing

Metastore access charges apply to Hive partitioned tables managed in BigQuery metastore accessed from services outside of BigQuery, such as Dataproc or Compute Engine. Access charges do not apply for accessing any other table metadata, including Apache Iceberg tables and Delta Lake tables managed in BigQuery metastore.

When you are reading data from the metastore outside of BigQuery, you will be charged for metadata access via the BigQuery Read API. Similarly, when you are writing data to the metastore outside of BigQuery, you will be charged via the BigQuery Write API.

If you are accessing the metastore from BigQuery SQL queries, access charges are included in the query processing charges, whether you are using the on-demand or capacity-based pricing.

Notebook runtime pricing

BigQuery Studio notebooks rely on a default notebook runtime that uses Colab Enterprise runtime to allow notebook code execution. Usage of these services are billed as pay-as-you go slots and GB/s usage for SSD.

The default notebook runtime is a Google-provisioned virtual machine (VM) that can run the code in your notebook (IPYNB file). This allows BigQuery customers to execute python script and is not charged after idle time.

*The Pay as you go slots, will be metered in the edition that is being used at the project level.

The default notebook allocates PD and SSD in the background to help users install new data science packages and maintain their work beyond the Python code they execute. Once the PD and SSD is released, you will not see charges.

BigQuery Studio notebook pricing details:

  • Default runtime configuration may change to improve usability. Details can be found here.
  • Colab Enterprise runtimes shut down after 180 minutes of inactivity by default. This page describes the idle shutdown feature and how to change the default idle shutdown settings or turn the feature off when you create a runtime template.

BigQuery ML pricing

BigQuery ML models can be classified into two different categories: built-in models and external models. BigQuery ML built-in models are trained within BigQuery, such as linear regression, logistic regression, means, matrix factorization, PCA and time series models (e.g., ARIMA_PLUS). BigQuery ML external models are trained utilizing other Google Cloud services, DNN, boosted tree and random forest (which are trained on Vertex AI) and AutoML models (which are trained on the Vertex AI Tables backend). BigQuery ML model training pricing is based on the model type and your usage pattern, as well as your pricing model: editions or on-demand. BigQuery ML prediction and evaluation functions are executed within BigQuery ML for all model types, priced as explained below.

BigQuery ML editions pricing

BigQuery ML is available in Enterprise and Enterprise Plus Editions for customers who prefer a compute capacity (number of slots) based pricing model over the on-demand (number of bytes processed) model. Customers can use Enterprise or Enterprise Plus reservations to use all features of BigQuery ML. BigQuery ML usage will be included in the BigQuery Editions usage.

Reservations to create built-in models

BigQuery has three job types for reservation assignment: QUERY, PIPELINE, and ML_EXTERNAL. QUERY assignments, which are used for analytical queries, are also used to run CREATE MODEL queries for BigQuery ML built-in models. Built-in model training and analytical queries share the same pool of resources in their assigned reservations, and have the same behavior regarding being preemptible, and using idle slots from other reservations.

Reservations to create external models

Because external models are trained outside of BigQuery, these workloads are not preemptible. As a result, to ensure other workloads are not impacted, only reservations with ML_EXTERNAL job type assignment can be used for these external jobs. Reservations workload management describes how to create reservations for external model training jobs. The slots usage per job is calculated to maintain the price parity between BigQuery slots and external Google Cloud service costs.

BigQuery ML on-demand pricing

BigQuery ML pricing for on-demand queries depends on the type of operation: model type, model creation, model evaluation, model inspection, or model prediction. For the models that support it, hyperparameter tuning is billed at the same rate as model creation. The cost of the model training associated with hyperparameter tuning is the sum of the cost of all executed trials.

BigQuery ML on-demand pricing is as follows:

If you pay in a currency other than USD, the prices listed in your currency on Cloud Platform SKUs apply.

1 The CREATE MODEL statement stops at 50 iterations for iterative models. This applies to both on-demand and editions pricing.

2 For time series models, when auto-arima is enabled for automatic hyper-parameter tuning, multiple candidate models are fitted and evaluated during the training phase. In this case, the number of bytes processed by the input SELECT statement is multiplied by the number of candidate models, which can be controlled by the AUTO_ARIMA_MAX_ORDER training option for ARIMA_PLUS or the AUTO_ARIMA_MAX_ORDER training option for ARIMA_PLUS_XREG. This applies to both on-demand and editions pricing. The following notes apply to time series model creation:

  • For single time series forecasting with auto-arima enabled, when AUTO_ARIMA_MAX_ORDER is (1, 2, 3, 4, 5), the number of candidate models is (6, 12, 20, 30, 42) respectively if non-seasonal d equals one; otherwise, the number of candidate models is (3, 6, 10, 15, 21).

  • For multiple time series forecasting using TIME_SERIES_ID_COL, the charge is for (6, 12, 20, 30, 42) candidate models when AUTO_ARIMA_MAX_ORDER is (1, 2, 3, 4, 5) respectively.

  • Note that this model selection only applies to model creation. For model evaluation, inspection, and prediction, only the selected model is used, with regular query pricing.

3 See BigQuery ML Remote Model Inference for details.

BigQuery ML remote model training, inference, and tuning

BigQuery ML lets customers create a remote model that targets a Vertex AI foundation model, a Vertex AI online prediction endpoint, or a Cloud AI API, for example Cloud AI Vision API.

The pricing for BigQuery ML remote model inference has the following parts:

  1. The bytes processed by BigQuery are billed according to standard pricing such as on-demand or editions pricing.
  2. In addition, costs are incurred for the remote endpoint as follows:
    Remote Model types Inference functions Pricing
    Google models hosted on Vertex AI ML.GENERATE_TEXT
    ML.GENERATE_EMBEDDING
    Generative AI on on Vertex AI pricing
    Anthropic Claude models enabled on Vertex AI ML.GENERATE_TEXT
    Generative AI on on Vertex AI pricing
    Vertex AI endpoints ML.PREDICT Vertex AI pricing
    Cloud Natural Language API ML.UNDERSTAND_TEXT Cloud Natural Language API pricing
    Cloud Translation API ML.TRANSLATE Cloud Translation API pricing
    Cloud Vision API ML.ANNOTATE_IMAGE Cloud Vision API pricing
    Document AI API ML.PROCESS_DOCUMENT Document AI API pricing
    Speech-to-Text API ML.TRANSCRIBE Speech-to-Text API pricing

For remote endpoint model pricing, you are billed directly by the above services. You may use the billing label billing_service = 'bigquery_ml' and the billing label bigquery_job_id to filter the exact charges.

LLM supervised tuning costs

When using supervised tuning with remote models over Vertex AI LLMs, costs are calculated based on the following:

  • The bytes processed from the training data table specified in the AS SELECT clause. These charges are billed from BigQuery to your project.
  • The GPU or TPU usage to tune the LLM. These charges are billed from Vertex AI to your project. For more information, see Vertex AI pricing.

BigQuery ML dry run

Due to the nature of the underlying algorithms of some model types and differences in billing, the bytes processed will not be calculated for some model types until after training is completed due to the complexity of calculating the initial estimate.

BigQuery ML pricing example

BigQuery ML charges are not itemized separately on your billing statement. For current models, if you have BigQuery Editions, BigQuery ML charges are included.

If you are using on-demand pricing, BigQuery ML charges are included in the BigQuery analysis (query) charges.

BigQuery ML jobs that perform inspection, evaluation, and prediction operations incur the same charges as on-demand query jobs. Because CREATE MODEL queries incur different charges, you must calculate CREATE MODEL job costs independently by using the Cloud logging audit logs. Using the audit logs, you can determine the bytes billed by the BigQuery ML service for each BigQuery ML CREATE MODEL job. Then, multiply the bytes billed by the appropriate cost for CREATE MODEL queries in your regional or multi-regional location.

For example, to determine the cost of a query job in the US that includes a BigQuery ML CREATE MODEL statement:

  1. Open the Cloud Logging page in the Google Cloud console.

  2. Verify that the product is set to BigQuery.

  3. Click the drop-down arrow in the "Filter by label or text search" box and choose Convert to advanced filter. This adds the following text to the filter:

    resource.type="bigquery_resource"
    
  4. Add the following text on line two below the resource.type line:

    protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.query.statementType="CREATE_MODEL"
    
  5. To the right of the Submit Filter button, choose the appropriate time frame from the drop-down list. For example, choosing Last 24 hours would display BigQuery ML CREATE MODEL jobs completed in the past 24 hours.

  6. Click Submit Filter to display the jobs completed in the given time window.

  7. After the data is populated, click View Options and choose Modify custom fields.

  8. In the Add custom fields dialog, enter:

    protoPayload.serviceData.jobCompletedEvent.job.jobStatistics.totalBilledBytes
    
  9. Click Save to update the results.

  10. To calculate the charges for the BigQuery ML CREATE MODEL job, multiply the bytes billed by the BigQuery ML on-demand price. In this example, the CREATE MODEL job processed 100873011200 bytes. To calculate the cost of this job in the US multi-regional location, divide the billed bytes by the number of bytes per TiB, and multiply it by the model creation cost:

    100873011200/1099511627776 x $312.5 = $28.669

BI Engine pricing

BI Engine accelerates SQL queries by caching BigQuery data in memory. The amount of data stored is constrained by the amount of capacity you purchase. To purchase BI Engine capacity, create a BI Engine reservation in the project where queries will be run.

When BI Engine accelerates a query, the query stage that reads table data is free. Subsequent stages depend on the type of BigQuery pricing you're using:

  • For on-demand pricing, stages that use BI Engine are charged for 0 scanned bytes. Subsequent stages will not incur additional on-demand charges.

  • For editions pricing, the first stage consumes no BigQuery reservation slots. Subsequent stages use slots from the BigQuery reservation.

BI Engine pricing is as follows:

If you pay in a currency other than USD, the prices listed in your currency on Cloud Platform SKUs apply.

Editions commitment bundle

When you are using BigQuery capacity compute pricing with BigQuery editions commitments, you are eligible to receive a limited amount of BI Engine capacity as part of your editions price, at no extra cost, as shown in the following chart. To receive BI Engine capacity at no additional cost, follow the instructions to reserve capacity in a project within the same organization as your editions reservation. To ensure a particular project’s BI Engine reservation is discounted toward this bundled capacity, there should be some slots assigned to the project. BI Engine reservation in an 'on-demand analysis' project will not be counted towards the free capacity. Free capacity is shown in your Billing Reports as a normal cost, but it is discounted as a "Spending-Based Discount".

Number of slots purchased No-cost, additional BI Engine capacity (GiB)
100 5
500 25
1000 50
1500 75
2000 100 (maximum per organization)

Free operations

The following BigQuery operations are free of charge in every location. Quotas and limits apply to these operations.

If you are copying tables across regions, you are charged for data replication.
Operation Details
Batch load data You are not charged for batch loading data using the shared slot pool. You can also create a reservation using editions pricing for guaranteed capacity. Once the data is loaded into BigQuery, you are charged for storage. For details, see Batch loading data.
Copy data You are not charged for copying a table, but you do incur charges for storing the new table. For more information, see Copying an existing table.
Export data You are not charged for exporting data using the shared slot pool, but you do incur charges for storing the data in Cloud Storage. You can also create a reservation using editions pricing for guaranteed capacity. When you use the EXPORT DATA SQL statement, you are charged for query processing. For details, see Exporting data.
Delete operations You are not charged for deleting datasets or tables, deleting individual table partitions, deleting views, or deleting user-defined functions
Metadata operations You are not charged for list, get, patch, update, and delete calls. Examples include (but are not limited to): listing datasets, listing table data, updating a dataset's access control list, updating a table's description, or listing user-defined functions in a dataset. Metadata caching operations for BigLake tables aren't included in free operations.

Free usage tier

As part of the Google Cloud Free Tier, BigQuery offers some resources free of charge up to a specific limit. These free usage limits are available during and after the free trial period. If you go over these usage limits and are no longer in the free trial period, you will be charged according to the pricing on this page. You can try BigQuery's free tier in the BigQuery sandbox without a credit card.

Resource Monthly free usage limits Details
Storage The first 10 GiB per month is free. BigQuery ML models and training data stored in BigQuery are included in the BigQuery storage free tier.
Queries (analysis) The first 1 TiB of query data processed per month is free.

BigQuery Editions pricing is also available for high-volume customers that prefer a stable, monthly cost.

Flat-rate pricing

Flat-rate compute pricing

When you use the flat-rate compute pricing model, you purchase dedicated query processing capacity, measured in BigQuery slots. Your queries consume this capacity, and you are not billed for bytes processed. If your capacity demands exceed your committed capacity, BigQuery will queue up queries, and you will not be charged additional fees.

Flat-rate compute pricing:

  • Applies to query costs, including BigQuery ML, DML, and DDL statements.
  • Does not apply to storage costs or BI Engine costs.
  • Does not apply to streaming inserts and using the BigQuery Storage API.
  • Is purchased as a regional resource. Slot commitments purchased in one region or multi-region cannot be used in another region or multi-region and cannot be moved.
  • Is available in per-second (flex), monthly, and annual commitments.
  • Can be shared across your entire organization. There is no need to buy slot commitments for every project.
  • Has a 100-slot minimum and is purchased in increments of 100 slots.
  • Is billed per second until you cancel the commitment, which can be done at any time after the commitment end date.

Monthly flat-rate commitments

The following table shows the cost of your monthly flat-rate slot commitment. For more information, see Monthly commitments.

If you pay in a currency other than USD, the prices listed in your currency on Cloud Platform SKUs apply.

Annual flat-rate commitments

The following table shows the cost of your annual flate-rate slot commitment. For more information, see Annual commitments.

If you pay in a currency other than USD, the prices listed in your currency on Cloud Platform SKUs apply.

Flex slots: short-term flat-rate commitments

Flex slots are a special commitment type:

  • Commitment duration is only 60 seconds.
  • You can cancel flex slots any time thereafter.
  • You are charged only for the seconds your commitment was deployed.

Flex slots are subject to capacity availability. When you attempt to purchase flex slots, success of this purchase is not guaranteed. However, once your commitment purchase is successful, your capacity is guaranteed until you cancel it. For more information, see flex slots.

The following table shows the cost of your Flex slot commitment.

BigQuery Omni flat-rate pricing

BigQuery Omni offers flat-rate pricing which provides a predictable cost for queries. To enable flat-rate pricing, use BigQuery Reservations.

When you enroll in flat-rate pricing for BigQuery Omni, you purchase dedicated query processing capacity, measured in slots, on Amazon Web Services or Microsoft Azure. Your queries consume this capacity, and you are not billed for bytes processed.

BigQuery Omni flat-rate pricing:

  • Applies to query costs. Does not apply to storage costs.
  • Slot commitments are purchased for a single multi-cloud region. Slots purchased in one region cannot be used in another region.
  • Is available in monthly, and annual commitments. Is billed per second until you cancel the commitment, which can be done at any time after the commitment end date.
  • Can be shared across your entire organization. There is no need to buy slot commitments for every project.
  • Has a 100-slot minimum and is purchased in increments of 100 slots.

Monthly flat-rate commitments

The following table shows the cost of your monthly slot commitment. For more information, see Monthly commitments.

Annual flat-rate commitments

The following table shows the cost of your annual slot commitment. For more information, see Annual commitments.

Flex slots: short-term commitments

Flex slots are a special commitment type:

  • Commitment duration is only 60 seconds.
  • You can cancel flex slots any time thereafter.
  • You are charged only for the seconds your commitment was deployed.

Flex slots on BigQuery Omni are subject to capacity availability on AWS or Azure. When you attempt to purchase flex slots, success of this purchase is not guaranteed. However, once your commitment purchase is successful, your capacity is guaranteed until you cancel it. For more information, see flex slots.

The following table shows the cost of your Flex slot commitment.

BI Engine flat-rate commitment bundle

When you are using BigQuery flat-rate slot commitments, you are eligible to receive a limited amount of BI Engine capacity as part of your flat-rate price, at no extra cost, as shown in the following chart. To receive BI Engine capacity at no additional cost, follow the instructions to reserve capacity in a project within the same organization as your flat-rate reservation. To ensure a particular project's BI Engine reservation is discounted toward this bundled capacity, there should be some slots assigned to the project. A BI Engine reservation in an on-demand compute project don't counted towards free capacity. Free capacity is shown in your billing reports as a normal cost, but it is discounted as a "Spending-Based Discount".

Number of slots purchased No-cost, additional BI Engine capacity (GiB)
100 5
500 25
1000 50
1500 75
2000 100 (maximum per organization)

What's next

Request a custom quote

With Google Cloud's pay-as-you-go pricing, you only pay for the services you use. Connect with our sales team to get a custom quote for your organization.
Contact sales