How to Upload a CSV to Snowflake

Uploading CSV files to Snowflake can streamline your data integration process. This tutorial will guide you through the steps to load a CSV into Snowflake, so you can leverage your data effectively in the Snowflake data platform.

Step 1: Prepare the CSV File

Ensure your CSV file is properly formatted. Snowflake supports CSV files with standard delimiters (commas) and optional headers. If your file has headers, Snowflake will automatically map the columns to the table fields.

Step 2: Create a Snowflake Table

Before uploading the CSV file, you need a table in Snowflake where the data will be loaded. Here’s a basic SQL query to create a table:

CREATE OR REPLACE TABLE my_table (
    id INT,
    name STRING,
    age INT,
    city STRING
);

Step 3: Upload the CSV File

There are two primary ways to upload a CSV file to Snowflake:

  • Using Snowflake’s Web Interface: You can use the Snowflake web UI to upload your CSV files directly.
  • Using Snowflake's Stage: You can load the CSV using an external stage such as Amazon S3 or Google Cloud Storage.

Using the Web Interface

In Snowflake’s web UI, navigate to the "Data" tab, select the table, and click on "Load Data." Choose the CSV file from your local computer, map the file's columns to the table’s columns, and hit "Load." Snowflake will handle the rest.

Using Snowflake Stage (S3 Example)

1. Create a stage:

CREATE OR REPLACE STAGE my_stage
    URL='s3://mybucket/myfolder/'
    CREDENTIALS=(AWS_KEY_ID='my_key' AWS_SECRET_KEY='my_secret');

2. Copy the CSV file into the table using the COPY INTO command:

COPY INTO my_table
    FROM @my_stage/my_csv_file.csv
    FILE_FORMAT = (TYPE = 'CSV' FIELD_OPTIONALLY_ENCLOSED_BY = '"');

Step 4: Verify Data

Once the CSV file is uploaded, you can verify the data by running a simple query:

SELECT * FROM my_table;

If the data appears correctly, the upload is complete!

Conclusion

Uploading CSV files to Snowflake is straightforward and can be done via the web UI or using external stages like S3. Whether you’re importing small datasets or large volumes of data, Snowflake’s robust data loading options make the process efficient and scalable.