Introduction to Tables

This page provides an overview of BigQuery tables.

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.

Table limitations

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 ?minimal parameter 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: https://bigquery.cloud.google.com/queries/[PROJECT_NAME]?minimal.

Table quotas

Quotas and limits apply to the different types of jobs you can run against tables, including:

For more information on all quotas and limits, see Quotas and Limits.

Table pricing

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:

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.

Next steps

Was this page helpful? Let us know how we did:

Send feedback about...

Need help? Visit our support page.