Skip to main content
Integrating Snowflake
Matt avatar
Written by Matt
Updated over a week ago

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:

  1. Walk through the setup wizard, which requires the following information:

    1. Account: your account id ex. ‘maestro12345’

      1. It can be found in your Snowflake dashboard’s URL here: https://<account>.<region>.snowflakecomputing.com

    2. Region: the AWS region of your account ex. ‘us-east-1’

      1. It can be found in your dashboard’s URL here:

        1. https://<account>.<region>.snowflakecomputing.com
    3. User: a new Service Account user login for us to use, ex. MAESTRO_USER

    4. Password: the password for this MAESTRO_USER

    5. Warehouse: a warehouse that MAESTRO_USER has ‘USAGE’ privilege to.

      1. Note: If this warehouse is auto suspended, we need either:

        1. For this warehouse to have ‘Auto Resume’: ‘Yes’ OR

        2. We need ‘OPERATE’ privilege so we can ‘RESUME’ the warehouse

    6. Database: a database holding our maestro schema, ex. MAESTRO_DB

      1. MAESTRO_USER needs ‘USAGE’ privilege

    7. Schema: a schema we will read from. ex. MAESTRO_SCHEMA

      1. MAESTRO_USER need ‘USAGE’ and ‘CREATE TABLE’ privileges

      2. 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.

      3. For example SQL commands:

        1. 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;
        2. (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;
      4. Next, build a schema for the maestro role to read from, put all the tables you wish to share into this schema.

        1. 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.

Did this answer your question?