How to Load Data Products from GCS to Snowflake

GCS logo and Snowflake logo
Table of contents

If you’re building modern data products, chances are you’ve already come across this scenario:

“I have all my data stored neatly in Google Cloud Storage, but my analytics and downstream consumers live in Snowflake. How do I get it all in there?”

This is one of the most common use cases for Snowflake - and for good reason. GCS is a natural place to store raw or processed data products because it’s cheap, scalable, and tightly integrated with Google Cloud. Meanwhile, Snowflake is the go-to platform for analytics, BI, and sharing data with stakeholders.

So moving data from GCS to Snowflake is a critical part of many data pipelines.

But here’s the catch: it’s also a bit techy.

Snowflake’s native support for GCS is powerful but requires several steps:

  • Configuring a storage integration and service account.
  • Managing IAM permissions in GCP.
  • Defining external stages and file formats.
  • Writing and validating COPY INTO commands.

For teams without a dedicated data engineer or who just want to move fast, this process can feel unnecessarily complicated. And even experienced teams can find the setup error-prone, especially when working across cloud platforms.

✅ A Simpler Way: Amplify Data

If you’d rather skip all those manual steps and focus on delivering insights, you can use Amplify Data to load data products from GCS into Snowflake easily, without the headache.

Amplify abstracts away the messy details and schema mapping for you, letting you move data from GCS into Snowflake with just a few clicks (or API calls).

You still get all the flexibility and power of Snowflake - but none of the boilerplate setup.

If you’re ready to move your data products from GCS into Snowflake without wrestling with IAM policies, integrations, and SQL scripts, check out Amplify Data and get started in minutes.

But let’s look at both methods. Whether you want to understand the nuts and bolts of how loading data products from Amazon S3 into Snowflake works, or you just want to get your data flowing today using Amplify, this guide will walk you through both options.

🧭 Technical Guide: How to Load Data Products from GCS to Snowflake

1. Prepare your data in GCS

  • Ensure your files (e.g., CSV, Parquet, JSON) are uploaded to a GCS bucket.
  • Example GCS path:
  • gs://my-bucket/data/products/

You’ll need:

  • The bucket name and object path.
  • Access credentials to read from GCS (a service account key file, usually in JSON format).

2. Create an External Stage in Snowflake

a. Create a storage integration (recommended)

This securely manages the GCS credentials:

sql
CopyEdit
CREATE STORAGE INTEGRATION gcs_integration
 TYPE = EXTERNAL_STAGE
 STORAGE_PROVIDER = GCS
 ENABLED = TRUE
 STORAGE_ALLOWED_LOCATIONS = ('gcs://my-bucket/data/');

b. Get the STORAGE_GCP_SERVICE_ACCOUNT for your integration:

sql
CopyEdit
DESC STORAGE INTEGRATION gcs_integration;

This gives you the service account email that Snowflake uses to access GCS.

c. Grant this service account read access to the GCS bucket:

In Google Cloud:

  • Go to your bucket > Permissions.
  • Add the service account email (from step b) as a Storage Object Viewer.

3. Create a Stage in Snowflake

Once the integration and permissions are set, define a stage:

sql
CopyEdit
CREATE STAGE gcs_stage
 URL = 'gcs://my-bucket/data/products/'
 STORAGE_INTEGRATION = gcs_integration;

You can now reference @gcs_stage in your COPY INTO commands.

4. Define Your Table in Snowflake

Prepare a Snowflake table that matches your data schema:

sql
CopyEdit
CREATE TABLE products (
 product_id STRING,
 name STRING,
 price FLOAT,
 created_at TIMESTAMP
);

5. Load Data Using COPY INTO

Run the COPY INTO command to load the data:

sql
CopyEdit
COPY INTO products
FROM @gcs_stage
FILE_FORMAT = (TYPE = 'CSV' FIELD_OPTIONALLY_ENCLOSED_BY='"' SKIP_HEADER=1);

For Parquet:

sql
CopyEdit
COPY INTO products
FROM @gcs_stage
FILE_FORMAT = (TYPE = 'PARQUET');

You can preview what would be loaded using:

sql
CopyEdit
COPY INTO products
FROM @gcs_stage
FILE_FORMAT = (TYPE='CSV')
VALIDATION_MODE = RETURN_ALL_ERRORS;

6. Optional: Clean up

After you’re done loading:

sql
CopyEdit
DROP STAGE gcs_stage;
DROP STORAGE INTEGRATION gcs_integration;

Notes:

  • If you prefer, you can also specify GCS credentials explicitly in the stage instead of creating a storage integration — but that is less secure and not recommended.
  • File formats must match the table schema. You can also use file format objects (CREATE FILE FORMAT) for reuse.

To Re-cap: 🛠️ The Manual Way (DIY)

What you do:

  • Upload your data files (CSV, Parquet, etc.) to GCS.
  • Create a storage integration in Snowflake to securely connect to GCS.
  • Grant Snowflake’s service account viewer permissions on your GCS bucket.
  • Define an external stage in Snowflake pointing to your GCS path.
  • Optionally create a file format definition in Snowflake.
  • Write and debug a COPY INTO statement to load your data into your Snowflake table.
  • Monitor, troubleshoot, and retry if something breaks (like mismatched schemas, missing permissions, etc.).

Challenges:

  • Requires knowledge of both Snowflake and GCS IAM.
  • Many steps, which means more room for errors.
  • Permissions errors and schema mismatches are common.
  • Not very friendly for non-engineers or fast-moving teams.

Faster Alternative: ⚡ The Amplify Way

What you do:

  • Point Amplify at your GCS bucket and your Snowflake account.
  • Select or define your data product and destination table.
  • Let Amplify handle the authentication, file parsing, schema mapping, and loading.
  • That’s it.

Why it’s better:

  • No need to create or manage storage integrations, stages, or service accounts.
  • No SQL or permissions wrangling.
  • Works in minutes instead of hours.
  • Easier to repeat and automate at scale.
  • Friendly for both engineers and non-engineers.

Skip these technical steps and load data products from GCS into Snowflake easily using Amplify (powered by Monda). Find out more or get a demo.

Access & share data products, the easy way.

150+ data companies use Monda to easily access, create, and share AI-ready data products.

Explore all features

Related articles

Monda makes it easy to create data products, publish a data storefront, integrate with data marketplaces, and manage data demand - data monetization made simple.

Data Sharing

How to Share Data Products from Snowflake to Google Cloud Storage (GCS)

Lucy Kelly

Data Sharing

How to Share Data Products from Snowflake to Power BI

Lucy Kelly

Data Sharing

How to Share Data Products from Snowflake to Microsoft Azure Blob Storage

Lucy Kelly

Monda Logo

Share AI-ready data products, easily.

Get a demo

Stay up-to-date on everything data & AI

Sign up to Monda Monthly to get data & AI thought leadership, product updates, and event notifications.