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 analysis pricing model for
customers who prefer a predictable cost for queries rather than paying the
on-demand price per TiB of data processed.
To enable capacity pricing, use
BigQuery Reservations
.
BigQuery editions
BigQuery editions
offer pay as you go pricing
(with autoscaling) and optional one year and three year commitments. With editions,
you consume query processing capacity, measured in
slots, rather than being billed
for bytes processed
.
BigQuery editions 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 editions
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.
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. 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 2
30
bytes (1,024 MiB). Similarly, 1 tebibyte (TiB) is 2
40
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 2
30
bytes (1,024 MiB). Similarly, 1 tebibyte (TiB) is 2
40
bytes (1,024 GiB).
For more information, see
Data type sizes
.
Data Transfer Service pricing
The BigQuery Data Transfer Service charges monthly on a prorated basis. You are charged as
follows:
Notes on transfer pricing
All transfers
1. After data is transferred to BigQuery, standard
BigQuery
storage
,
and
query
.
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
.
Calculating unique IDs
Each transfer you create generates 1 or more runs per day. Each run maintains a
record of each unique ID encountered and the date the transfer run completes.
IDs are only counted on the day the transfer completes. For example, if a
transfer run begins on July 14th but completes on July 15th, the unique IDs are
counted on July 15th.
If a unique ID is encountered in more than one transfer run on a particular day,
it is counted only once. Unique IDs are counted separately for different
transfers. If a unique ID is encountered in runs for two separate transfers, the
ID is counted twice.
Calculating backfill charges
If you schedule a backfill, a transfer run is scheduled for each day. You are
then charged based on the method described in
Calculating unique IDs
.
Stopping BigQuery charges
To stop incurring charges,
disable
or
delete
your transfer.
BigQuery Data Transfer Service pricing examples
Example 1:
You have
1 transfer
with 3 runs that complete on the same day.
- The first run records the following unique IDs: A, B, and C
- The second run records: A
- The third run records: C and D
Because all runs finish on the same day, you are charged based on
4 unique IDs
: A, B, C, D. Because ID A and ID C were recorded in two
different runs that completed on the same day, IDs A and C are counted only once.
If the 3 transfer runs complete every day for a month, your monthly charge is
based on 4 unique IDs. If the transfer runs complete fewer times than the number
of days in the month in which they run, the charges are prorated.
Example 2:
You have
multiple transfers
with runs that complete on the same day.
- Transfer 1 runs and records the following unique IDs: A, B, and C
- Transfer 2 runs and records: A
- Transfer 3 runs and records: C and D
Because the unique IDs are counted in runs for different transfers, you are
charged based on
6 unique IDs
: A, B, and C from transfer 1's run; A from
transfer 2's run; and C and D from transfer 3's run. If the transfer runs
complete fewer times than the number of days in the month in which they run,
the charges are prorated.
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
|
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
|
Omni Cross Cloud Data Transfer
When using Omni’s Cross Cloud capabilities (Cross Cloud Transfer, Create Table as 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,
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.
Link to SKU Spreadsheet:
CCMV Billing SKUs
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
|
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
|
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.
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
or
Bigtable
.
You are billed for processing the query statement using the on-demand or capacity
based model.
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 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.
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
.
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
|
External Services
BigQuery can leverage external services to help with data analytics workflows. For some of these services external to BigQuery,
you will still be charged with BigQuery SKUs:
BigQuery Studio Notebooks
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. You can expect to see charges for BigQuery notebooks on or after April 20th.
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 as well as your usage pattern:
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.
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 and inference
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:
- The bytes processed by BigQuery are billed according to
standard pricing such as on-demand or editions pricing.
- In addition, costs are incurred for the remote endpoint as follows:
For remote endpoint model pricing, there will be a separate bill from 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:
Open the
Cloud Logging
page in the Google Cloud console.
Verify that the product is set to BigQuery.
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"
Add the following text on line two below the
resource.type
line:
protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.query.statementType="CREATE_MODEL"
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.
Click
Submit Filter
to display the jobs completed in the given time
window.
After the data is populated, click
View Options
and choose
Modify custom fields
.
In the
Add custom fields
dialog, enter:
protoPayload.serviceData.jobCompletedEvent.job.jobStatistics.totalBilledBytes
Click
Save
to update the results.
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.
Operation
|
Details
|
Load data
|
Free using the shared slot pool. Customers can choose
editions pricing
for guaranteed capacity. Once the data is loaded into
BigQuery, you are charged for storage. For details, see
Data ingestion editions pricing
.
|
Copy data
|
You are not charged for copying a table, but you do incur charges Data
ingestion editions pricing or storing the new table and the table you
copied. For more information, see
Copying an existing table
.
|
Export data
|
Free using the shared slot pool, but you do incur charges for storing
the data in Cloud Storage. Customers can choose
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, 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.
|
BI Engine
|
Up to 1 GiB of capacity for Looker Studio users without configuring a BI Engine reservation.
|
This capacity is available to Looker Studio
users that don't use BigQuery native Looker Studio
integration. This additional capacity is provided on best-effort basis.
|
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