Data Data Partnerships Data Value Estimator Referrals Design Search Lead generation Data guides Blog Get an offer →
Theme
← Company data sourcesData source · Databases and warehouses

How to find and export your BigQuery data for AI training

BigQuery shows how much data you have in the INFORMATION_SCHEMA.TABLE_STORAGE view, which needs the BigQuery Metadata Viewer role on the project, and the full history is exported table by table to Cloud Storage. Add up total logical bytes, the uncompressed size, and report the total in GB; physical bytes are compressed and mix in time travel copies. Below, you'll find what BigQuery data is and why AI labs and data vendors buy it, the query that reads your size, what to know before you apply, every export method with its formats and limits, and what stays private.

Where the total is
INFORMATION_SCHEMA.TABLE_STORAGE, total_logical_bytes
Role needed to read it
BigQuery Metadata Viewer on the project
Export destination
Cloud Storage only, one table per job
File and daily limits
1 GB per file; 50 TiB a day on the shared pool

Key takeaways

  • BigQuery shows storage per table in INFORMATION_SCHEMA.TABLE_STORAGE, and the number to report is the sum of total_logical_bytes, the uncompressed size, in GB.
  • Physical bytes are compressed and include time travel copies, so they understate the current data; the view must be queried once per location.
  • Each table is exported to Cloud Storage with bq extract, EXPORT DATA or the console; a wildcard in the file name splits output over 1 GB, and one job exports one table.
  • You don't need to export anything to apply: have your size in GB, years of history and customer or user count ready, and the data vendor anonymizes the records before any AI lab sees them.

01

What is BigQuery data, and why do AI labs and data vendors buy it?

The short answer

BigQuery data is the set of tables a company keeps in BigQuery, Google Cloud's data warehouse: web and app events, sales transactions, server logs and marketing records loaded from many of its other systems over years. AI labs (companies that build and train AI models) and data vendors (companies that anonymize business records and package them for those labs) buy a copy because the tables tie what customers did to what happened next, with a consistent timestamp on every row.

What a BigQuery warehouse records

A data warehouse is a database built to analyze very large volumes of records collected from many of a company's other systems, instead of running one application day to day. BigQuery is Google's warehouse, hosted on Google Cloud. Its tables sit inside datasets, which are folders that group related tables, and each dataset lives in one location, such as the US or the EU.

Companies load into it their website and app events, their sales transactions, their server logs and their advertising data. Many tables are also partitioned by date, which means each day's rows are stored as their own slice, so a long range of dates comes out consistent and each day can be read on its own.

Why linked warehouse tables teach an AI model something

An AI model learns by studying a very large number of examples and finding the patterns in them, and those examples are called training data. A warehouse is a strong source because it joins records that no public text contains together. A table of website sessions and a table of purchases can share a customer ID, so each purchase can be traced back to the visits that came before it.

AI labs now want to train AI agents, software that carries out a job step by step, and an agent learns a job from records of that job being done. A data vendor can turn anonymized histories, such as sessions that ended in a purchase or support contacts that ended in a renewal, into worked examples that an agent studies, or into a practice copy of the business in which the agent is scored on each attempt. The full mechanism is in AI training data: why AI companies want your company's data.

How BigQuery fits into a dataset

A BigQuery warehouse is usually one of several sources in a company's dataset, next to email, documents and tickets. Companies are paid $100K to $2M or more per dataset, according to micro1, the data vendor we typically refer companies to. The price covers the whole dataset, not each source on its own, and what your data is worth explains what moves it.

02

Where does BigQuery show how much data you have?

The short answer

BigQuery reports the size of every table through INFORMATION_SCHEMA.TABLE_STORAGE, a built-in view that a person with read access to project metadata can query. The console shows the same figures for one table under Storage info on its Details tab. The number to report is the sum of total logical bytes, which measures the data uncompressed, written in gigabytes (GB).

How to read your storage total

The steps below are run by a developer or analyst in the BigQuery query editor, the SQL window in the Google Cloud console. They follow Google's TABLE_STORAGE view reference.

  1. Ask a project administrator for the role BigQuery Metadata Viewer (roles/bigquery.metadataViewer) on the project, or for the two permissions bigquery.tables.get and bigquery.tables.list instead. Billing account access is not required, and the view exists in every project, whichever storage billing model it uses.
  2. In the query editor, run this statement. It adds up every table in each dataset and shows rows, logical size and physical size side by side:
    SELECT table_schema,
           SUM(total_rows) AS row_count,
           ROUND(SUM(total_logical_bytes)/POW(1024,3),2) AS logical_gb,
           ROUND(SUM(total_physical_bytes)/POW(1024,3),2) AS physical_gb
    FROM `region-us`.INFORMATION_SCHEMA.TABLE_STORAGE
    WHERE NOT deleted
    GROUP BY table_schema
    ORDER BY logical_gb DESC;
    Replace region-us with the location your datasets are in, such as region-eu. The query has to run in that same location, so a company with datasets in several locations runs one query per location and adds the results.
  3. For one table only, click it in the Explorer pane and look at Storage info on the Details tab.
  4. To learn how far back the data goes, ask your largest tables for their oldest date, for instance SELECT MIN(event_date) FROM mydataset.events;.

Which size columns to add up

The view reports the same tables in several ways, and only one of them is the figure to report.

The size columns in the BigQuery TABLE_STORAGE view
ColumnWhat it countsUse it?
total_logical_bytesThe uncompressed size of the current data.Yes. This is the figure to report.
total_physical_bytesThe compressed size on disk, which also includes time travel bytes (changed or deleted data that BigQuery keeps for a short window).No. It understates the current data and mixes in old versions.
time_travel_physical_bytes and fail_safe_physical_bytesChanged or deleted data kept for 2 to 7 days (7 by default) for time travel, and for a further 7 days of fail-safe, a last-resort recovery copy.No. Leave both out.
LOGICAL BYTES The same table, measured uncompressed Current dataCounted Time travel copiesNot counted Fail-safe copiesNot counted Report this one, in GB. PHYSICAL BYTES The same table, measured compressed Current dataCounted, smaller Time travel copiesCounted Fail-safe copiesSeparate column Smaller, and mixes in old versions.
The same table measured two ways. Logical bytes show the current data at full size, which is the number to report, while physical bytes are compressed and include old versions.

Why the number can lag or fall short

The view usually updates within minutes, but a change from a table expiring or from a new time travel window can take up to a day to appear. The query also skips deleted tables because of the WHERE NOT deleted filter. A project in a location you forgot to query adds nothing to the total, so check every location that holds a dataset.

03

What should you know about your BigQuery data before you apply?

The short answer

Have three facts ready: the total logical size of your tables in GB, how many years of records they hold and how many customers or users the records describe. They go into the data manifest, the written summary of which sources hold your records, how many years each covers and roughly how much. You don't need to run an export to find them.

The size in GB

Add up total_logical_bytes across your datasets and write the total in GB. Logical bytes are the uncompressed size, which is the best match for the data you would hand over. Leave out the physical figure, because it is compressed and counts old versions of changed or deleted rows. The query above divides by 1024 three times, so its GB are gibibytes (1,073,741,824 bytes each).

The years of history

Take the years of history from the oldest event or created timestamp inside your main tables. The creation_time column says only when someone created the table, and the records loaded into it may reach back much further.

The number of seats

The seat count is the number of customers or users whose activity the tables record. It is not the number of analysts who run queries in BigQuery.

What you don't need to do first

You don't need to export anything to apply, and you don't need to clean or scrub the records. The data vendor anonymizes them before anyone else sees them, and nothing moves until a lawyer-reviewed license is signed. You only need the size, the years and the count for the first conversation. The application, the intro call and each later step are laid out in how to sell your company's data.

04

How do you export your full BigQuery history?

The short answer

An account with the BigQuery Data Viewer role exports each table to a Cloud Storage bucket (Google's file storage service), which is the only destination BigQuery offers. For example, bq extract --destination_format PARQUET writes Parquet files in pieces, and a * in the file name lets BigQuery split anything over 1 GB.

What you need first

First create a Cloud Storage bucket that sits in the dataset's own location. The account running the export needs bigquery.tables.export (part of BigQuery Data Viewer) and bigquery.jobs.create, and on the bucket it needs storage.objects.create and storage.objects.delete, both of which come with Storage Object Admin.

Google advises switching off Bucket Lock and Soft Delete retention on the bucket while the export runs. The details are in Google's guide to exporting table data.

The steps, one table at a time

A single extract job exports only one table, so each step below is repeated for every table. You can use any one of the three methods.

  1. From the command line, run bq extract once for each table. The * in the file name lets BigQuery write more than one file:
    bq extract --destination_format PARQUET --compression SNAPPY mydataset.mytable gs://my-bucket/mytable/part-*.parquet
  2. With SQL, run an EXPORT DATA statement, which also lets you choose the columns and put the rows in order:
    EXPORT DATA OPTIONS (
      uri='gs://my-bucket/mytable/*.parquet',
      format='PARQUET',
      overwrite=true
    ) AS SELECT * FROM mydataset.mytable;
  3. In the console, open the Explorer pane, expand the dataset, choose Overview > Tables, select the table and choose More > Export to Google Cloud Storage. In the dialog, pick the bucket location, the export format and the compression, then click Save.

Formats and compression

The BigQuery export formats
FormatCompression allowedNotes
CSVGZIPCannot hold nested or repeated fields (columns that contain lists or sub-records).
JSON (newline-delimited)GZIPWrites 64-bit integers as strings, and turns the characters <, > and & into \uNNNN codes.
AvroDEFLATE, SNAPPYKeeps nested and repeated fields.
ParquetSNAPPY, GZIP, ZSTDKeeps nested and repeated fields.

The console offers only GZIP, so choose bq extract or the SQL statement for Snappy or Zstandard compression.

Limits to plan around

Each file holds at most 1 GB of logical data, and the sizes of the files vary, so a large table becomes many files. On the shared pool of free processing capacity, a project can extract at most 50 TiB a day. Moving the project onto a slot reservation (capacity you pay for) that has the job type PIPELINE removes the cap, and you are then billed at capacity prices.

EXPORT DATA statements are not supported in a PIPELINE reservation, so use bq extract or the console there. A view stores no data of its own, so it can only be exported with EXPORT DATA.

What an export leaves out

An export holds the table as it stands when the job runs, and rows loaded while an extract is running are not included. The order of the rows is not guaranteed unless you use EXPORT DATA with an ORDER BY clause. Time travel and fail-safe copies are not exported, and the file sizes from EXPORT DATA are not guaranteed either.

How long an export takes

None of the Google pages we checked gives a time, because it depends on the size of the table and the capacity available. Because each table is its own job, a project with many tables is exported as a series of jobs, and you can run several at once within the limits described earlier.

Sources: Google Cloud, TABLE_STORAGE view, Export table data to Cloud Storage, Data retention with time travel and fail-safe and Quotas and limits. Steps checked against these pages in November 2026.

05

What stays private when BigQuery data is licensed?

The short answer

The company decides which tables and columns leave BigQuery, and the data vendor replaces names and other personal details with consistent stand-ins before an AI lab sees anything. The company keeps ownership of its warehouse, and the license covers defined records for a defined use.

You choose what is in scope

EXPORT DATA runs a query, so you can drop columns such as emails, device IDs or payment fields before anything is written to Cloud Storage. For example, SELECT * EXCEPT (email, device_id) FROM mydataset.events writes every column of the table except those two. The data vendor also deletes records too sensitive to clean safely instead of anonymizing them.

Names are replaced before a lab sees them

Anonymization means replacing every detail that identifies a person or a company, such as a name or an email address, with a stand-in that is the same every time it appears. The records still link to each other and the dates still run in order, so a lab can learn from them, but they no longer say who anyone is. The diagram shows one set of records before and after.

IN THE WAREHOUSE events joined to users event 5530917 2026-03-04 14:02 action: purchase amount: 240.00 user: Dana Brooks email: dana@acme.com device id: 9F2C-77A1 support ticket 311 opened 03-06 Real names, an email and a device ID. WHAT AN AI LAB RECEIVES events joined to users event 5530917 2026-03-04 14:02 action: purchase amount: 240.00 user: Contact 203 email: contact203@example.test device id: Device 41 support ticket 311 opened 03-06 Same events; dates and sequence intact.
The same events in both panels. The user, the email and the device are replaced with stand-ins, while the purchase and the support ticket that followed it stay in order.

The method, including what is deleted outright and how you review samples, is in how company data is anonymized for AI training.

Ownership and payment

Licensing gives the buyer limited rights to a copy, while the company keeps ownership of the originals. The terms that matter, such as exclusivity, permitted use and deletion, are covered in data licensing. micro1 pays in full within 30 days of accepting the data, usually as a single payment.

Questions

Frequently asked questions

Should I report logical bytes or physical bytes?

Logical bytes. They give the size of your current data before compression, which is what a buyer receives. Physical bytes are compressed and also count time travel copies, so they say little about how much live data you hold.

Why does my TABLE_STORAGE query return an error?

Most often the location is missing or wrong. The view name must start with a qualifier such as region-us, and the query must run in that location, so datasets spread over several locations need a separate query each.

Can I export a table larger than 1 GB?

Yes, if the destination file name contains a wildcard, as in gs://my-bucket/mytable/part-*.parquet. BigQuery then writes as many numbered files as the table requires.

Is there a daily limit on how much I can export?

Yes, on the default setup: the shared pool allows 50 TiB of extracts per project per day. A project that needs more can be assigned to a reservation with the job type PIPELINE.

Can I export BigQuery data to my computer or Google Drive?

No. Cloud Storage is the only destination for table data, so the files land in a bucket first and you download them from there.

Do we need to export BigQuery before we apply?

No. The application takes about two minutes and shares no data. You only need your total size in GB, your years of history and your number of customers or users for the intro call, and the storage query above gives you the first. The full export is needed later, when the records are transferred after you sign the license.

Can we leave out columns that hold sensitive information?

Yes. An EXPORT DATA statement exports the result of a query, so you can list only the columns you agree to share, or use SELECT * EXCEPT to drop a few.

What is BigQuery data worth to AI labs and data vendors?

It is priced as part of a whole dataset rather than on its own. Companies are paid $100K to $2M or more per dataset, according to micro1, and the price depends on the years of history and how completely the records show each job. What your data is worth explains the factors.

Bottom line

Know what is in BigQuery, then see what it is worth

You don't need to export anything to apply. Apply in two minutes, describe your records on the intro call, and micro1, the data vendor we typically refer companies to, prices the whole dataset and sends an offer 1–2 days later.

Not legal, tax or financial advice. Figures come from micro1's published pages and public reporting as of November 2026.