Prerequisites


Step 1: Create a Snowflake data warehouse

  1. Log into your Snowflake account using a web browser or a SQL client.
  2. If you log in via a web browser, click the Worksheet icon at the top of the page.
  3. Create the warehouse by running this command, changing the values in the brackets (<>) to the values you want:

    CREATE WAREHOUSE <stitch_warehouse>
    WITH
    AUTO_RESUME = TRUE
    WAREHOUSE_SIZE = <size>
    AUTO_SUSPEND = <time_in_seconds>;
    

    Check out Snowflake’s documentation for more info on these parameters.

    The parameters in this command define the following:

    • AUTO_RESUME: If TRUE, the warehouse will be automatically resumed when accessed by a SQL statement. If FALSE, the warehouse will only start again when explicitly resumed through the Snowflake web interface or using ALTER WAREHOUSE.
    • WAREHOUSE_SIZE: Specifies the size of the warehouse to create. Accepted values are XSMALL, SMALL, MEDIUM, LARGE, XLARGE, XXLARGE, XXXXLARGE, and XXXXLARGE.

      The default is XSMALL.

    • AUTO_SUSPEND: Specifies the number of seconds of inactivity after which a warehouse is automatically suspended.

Step 2: Create a Stitch database and database user

Next, you’ll create a database and database user for Stitch.

Step 2.1: Create the database

Create the database for Stitch, changing <stitch_database> to what you want the database to be named:

CREATE DATABASE <stitch_database>;

Step 2.2: Create the database user

  1. Create a role for the Stitch user:

    CREATE ROLE <stitch_role> COMMENT = 'Role for Stitch access';
  2. Optional: If you’ve created a hierarchy that assigns all custom roles to the SYSADMIN role, grant the <stitch_role> to the SYSADMIN role:

    GRANT ROLE <stitch_role> to role SYSADMIN;
  3. Grant warehouse privileges to the Stitch role, using the name of the warehouse you created for Stitch.

    Note: This will grant all privileges except OWNERSHIP, and only apply to the warehouse you specify.

    GRANT ALL ON WAREHOUSE <stitch_warehouse> TO ROLE <stitch_role>;
  4. Grant database privileges to the Stitch role, using the name of the database you created for Stitch.

    Note: This will grant all privileges except OWNERSHIP, and only apply to the database(s) you specify.

    GRANT ALL ON DATABASE <stitch_database> TO ROLE <stitch_role>;
  5. Create the Stitch user and grant the Stitch role to the user:

    CREATE USER <stitch_user>
       PASSWORD='<password>'
       COMMENT='User for Stitch database user'
       DEFAULT_ROLE='<stitch_role>'
       DEFAULT_WAREHOUSE='<stitch_warehouse>';
    
    GRANT ROLE <stitch_role> TO USER <stitch_user>;

In the table below are the database user privileges Stitch requires to connect to and load data into Snowflake.

Privilege name Reason for requirement
GRANT ALL ON WAREHOUSE

Required to connect to the warehouse and change the state of the warehouse (start, resume), which is necessary to load data.

GRANT ALL ON DATABASE

Required to create the necessary database objects to load and store your data.


Step 3: Configure network access settings

In Snowflake, access is configured and managed through Network Security Policies.

Stitch’s IP addresses must be added to a network policy’s Allowed IP List for the connection to be successful.

  1. Create the network policy and add Stitch’s IP addresses to the list of allowed IP addresses.

    Replace <stitch_policy> with a name for the policy, and <your-current-ip-address> with the current IP address of the computer you’re working on - this is required for the next step:

    CREATE NETWORK POLICY <stitch_policy>
    ALLOWED_IP_LIST = ('52.23.137.21/32','52.204.223.208/32','52.204.228.32/32','52.204.230.227/32','<your-current-ip-address>');
    
  2. Apply the network policy to the account. Note Your current IP address must be included in the Allowed IP List to run this command successfully:

    ALTER ACCOUNT SET NETWORK_POLICY = <stitch_policy>;
    

If you encounter an error, ensure that your current IP address is in the Allowed IP List and try again. Contact Snowflake support if errors persist.


Step 4: Connect Stitch

To complete the setup, you need to enter your Snowflake connection details into the Destination Settings page in Stitch.

Step 4.1: Enter connection details into Stitch

  1. If you aren’t signed into your Stitch account, sign in now.
  2. Click the Destination tab.

  3. Locate and click the Snowflake icon.
  4. Fill in the fields as follows:

    • Host (Endpoint): Enter the URL of your Snowflake account. For example: stitch.snowflakecomputing.com

Note: Entering the http:// or https://` portion of the URL will prevent a successful connection.

- **Username**: Enter the Stitch Snowflake database user's username.
   
- **Password**: Enter the password for the Stitch Snowflake database user.

   
- **Database**: Enter the name of the database you created for Stitch in [Step 2.1](##create-snowflake-database).
   
- **Warehouse**: Enter the name of the Snowflake warehouse that you created for Stitch in [Step 1](#create-data-warehouse).

   
- **Role**: **Optional**: Enter the name of the role the Stitch database user should use.

Step 4.2: Save the destination

When finished, click Check and Save.

Stitch will perform a connection test to the Snowflake database; if successful, a Success! mesage will display at the top of the screen. Note: This test may take a few minutes to complete.



Questions? Feedback?

Did this article help? If you have questions or feedback, feel free to submit a pull request with your suggestions, open an issue on GitHub, or reach out to us.