This document provides an overview of querying data in BigQuery.
Types of queries
After you load your data into BigQuery, you can query the data in your tables. BigQuery supports two types of queries:
By default, BigQuery runs interactive queries, which means that the query is executed as soon as possible.
BigQuery also offers batch queries. BigQuery queues each batch query on your behalf and starts the query as soon as idle resources are available, usually within a few minutes.
You can run interactive and batch queries by using the:
- Compose Query option in the BigQuery web UI
- BigQuery command-line tool's
- BigQuery REST API to programmatically call the jobs.query or query-type jobs.insert methods
- BigQuery client libraries
When you use the BigQuery web UI or CLI to load, export, query, or copy data, a job resource is automatically created, scheduled, and run. You can also programmatically create a load, export, query, or copy job. When you create a job programmatically, BigQuery schedules and runs the job for you.
Because jobs can potentially take a long time to complete, they execute asynchronously and can be polled for their status. Shorter actions, such as listing resources or getting metadata are not managed by a job resource.
Saving and sharing queries
When you save a query, it can be private (visible only to you), shared at the project level (visible to project members), or public (anyone can view it). For more information, see saving and sharing queries.
Query pricing refers to the cost of running your SQL commands and user-defined functions. BigQuery charges for queries by using one metric: the number of bytes processed. You are charged for the number of bytes processed whether the data is stored in BigQuery or in an external data source such as Google Cloud Storage, Google Drive, or Google Cloud Bigtable.
The first 1 TB of data processed per month is free of charge (per billing account). Beyond your first 1 TB of data processed in a month, you are charged according to the on-demand pricing model.
Quotas and query cost controls
BigQuery enforces project-level quotas on running queries. For information on query quotas, see quota policy.
To control query costs, BigQuery provides several options including custom quotas and billing alerts. For more information, see cost controls.
- For information on querying data in partitioned tables, see Querying Partitioned Tables.
- To learn how to run queries, see Running Interactive and Batch Queries
- For information on managing query output, see Writing Query Results
- To learn how to use the query cache, see Using Cached Query Results
- For information on running queries that are constructed using user input, see Running Parameterized Queries
- To learn how to save and share queries, see Saving and Sharing Queries
- For information on reading the query explain plan, see Using the Query Plan Explanation
- To learn how to schedule a recurring query, see Scheduling Queries