This page provides an overview of BigQuery tables.
A BigQuery table contains individual records organized in rows. Each record is composed of columns (also called fields).
Every table is defined by a schema that describes the column names, data types, and other information. You can specify the schema of a table when it is created, or you can create a table without a schema and declare the schema in the query job or load job that first populates it with data.
BigQuery supports the following table types:
- Native tables: tables backed by native BigQuery storage.
- External tables: tables backed by storage external to BigQuery. For more information, see Querying External Data Sources.
- Views: Virtual tables defined by a SQL query. For more information, see Using views.
BigQuery tables are subject to the following limitations:
- Table names must be unique per dataset.
- The BigQuery web UI supports copying only one table at a time.
- When copying tables, the destination dataset must reside in the same location as the table being copied. For example, you cannot copy a table from an EU-based dataset to a US-based dataset.
- When copying multiple source tables to a destination table using the CLI or API, all source tables must have identical schemas.
- You can only delete one table at a time using the BigQuery web UI, the command-line tool, and the API.
- When exporting table data, the only supported destination is Google Cloud Storage.
- As you approach 50,000 or more tables in a dataset, enumerating them becomes
slower. Enumeration performance suffers whether you use an API call, the
BigQuery web UI, or the
__TABLES_SUMMARY__meta table. To improve UI performance, you can use the
?minimalparameter to limit the load operation to 30,000 tables per project. You add the parameter to the BigQuery web UI URL in the following format:
Quotas and limits apply to the different types of jobs you can run against tables, including:
- Loading data into tables (load jobs)
- Exporting data from tables (export jobs)
- Querying table data (query jobs)
- Copying tables (copy jobs)
For more information on all quotas and limits, see Quotas and Limits.
When you create and use tables in BigQuery, your charges are based on how much data is stored in the tables and partitions and on the queries you run against the table data:
- For information on storage pricing, see Storage pricing.
- For information on query pricing, see Query pricing.
Many table operations are free, including loading, copying, and exporting data. Though free, these operations are subject to BigQuery's Quotas and Limits. For information on all free operations, see Free operations on the pricing page.