Introduction
MaestroQA supports integrating Snowflake for ingesting metrics or tickets or for exporting data out.
Ingesting metrics can be done via direct integration or via Snowflake Data share.
The Snowflake direct integration reads from or writes to Snowflake on a configurable schedule, by default hourly.
For details on data export, check out this article here.
To start setting up the integration, you need to be a Maestro Admin.
Note
To prevent unplanned interruptions, we strongly recommend creating a dedicated Service Account in Snowflake for this integration. In addition, Snowflake will begin requiring MFA for Human User Accounts in October 2024, which our integration does not support.
How to integrate with Snowflake
Finding the Snowflake Tile in Maestro
As a MaestroQA admin, log into MaestroQA and navigate to the Snowflake integration tile which can be found by going to Settings > Integrations.
Then on the Integrations page find the "Data Warehouse" tile, and click on the "Snowflake" within "Data Warehouse" view.
Going through the Set Up Process
After clicking on the Snowflake tile, you will be brought through a set up wizard. The steps are outlined here:
Walk through the setup wizard, which requires the following information:
Account: your account id ex. ‘maestro12345’
It can be found in your Snowflake dashboard’s URL here: https://<account>.<region>.snowflakecomputing.com
Region: the AWS region of your account ex. ‘us-east-1’
It can be found in your dashboard’s URL here:
https://<account>.<region>.snowflakecomputing.com
User: a new Service Account user login for us to use, ex. MAESTRO_USER
Password: the password for this MAESTRO_USER
Warehouse: a warehouse that MAESTRO_USER has ‘USAGE’ privilege to.
Note: If this warehouse is auto suspended, we need either:
For this warehouse to have ‘Auto Resume’: ‘Yes’ OR
We need ‘OPERATE’ privilege so we can ‘RESUME’ the warehouse
Database: a database holding our maestro schema, ex. MAESTRO_DB
MAESTRO_USER needs ‘USAGE’ privilege
Schema: a schema we will read from. ex. MAESTRO_SCHEMA
MAESTRO_USER need ‘USAGE’ and ‘CREATE TABLE’ privileges
We recommend creating a new user and schema. Then restricting that user to only that schema such that the user we use only has access and privileges in the new, MaestroQA data only, schema.
For example SQL commands:
First build a new role and user, with names like `maestro_role` and `maestro_user`` and set a password of your choosing
CREATE USER maestro_user PASSWORD='<your password here>';
CREATE ROLE maestro_role;
REVOKE ALL PRIVILEGES ON DATABASE <your database name> FROM maestro_role;
GRANT USAGE on DATABASE <your database name> to maestro_role;
GRANT USAGE on WAREHOUSE <your warehouse name> to maestro_role;(Optional): This operation is only needed if you don’t have “auto resume” enabled on the warehouse
GRANT OPERATE on WAREHOUSE <your warehouse name> to maestro_role;
GRANT ROLE maestro_role to USER maestro_user;
Next, build a schema for the maestro role to read from, put all the tables you wish to share into this schema.
CREATE SCHEMA maestro_schema;
GRANT ALL ON SCHEMA maestro_schema to maestro_role;
ALTER USER maestro_user SET search_path='maestro_schema';
GRANT ROLE maestro_role to USER maestro;
Please contact us to set up any additional configuration or security options such as IP whitelisting.