Snowflake destination
Learn how to connect your Snowflake data warehouse as a destination in Renta ETL.
Prerequisites
Snowflake account: A Snowflake account with administrative privileges to run setup scripts.
Renta ETL account: Access to the Renta ETL platform with permissions to configure destinations
Choose the Snowflake warehouse strategy
You can choose to create an exclusive warehouse for Renta ETL or use an existing warehouse:
| Warehouse strategy | Description |
|---|---|
| Exclusive warehouse for Renta ETL | Create a dedicated warehouse for Renta ETL operations. This ensures that ETL operations will never contend with your analytical queries for compute resources. You will incur the cost of running this separate warehouse. |
| Shared warehouse | Use an existing warehouse to reduce infrastructure costs. Renta ETL loads data incrementally and consumes minimal compute resources. However, ETL operations may occasionally contend with your other workloads for shared resources during high-traffic periods. |
Run the setup script in Snowflake
-- ============================================================================
-- Renta ETL - Snowflake Initial Setup Script
-- ============================================================================
-- Description: This script sets up the initial Snowflake environment for
-- Renta ETL service including roles, users, warehouses,
-- database, schemas, and permissions.
--
-- Prerequisites:
-- - Execute this script with ACCOUNTADMIN privileges
-- - Review and update variable values according to your requirements
-- ============================================================================
-- ============================================================================
-- SECTION 1: CONFIGURATION VARIABLES
-- ============================================================================
-- Define all configuration variables for the Renta ETL environment
-- Modify these values according to your organization's naming conventions
SET role_name = 'RENTA_ROLE';
SET user_name = 'RENTA_USER';
SET user_password = 'TempP@ssw0rd123'; -- IMPORTANT: Change after first login
SET warehouse_name = 'RENTA_WAREHOUSE';
SET database_name = 'RENTA_DATABASE';
SET schema_name = 'RENTA';
-- ============================================================================
-- SECTION 2: ROLE AND USER CREATION
-- ============================================================================
-- Create a dedicated role for Renta ETL operations and a service user
USE ROLE securityadmin;
-- Create Renta ETL role
CREATE ROLE IF NOT EXISTS IDENTIFIER($role_name)
COMMENT = 'Role for Renta ETL service operations';
-- Grant role to SYSADMIN for role hierarchy
GRANT ROLE IDENTIFIER($role_name) TO ROLE SYSADMIN;
-- Create Renta ETL service user
CREATE USER IF NOT EXISTS IDENTIFIER($user_name)
PASSWORD = $user_password
DEFAULT_ROLE = $role_name
DEFAULT_WAREHOUSE = $warehouse_name
MUST_CHANGE_PASSWORD = FALSE
COMMENT = 'Service account for Renta ETL operations';
-- Assign role to user
GRANT ROLE IDENTIFIER($role_name) TO USER IDENTIFIER($user_name);
-- ============================================================================
-- SECTION 3: VIRTUAL WAREHOUSE CREATION
-- ============================================================================
-- Create a dedicated compute warehouse for Renta ETL workloads
USE ROLE sysadmin;
CREATE WAREHOUSE IF NOT EXISTS IDENTIFIER($warehouse_name)
WITH
WAREHOUSE_SIZE = 'XSMALL' -- Adjust size based on workload requirements
AUTO_SUSPEND = 300 -- Auto-suspend after 5 minutes of inactivity
AUTO_RESUME = TRUE -- Auto-resume on query submission
INITIALLY_SUSPENDED = TRUE -- Start in suspended state
COMMENT = 'Dedicated warehouse for Renta ETL operations';
-- Grant warehouse privileges to Renta role
GRANT USAGE ON WAREHOUSE IDENTIFIER($warehouse_name) TO ROLE IDENTIFIER($role_name);
GRANT OPERATE ON WAREHOUSE IDENTIFIER($warehouse_name) TO ROLE IDENTIFIER($role_name);
-- ============================================================================
-- SECTION 4: DATABASE AND SCHEMA CREATION
-- ============================================================================
-- Create database and schema structure for Renta ETL data
-- Switch to ACCOUNTADMIN for database creation
USE ROLE accountadmin;
-- Create Renta database
CREATE DATABASE IF NOT EXISTS IDENTIFIER($database_name)
COMMENT = 'Database for Renta ETL data and transformations';
-- Transfer ownership to SYSADMIN for operational management
GRANT OWNERSHIP ON DATABASE IDENTIFIER($database_name) TO ROLE sysadmin COPY CURRENT GRANTS;
-- Switch back to SYSADMIN
USE ROLE sysadmin;
-- Set database context
SET use_db_stmt = 'USE DATABASE ' || $database_name;
EXECUTE IMMEDIATE $use_db_stmt;
-- Create main schema
CREATE SCHEMA IF NOT EXISTS IDENTIFIER($schema_name)
COMMENT = 'Main schema for Renta ETL tables and views';
-- ============================================================================
-- SECTION 5: PERMISSION GRANTS
-- ============================================================================
-- Grant necessary permissions to Renta ETL role
-- Database-level permissions
GRANT USAGE ON DATABASE IDENTIFIER($database_name) TO ROLE IDENTIFIER($role_name);
GRANT CREATE SCHEMA ON DATABASE IDENTIFIER($database_name) TO ROLE IDENTIFIER($role_name);
-- Schema-level permissions for object creation
GRANT USAGE ON SCHEMA IDENTIFIER($schema_name) TO ROLE IDENTIFIER($role_name);
GRANT CREATE TABLE ON SCHEMA IDENTIFIER($schema_name) TO ROLE IDENTIFIER($role_name);
GRANT CREATE VIEW ON SCHEMA IDENTIFIER($schema_name) TO ROLE IDENTIFIER($role_name);
GRANT CREATE STAGE ON SCHEMA IDENTIFIER($schema_name) TO ROLE IDENTIFIER($role_name);
GRANT CREATE FILE FORMAT ON SCHEMA IDENTIFIER($schema_name) TO ROLE IDENTIFIER($role_name);
GRANT CREATE SEQUENCE ON SCHEMA IDENTIFIER($schema_name) TO ROLE IDENTIFIER($role_name);
GRANT CREATE FUNCTION ON SCHEMA IDENTIFIER($schema_name) TO ROLE IDENTIFIER($role_name);
GRANT CREATE PROCEDURE ON SCHEMA IDENTIFIER($schema_name) TO ROLE IDENTIFIER($role_name);
GRANT CREATE PIPE ON SCHEMA IDENTIFIER($schema_name) TO ROLE IDENTIFIER($role_name);
GRANT CREATE STREAM ON SCHEMA IDENTIFIER($schema_name) TO ROLE IDENTIFIER($role_name);
GRANT CREATE TASK ON SCHEMA IDENTIFIER($schema_name) TO ROLE IDENTIFIER($role_name);
-- Permissions on all existing tables in schema
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA IDENTIFIER($schema_name)
TO ROLE IDENTIFIER($role_name);
-- Permissions on all existing views in schema
GRANT SELECT ON ALL VIEWS IN SCHEMA IDENTIFIER($schema_name)
TO ROLE IDENTIFIER($role_name);
-- Permissions on future tables (automatically apply to new tables)
GRANT SELECT, INSERT, UPDATE, DELETE ON FUTURE TABLES IN SCHEMA IDENTIFIER($schema_name)
TO ROLE IDENTIFIER($role_name);
-- Permissions on future views (automatically apply to new views)
GRANT SELECT ON FUTURE VIEWS IN SCHEMA IDENTIFIER($schema_name)
TO ROLE IDENTIFIER($role_name);
-- ============================================================================
-- SECTION 6: VERIFICATION
-- ============================================================================
-- Verify that all objects were created successfully
-- Display created objects
SHOW ROLES LIKE 'RENTA_ROLE';
SHOW USERS LIKE 'RENTA_USER';
SHOW WAREHOUSES LIKE 'RENTA_WAREHOUSE';
SHOW DATABASES LIKE 'RENTA_DATABASE';
-- Display granted permissions
SHOW GRANTS TO ROLE IDENTIFIER($role_name);
-- Verify schema exists
SHOW SCHEMAS IN DATABASE IDENTIFIER($database_name);
-- ============================================================================
-- SETUP COMPLETE
-- ============================================================================Make a note of the following values — you will need them to configure Renta ETL.
Do not use this username for any other purpose.
Configure Snowflake Destination in Renta ETL
In this section, we’ll show how to add Snowflake as a Destination in Renta ETL.
Navigate to Destination in the left sidebar.

Click the Add Destination button in the top right corner.

Select Snowflake from the list of available destination types.

Fill in the connection details form:
| Field | Field description |
|---|---|
| Destination name | A descriptive name for this destination. Example: Production — Snowflake |
| Server hostname | Your Snowflake account URL. Example: https://xy12345.us-east-1.snowflakecomputing.com |
| Warehouse | The warehouse you created in the setup script. Example: RENTA_WAREHOUSE |
| Database name | The database name from the setup script. Example: RENTA_DATABASE |
| Database schema | The schema name from the setup script. Example: RENTA |
| User | The username you created in the setup script. Example: RENTA_USER |
| Password | The password you set in the setup script. Example: TempP@ssw0rd123 |

Click Save to verify that Renta ETL can successfully connect to your Snowflake warehouse.
Ready to get started?
Build your data pipeline today or get a personalized demo. Start free!
Need help?
Get expert support to ensure your project succeeds. We're here to help!
Feature requests?
Help shape our product! Share your ideas for new features and integrations.