Snowflake Data Plane

Overview

🚧

Submit an environment request before continuing

Before creating a Snowflake data plane, submit an environment request indicating which data plane you would like enabled. Chat with us through Intercom within Ascend, or contact support by emailing [email protected]. Once your data plane is enabled, you'll receive confirmation your data plane is ready for set up.

In order to set up an Ascend Snowflake environment the following is required:

  • A new warehouse
  • A role for Ascend
  • Specific authorizations within that warehouse
  • Rights to create databases in the Snowflake account
  • A user account specific to Ascend

Once these are completed, you can connect to your Snowflake Data Plane within Ascend.

Step 1: Create a new warehouse in Snowflake

When creating a new warehouse in Snowflake, follow the steps within Snowflake.

📘

The size of your warehouse depends on the workload. As it is relatively simple to change the size of the warehouse after creation, some customers choose to start with smaller warehouses by default. The sample below illustrates an x-small warehouse, but customers should size warehouses according to expected data volume/processing.

Use the following SQL parameters:

--create the ascend specific warehouse
USE ROLE SYSADMIN;
CREATE WAREHOUSE ASCEND_WAREHOUSE warehouse_size=xsmall auto_suspend=60 auto_resume=true;

Step 2: Create an authorized role for Ascend for the warehouse

Ascend requires an assigned role with OPERATE and USAGE authorization for the warehouse created in Step 1.

When creating a new role, the following code sample can help with implementing these requirements:

--create the ascend specific role
USE ROLE SECURITYADMIN;
CREATE ROLE ASCEND_DB_ROLE;
GRANT ROLE ASCEND_DB_ROLE TO ROLE SYSADMIN;
GRANT OPERATE, USAGE ON WAREHOUSE ASCEND_WAREHOUSE TO ROLE ASCEND_DB_ROLE;

Step 3: Create an Ascend database user

Create a new user called “ASCENDUSER”, filling in the password with a random value and the email with an administrator email (whoever is responsible for managing the user):

USE ROLE SECURITYADMIN;
CREATE USER ASCENDUSER PASSWORD='***' EMAIL='<an administrator email address>' default_role='ASCEND_DB_ROLE' default_warehouse='ASCEND_WAREHOUSE';
GRANT ROLE ASCEND_DB_ROLE TO USER ASCENDUSER;

You'll also need to grant the user/role access to create databases within the Snowflake account.

--give ascend role ability to create database
USE ROLE SYSADMIN;
GRANT CREATE DATABASE ON ACCOUNT TO ROLE ASCEND_DB_ROLE;

Step 4: Create a Database

By default, Ascend will create one database per Data Service within Snowflake after setup of the data plane is complete. However, you need to create an initial database in order to establish a Snowflake connection in Ascend when setting up a data plane:

🚧

The database must be created using the Ascend database user from Step 3.

CREATE DATABASE ASCEND_DB;

Step 5: Registering a Snowflake Data plane in Ascend

Create a Snowflake Connection

  • Once you login, go into Admin Settings >Connection Management.
  • Create a new Snowflake connection. The connection must have an ACCESS TYPE of Read–Write and allow access from the Data Services you want to use the connection for. You should have at least one Data Service present. Use the database name created in Step 4 above when setting up the connection.

Configure the Data Plane to use the Snowflake Connection

  • Navigate to the settings of the Data Service, and select Data Plane Configuration.
  • Select the connection you created from the dropdown. You may leave the rest of the fields blank unless you wish to override fields from your connection.
FieldDescription
Snowflake ConnectionThe Snowflake connection to register to the Data Service.
Warehouse OverrideThe warehouse for this data service to use. Uses the Snowflake connection warehouse if not set.
Read Connector WarehouseThe warehouse to use for ingesting into Snowflake. Uses the Snowflake connection warehouse if not set.
Metadata WarehouseThe warehouse to use for Ascend metadata queries to gather metrics. Uses the Snowflake connection warehouse if not set.
Database TemplateThe template to determine how Ascend will name databases created in Snowflake.
Schema TemplateThe template to determine how Ascend will name schemas created in Snowflake.
Table TemplateThe template to determine how Ascend will name tables created in Snowflake.
Data Cleanup StrategyThe action in Snowflake taken when deleting a component in Ascend. Can be delete, archive, or keep.
Cluster Pool IDThe default Spark cluster pool to use for this Data Service.
Read Connector Cluster Pool IDThe Spark cluster pool to use for data ingest workloads in this Data Service.
Interactive Cluster Pool IDThe Spark cluster pool to use for interactive workloads (such as records retrieval, schema inference, etc.) in this Data Service

🚧

Read - Write access required

If access type is not set to Read - Write while creating the connection, or the Data Service of interest isn't allowed access to the connection, it will not show up in the dropdown in Data Plane Configuration.