Snowflake

Setting up the Snowflake destination connector involves setting up Snowflake entities (warehouse, database, schema, user, and role) in the Snowflake console, and configuring the Snowflake destination connector using Whaly UI.

This page describes the step-by-step process of setting up the Wahly->Snowflake connectors integration.

Prerequisitesโ€‹

  • A Snowflake account with the ACCOUNTADMIN role. If you donโ€™t have an account with the ACCOUNTADMIN role, contact your Snowflake administrator to set one up for you.

Step 1: Set up Whaly-specific entities in Snowflakeโ€‹

To set up the Snowflake destination connector, you first need to create Whaly-specific Snowflake entities (a warehouse, database, schema, user, and role) with the OWNERSHIP permission to write data into Snowflake, track costs pertaining to Whaly, and control permissions at a granular level.

You can use the following script in a new Snowflake worksheet to create the entities:

  1. Edit the following script to change the password to a more secure password and to change the names of other resources if you so desire.

  2. Execute the script as an ACCOUNTADMIN user (check on the top right corner of the Worksheet interface).

Note: Make sure you follow the Snowflake identifier requirements while renaming the resources.

-- set variables (these need to be uppercase)
set whaly_dataloading_username = 'WHALY_DATALOADING_USER';
set whaly_dataloading_password = 'you_should_change_me';

-- This shouldn't be modified
set whaly_dataloading_role = 'WHALY_DATALOADING_ROLE';
set whaly_dataloading_warehouse = 'WHALY_DATALOADING_WAREHOUSE';
set whaly_dataloading_database = 'WHALY_DATALOADING_DATABASE';
set whaly_bi_role = 'WHALY_BI_ROLE';

begin;

-- create Whaly roles
use role securityadmin;
create role if not exists identifier($whaly_dataloading_role);
grant role identifier($whaly_dataloading_role) to role SYSADMIN;

-- create Whaly users
create user if not exists identifier($whaly_dataloading_username)
password = $whaly_dataloading_password
default_role = $whaly_dataloading_role
default_warehouse = $whaly_dataloading_warehouse;

grant role identifier($whaly_dataloading_role) 
    to user identifier($whaly_dataloading_username);

-- change role to sysadmin for warehouse / database steps
use role sysadmin;

-- create Whaly warehouses
create warehouse if not exists identifier($whaly_dataloading_warehouse)
warehouse_size = xsmall
warehouse_type = standard
auto_suspend = 1800
auto_resume = true
initially_suspended = true
statement_timeout_in_seconds = 600;

-- grant Whaly Warehouse access
grant USAGE
    on warehouse identifier($whaly_dataloading_warehouse)
    to role identifier($whaly_dataloading_role);

-- create Whaly data loading database
create database if not exists identifier($whaly_dataloading_database);

-- grant Whaly database access
grant OWNERSHIP
    on database identifier($whaly_dataloading_database)
    to role identifier($whaly_dataloading_role);

grant USAGE
    on database identifier($whaly_dataloading_database)
    to role identifier($whaly_bi_role);

commit;

Step 2: Set up Snowflake dataloading credentials in Whaly

Navigate to your Warehouse page in the Settings and configure the Dataloading credentials.

Last updated