Introduction to 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.
Use the format
projectname.datasetname.tablename to fully qualify a table
name when using Google Standard SQL, or the format
to fully qualify a table name when using the
bq command-line tool.
BigQuery supports the following table types:
- Native tables: tables backed by native BigQuery storage,
including the following:
- Standard tables
- Table clones
- Table snapshots
- Materialized views
- 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 Creating views.
For more information, see Table data.
BigQuery tables are subject to the following limitations:
- Table names must be unique per dataset.
- The Google Cloud console supports copying only one table at a time.
- When you copy 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 you copy multiple source tables to a destination table by using the
bqcommand-line tool, the API, or the client libraries, all source tables must have identical schemas.
- When you export table data, the only supported destination is Cloud Storage.
- When you use an API call, enumeration performance slows as you approach 50,000 tables in a dataset.
- The Google Cloud console can display up to 50,000 tables for each dataset.
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.
To control access to tables in BigQuery, see Introduction to table access controls.