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 Snowflake data for AI training

Snowflake shows how much data you have in Snowsight under Admin > Cost management and per table in the SNOWFLAKE.ACCOUNT_USAGE.TABLE_STORAGE_METRICS view, both of which need the ACCOUNTADMIN role or the USAGE_VIEWER database role. Report active bytes in GB, since Snowflake counts storage after compression and bills Time Travel and Fail-safe copies on top. Below, you'll find what Snowflake data is and why AI labs and data vendors buy it, the queries that read your size, what to know before you apply, every unload step with its formats and limits, and what stays private.

Where the total is
Admin > Cost management, or TABLE_STORAGE_METRICS
Role needed to read it
ACCOUNTADMIN, or the USAGE_VIEWER database role
Number to report
ACTIVE_BYTES, in GB (compressed)
Unload defaults
16 MB files, up to 5 GB; Parquet uses Snappy

Key takeaways

  • Snowflake shows storage in Snowsight under Admin > Cost management and in SNOWFLAKE.ACCOUNT_USAGE.TABLE_STORAGE_METRICS, which needs ACCOUNTADMIN or the USAGE_VIEWER database role.
  • The number to report is the sum of ACTIVE_BYTES in GB; Time Travel, Fail-safe and clone bytes are billed history and copies, and Snowflake measures storage after compression.
  • Each table is unloaded with COPY INTO to a stage, usually as Parquet; internal-stage files are downloaded with GET from SnowSQL, and the unload uses a running warehouse and credits.
  • 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 Snowflake data, and why do AI labs and data vendors buy it?

The short answer

Snowflake data is the set of tables a company keeps in Snowflake, a cloud data warehouse where product events, billing records, customer records and support tickets are loaded and organized into clean tables. 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 records from different systems have already been matched to the same customers, so one customer's history can be followed across all of them.

What a Snowflake account records

A data warehouse is a database built to analyze large volumes of records copied in from a company's other systems. Snowflake is one such warehouse, run as a cloud service. Its tables sit in databases, and each database is divided into schemas, which are folders that group related tables.

Snowflake is often the place where a company's systems meet. Events from the product, invoices from the billing system, deals from the CRM (customer relationship management software, where a sales team keeps its customers and deals) and tickets from the support desk land side by side. Data teams then clean them into modeled tables and match the customer IDs between sources.

Why matched records 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. Warehouse tables hold years of history at the level of single rows, each with a consistent timestamp. A model can read what a customer did, what the company did in response and what happened next, which public text on the internet almost never shows.

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, linked records into worked examples that an agent studies, or into a practice copy of a business process 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 Snowflake fits into a dataset

A Snowflake account 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 Snowflake show how much data you have?

The short answer

In Snowsight, Snowflake's web interface, open Admin > Cost management for storage across the account, or query the SNOWFLAKE.ACCOUNT_USAGE.TABLE_STORAGE_METRICS view for one table at a time. Either route requires ACCOUNTADMIN (Snowflake's top administrator role) or a role that an administrator has given the USAGE_VIEWER database role. The figure to report is active bytes in gigabytes (GB), which Snowflake measures after compression.

How to read your storage total

The steps below are run by a Snowflake administrator or a data engineer. They follow the TABLE_STORAGE_METRICS reference and the guide to exploring storage cost.

  1. Sign in with the ACCOUNTADMIN role. Any other role needs an administrator to run GRANT DATABASE ROLE SNOWFLAKE.USAGE_VIEWER TO ROLE your_role; first. The ACCOUNT_USAGE views are open to ACCOUNTADMIN only by default, and a role can also read them through IMPORTED PRIVILEGES on the SNOWFLAKE database. Every Snowflake edition has these views.
  2. To see storage over time in Snowsight, open Admin > Cost management, pick a warehouse (Snowflake recommends an X-Small one), choose Consumption and set Usage Type to Storage. Snowflake warns that cost data may take as long as 72 hours to show up in Snowsight.
  3. For the size of current table data, run this query in a worksheet. It adds up every table that has not been dropped and prints the three kinds of storage in separate columns:
    SELECT table_catalog,
           ROUND(SUM(active_bytes)/POW(1024,3),2)      AS active_gb,
           ROUND(SUM(time_travel_bytes)/POW(1024,3),2) AS time_travel_gb,
           ROUND(SUM(failsafe_bytes)/POW(1024,3),2)    AS failsafe_gb
    FROM SNOWFLAKE.ACCOUNT_USAGE.TABLE_STORAGE_METRICS
    WHERE deleted = FALSE
    GROUP BY table_catalog
    ORDER BY active_gb DESC;
  4. For a daily figure per database, run the query below. Its database_gb column includes data held for Time Travel, so it reads larger than the active figure:
    SELECT usage_date, database_name,
           ROUND(average_database_bytes/POW(1024,3),2) AS database_gb,
           ROUND(average_failsafe_bytes/POW(1024,3),2) AS failsafe_gb
    FROM SNOWFLAKE.ACCOUNT_USAGE.DATABASE_STORAGE_USAGE_HISTORY
    WHERE deleted IS NULL
    ORDER BY usage_date DESC, database_gb DESC;
  5. For a single table, open Catalog > Explorer, pick the database and then Tables. The size shown there is the table's active bytes.
  6. To find the first year, query the oldest business date in your main tables, such as the earliest order date or signup date.

Which storage columns to add up

Snowflake keeps several kinds of storage for the same tables, and only the first is the figure to report.

The storage columns in TABLE_STORAGE_METRICS
ColumnWhat it countsUse it?
ACTIVE_BYTESThe current data in each table.Yes. This is the figure to report.
TIME_TRAVEL_BYTESChanged or deleted data that Time Travel keeps so that earlier states can be queried. It is held for 1 day by default and for up to 90 days on Enterprise Edition and higher.No. Leave it out.
FAILSAFE_BYTESA fixed 7 more days of retention after Time Travel ends, which only Snowflake can recover from.No. Leave it out.
RETAINED_FOR_CLONE_BYTESData that a clone (an instant copy of a table) still depends on after the original changed.No. Leave it out.
ACTIVE BYTES The same account, measured by current data Current table dataCounted Time Travel dataNot counted Fail-safe dataNot counted Data kept for clonesNot counted Files in stagesNot counted Report this one, in GB. BILLED STORAGE The same account, measured by the bill Current table dataCounted Time Travel dataCounted Fail-safe dataCounted Data kept for clonesCounted Files in stagesCounted Larger, and not a measure of your data.
The same account measured two ways. Active bytes cover only the current data, which is what to report, while billed storage also pays for history and copies.

Why the number can lag or fall short

The table view can run up to 90 minutes behind, and the daily per-database view up to 3 hours. Both views hold just the last 365 days, so neither can tell you when loading began. Snowflake also notes that database totals will not equal the storage on your bill, because the bill adds staged files and other items.

03

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

The short answer

Have three facts ready: the active 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 ACTIVE_BYTES across your tables and write the total in GB. Snowflake compresses all table data and measures storage by the compressed size, so the same tables written out as uncompressed CSV take up more space. Don't add the Time Travel, Fail-safe or clone figures, because they are billed storage for changed, deleted or copied data.

The years of history

Read the years of history from the oldest business date in your main tables, for instance the first order. The ACCOUNT_USAGE views are no help here, because they retain a single year and so never reveal when loading began.

The number of seats

The seat count is the number of customers or users whose activity the tables record. Snowflake logins, the accounts your own staff use to run queries, are not seats.

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 Snowflake history?

The short answer

A user with a running virtual warehouse (Snowflake's compute, which is billed in credits) unloads each table to a stage with COPY INTO, for example to Parquet files. A stage is a storage location Snowflake can write to: an internal one inside Snowflake for moderate volumes, or an external one in Amazon S3, Google Cloud Storage or Azure for large volumes.

The steps with COPY INTO

Each step is run in a worksheet or in SnowSQL, Snowflake's command-line tool. Snowflake describes the command in its COPY INTO location reference.

  1. Create a stage where the files will land. A stage inside Snowflake (an internal stage) is enough for a moderate amount of data:
    CREATE STAGE export_stage;
    For a large amount of data, create an external stage pointing at your own Amazon S3, Google Cloud Storage or Azure container, secured by a storage integration. That is a Snowflake object holding a trusted link to your cloud account, so no keys are typed into commands.
  2. Unload each table to Parquet. Snowflake writes several files in parallel:
    COPY INTO @export_stage/orders/
    FROM mydb.public.orders
    FILE_FORMAT = (TYPE = PARQUET)
    HEADER = TRUE
    MAX_FILE_SIZE = 268435456;
  3. If you want CSV instead, set FILE_FORMAT = (TYPE = CSV) HEADER = TRUE. CSV output is compressed with gzip by default.
  4. Download the files from an internal stage with the GET command in SnowSQL or the Snowflake CLI (snow sql):
    GET @export_stage/orders/ file:///data/export/;
    Snowflake does not let GET run inside a worksheet in either web interface. After an unload to an external stage, no download is needed because the files already sit in your bucket.

Writing directly to a bucket in S3, Google Cloud Storage or Azure requires a storage integration or access credentials. Each unload also needs a running virtual warehouse, which means it spends credits.

Formats and limits

The Snowflake unload formats
FormatDefault compressionNotes
ParquetSnappyThe best fit for relational tables.
CSVgzipAdd a header row with HEADER = TRUE.
JSONNone specifiedWorks only when unloading from VARIANT columns (a column type that holds semi-structured data), so use Parquet or CSV for ordinary tables.

The default MAX_FILE_SIZE is 16 MB, and you can raise it to 5 GB, though it works as a target and not a strict ceiling. Add SINGLE = TRUE when you would rather have one file than many.

What an export includes and leaves out

An unload holds the table as it stands when the statement runs. If you need an earlier state, Time Travel data can be queried with AT or BEFORE clauses, whereas Fail-safe copies are out of your reach: you cannot query, clone or restore them.

How long an export takes

Snowflake publishes no time, because it depends on table size, the size of the warehouse and the number of files. A larger warehouse unloads faster and uses more credits.

Sources: Snowflake documentation, TABLE_STORAGE_METRICS view, Understanding storage cost, COPY INTO location, Understanding and using Time Travel and GET. Steps checked against these pages in November 2026.

05

What stays private when Snowflake data is licensed?

The short answer

The company decides which tables and columns leave Snowflake, 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 data, and the license covers defined records for a defined use.

You choose what is in scope

COPY INTO accepts a SELECT in place of a table name, which lets identifiers, payment fields and free-text notes stay inside Snowflake while the other columns leave. This statement, for example, writes only three columns of one table:

COPY INTO @export_stage/orders/
FROM (SELECT order_id, created_at, status FROM mydb.public.orders)
FILE_FORMAT = (TYPE = PARQUET)
HEADER = TRUE;
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 billing, CRM and support joined invoice 7731 paid 2026-02-10 account: Acme Corp contact: Dana Brooks email: dana@acme.com support case 912 opened 2026-02-14 owner: Mike Alvarez Real names, an email and a company. WHAT AN AI LAB RECEIVES billing, CRM and support joined invoice 7731 paid 2026-02-10 account: Client 7 contact: Contact 203 email: contact203@example.test support case 912 opened 2026-02-14 owner: Employee 22 Same records; dates and sequence intact.
The same records in both panels. The company, the contact, the email and the support owner are replaced with stand-ins, while the payment and the support case 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 active bytes or my billed storage?

Active bytes are the right figure. Your bill adds Time Travel, Fail-safe, clone retention and staged files, none of which is the current data you would hand over.

Is Snowflake storage compressed?

Yes. Snowflake compresses every table it stores and measures storage by the compressed size, so an uncompressed export of the same tables comes out larger.

Why can't I query the ACCOUNT_USAGE views, and what role do I need?

By default only ACCOUNTADMIN can query them. An administrator can grant you the SNOWFLAKE.USAGE_VIEWER database role, which opens both TABLE_STORAGE_METRICS and DATABASE_STORAGE_USAGE_HISTORY.

Are Time Travel or Fail-safe copies part of an unload?

No. COPY INTO writes the table as it is at that moment. Earlier states are reachable only through separate Time Travel queries, and Fail-safe copies are closed to customers entirely.

Why does the GET command fail in my worksheet?

Because GET cannot run in a worksheet in either Snowflake web interface. Run it from SnowSQL or the Snowflake CLI, or unload to an external stage so the files land in your own bucket.

Do we need to export Snowflake before we apply?

No. The application takes about two minutes and shares no data. You only need your active 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. Because COPY INTO accepts a SELECT, you name only the columns you agree to share.

What is Snowflake 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 Snowflake, 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.