To connect Snowflake to Verodat, you need the following:
A Snowflake account with the appropriate permissions to create a user and warehouse for Verodat.
Verodat role with Workspace Admin permissions.
Step 1: Configure your Snowflake Account
If you don't already have a Snowflake account, there are a few things to consider before you get started.
Cloud storage connections: You will be asked to select a cloud storage account to connect your Snowflake account to. There are two options here:
If you do not have a cloud database: you can select a cloud service provider when signing up to Snowflake.
Step 2: Configure your Snowflake Account
Select Enterprise as your edition.
Choose AWS as your preferred cloud provider.
Select your preferred region.
Verify your email address and activate your account
Add an email address, password, and confirm the password to create an account. If you're having trouble, you can find more info here.
Step 3: Set up tables in Snowflake for Verodat
Choose Snowflake warehouse type. We recommend starting out with Extra Small. You should create an exclusive warehouse for Verodat.
IMPORTANT: Verodat operations will never contend with your queries for resources. You will have to pay the cost of running the warehouse.Copy the following script to a new worksheet and select the All Queries checkbox:
begin;
-- create variables for user / password / role / warehouse / database (needs to be uppercase for objects)
set role_name = 'Verodat_SF_ROLE';
set user_name = 'Verodat_SF_USER';
set user_password = 'password123';
set warehouse_name = 'Verodat_Workspace_WAREHOUSE';
set database_name = 'Verodat_Workspace_DATABASE';
-- change role to securityadmin for user / role steps
use role securityadmin;
-- create role for Verodat
create role if not exists identifier($role_name);
grant role identifier($role_name) to role SYSADMIN;
-- create a user for Verodat
create user if not exists identifier($user_name)
password = $user_password
default_role = $role_name
default_warehouse = $warehouse_name;
grant role identifier($role_name) to user identifier($user_name);
-- change role to sysadmin for warehouse / database steps
use role sysadmin;
-- create a warehouse for Verodat
create warehouse if not exists identifier($warehouse_name)
warehouse_size = xsmall
warehouse_type = standard
auto_suspend = 60
auto_resume = true
initially_suspended = true;
-- create database for Verodat
create database if not exists identifier($database_name);
-- grant Verodat role access to warehouse
grant USAGE
on warehouse identifier($warehouse_name)
to role identifier($role_name);
-- grant Verodat access to database
grant CREATE SCHEMA, MONITOR, USAGE
on database identifier($database_name)
to role identifier($role_name);
-- change role to ACCOUNTADMIN for STORAGE INTEGRATION support (only needed for Snowflake on GCP)
use role ACCOUNTADMIN;
grant CREATE INTEGRATION on account to role identifier($role_name);
use role sysadmin;
commit;
Replace the default VERODAT_ROLE, VERODAT_DATABASE, VERODAT_USER, and "password123" values with values that conform to your specific naming conventions for those resources.
Run the script. This will createa a user, a database, and three different schemas in Snowflake for Verodat to use at Design, Staging and Live stages.
Get account url, by navigating to account left bottom, select account, current region and copying the account url.



