Snowflake Integration

FreeProEnterprise

Overview

Indicative's Snowflake extractions work by automatically extracting batches using Snowflake's storage integration functionality. 

This integration is available for all Snowflake instances regardless of the underlying cloud infrastructure.  

To enable access for Indicative to execute these extractions:

  1. Create the storage integration to export data to Google Cloud Storage (GCS)
  2. Create a role for Indicative configured with the proper permissions to execute extractions and access the appropriate warehouses, databases, schemas, and tables for your integration
  3. Create a user for Indicative and grant it access to the newly created role for Indicative
  4. Complete the Data Integration Questionnaire

Please note, customers using AWS and Microsoft hosted Snowflakes will incur data egress cost when data is exported to GCS.

Instructions

To enable Indicative to access your Snowflake data, you'll execute the script below.  Before doing so, you’ll need to replace the following values in the script:

<password>

A password for the Indicative account to use when authenticating. Please use a secure, randomly generated password.

<your warehouse>

The warehouse in which you'd like Indicative to execute its extractions. You can use an existing warehouse or create a new one if you like.

<your database>

The database(s) that contain the data you'd like Indicative to access. If you would like Indicative to access data in multiple databases, you must grant access to each of those databases.

<schema>

The schema(s) that contain the data you'd like Indicative to access. If you would like Indicative to access data in multiple schemas, you must grant access to each of those schemas.

<table>

The table(s) that contain the data you'd like Indicative to access. If you would like Indicative to access data in multiple tables, you must grant access to each of those tables

use role ACCOUNTADMIN;

# Create role for indicative
create role if not exists indicative_service;

# Create user for indicative and grant the indicative role to the indicative user
create user if not exists indicative_service password = '<password>';
grant role indicative_service to user indicative_service;

# Grant the indicative role access to the appropriate warehouses, databases, and schemas 
grant usage on warehouse <your warehouse> to role indicative_service;
grant usage on database <your database> to role indicative_service;
grant usage on schema <your database>.<your schema> to role indicative_service;

# To grant access to a specific table
grant select on table <database>.<schema>.<table> to role indicative_service;

# Alternatively, to grant access to all existing tables and future tables
grant select on all tables in schema <database>.<schema> to role indicative_service;
grant select on future tables in schema <database>.<schema> to role indicative_service;

# Create a storage integration to allow batch exports and grant access to the indicative role
create or replace storage integration indicative_gcs
	    with type = EXTERNAL_STAGE
	    STORAGE_PROVIDER = GCS
	    ENABLED = true
	    STORAGE_ALLOWED_LOCATIONS = ('*');

grant usage on integration indicative_gcs to role indicative_service;

You can copy/paste the above into Snowflake, replace the appropriate placeholders, and execute all statements. See below:

mceclip0.png

Complete the Data Integration Questionnaire

Grant Indicative the necessary information to move forward with your integration by completing this Data Integration Questionnaire

Please note, your Snowflake Account ID is everything to the left of .snowflakecomputing.com in your URL:

mceclip1.png

This documentation is derived from Snowflake's documentation on making data available though your Snowflake Google Service Account, found here

If you have any questions or concerns about the above Integration, please contact your Customer Support Manager, or email support@indicative.com.

1 users found this helpful