Snowflake
Adding and configuring a Snowflake connection within Qualytics empowers the platform to build a symbolic link with your schema to perform operations like data discovery, visualization, reporting, syncing, profiling, scanning, anomaly surveillance, and more.
This documentation provides a step-by-step guide on how to add Snowflake as both a source and enrichment datastore in Qualytics. It covers the entire process, from initial connection setup to testing and finalizing the configuration.
By following these instructions, enterprises can ensure their Snowflake environment is properly connected with Qualytics, unlocking the platform's potential to help you proactively manage your full data quality lifecycle.

Let’s get started 🚀
Snowflake Setup Guide
The Snowflake Setup Guide provides step-by-step instructions for configuring warehouses and roles, ensuring efficient data management and access control. It explains how to create a warehouse with minimal requirements and the setup of a default warehouse for a user. It also explains how to create custom read-only and read-write roles and grant the necessary privileges for data access and modification.
This guide is designed to help you optimize your Snowflake environment for performance and security, whether setting it up for the first time or refining your configuration.
Warehouse & Role Configuration
This section provides instructions for configuring Snowflake warehouses and roles. It includes creating a warehouse with minimal requirements, assigning a default warehouse for a user, creating custom read-only and read-write roles, and granting privileges to these roles for data access and modification.
Create a Warehouse
Use the following command to create a warehouse with minimal requirements:
Set a specific warehouse as the default for a user:
Source Datastore Privileges and Permissions
Create a new role called qualytics_read_role and grant it privileges:
CREATE ROLE qualytics_read_role;
GRANT USAGE ON WAREHOUSE qualytics_wh TO ROLE qualytics_read_role;
GRANT USAGE ON DATABASE <database_name> TO ROLE qualytics_read_role;
GRANT USAGE ON SCHEMA <database_name>.<schema_name> TO ROLE qualytics_read_role;
GRANT SELECT ON TABLE <database_name>.<schema_name>.<table_name> TO ROLE qualytics_read_role;
GRANT SELECT ON ALL TABLES IN SCHEMA <database_name>.<schema_name> TO ROLE qualytics_read_role;
GRANT SELECT ON ALL VIEWS IN SCHEMA <database_name>.<schema_name> TO ROLE qualytics_read_role;
GRANT SELECT ON FUTURE TABLES IN SCHEMA <database_name>.<schema_name> TO ROLE qualytics_read_role;
GRANT SELECT ON FUTURE VIEWS IN SCHEMA <database_name>.<schema_name> TO ROLE qualytics_read_role;
GRANT ROLE qualytics_read_role TO USER <user_name>;
Enrichment Datastore Privileges and Permissions
Create a new role called qualytics_readwrite_role and grant it privileges:
CREATE ROLE qualytics_readwrite_role;
GRANT USAGE ON WAREHOUSE qualytics_wh TO ROLE qualytics_readwrite_role;
GRANT USAGE, MODIFY ON DATABASE <database_name> TO ROLE qualytics_readwrite_role;
GRANT USAGE, MODIFY ON SCHEMA <database_name>.<qualytics_schema> TO ROLE qualytics_readwrite_role;
GRANT CREATE TABLE ON SCHEMA <database_name>.<qualytics_schema> TO ROLE qualytics_readwrite_role;
GRANT SELECT ON FUTURE VIEWS IN SCHEMA <database_name>.<qualytics_schema> TO ROLE qualytics_readwrite_role;
GRANT SELECT ON FUTURE TABLES IN SCHEMA <database_name>.<qualytics_schema> TO ROLE qualytics_readwrite_role;
GRANT SELECT ON ALL TABLES IN SCHEMA <database_name>.<qualytics_schema> TO ROLE qualytics_readwrite_role;
GRANT SELECT ON ALL VIEWS IN SCHEMA <database_name>.<qualytics_schema> TO ROLE qualytics_readwrite_role;
GRANT ROLE qualytics_readwrite_role TO USER <user_name>;
Authentication Changes in Snowflake
Snowflake has announced a migration plan to phase out Basic authentication (username and password) for service accounts in favor of Key-Pair authentication. While basic authentication is still supported, organizations should begin planning their migration to ensure uninterrupted service.
User Type Classification
Snowflake differentiates between user types based on their intended purpose:
| User Type | Purpose | Current Authentication Support |
|---|---|---|
Human users (TYPE=PERSON) |
Interactive users accessing Snowflake | Basic authentication supported |
Service users (TYPE=SERVICE) |
Applications and services (like Qualytics) | Key-Pair authentication recommended |
Legacy service (TYPE=LEGACY_SERVICE) |
Temporary transition type | Basic authentication (being phased out) |
Migration Timeline
Snowflake's migration plan includes:
- Current Phase: Basic authentication still supported for service accounts
- Transition Phase:
LEGACY_SERVICEuser type available for organizations needing additional migration time - Future Phase: Basic authentication will be fully deprecated for service users
Recommended Actions
To prepare for this transition:
- New connections: Use Key-Pair authentication when creating new Snowflake datastores
- Existing connections: Plan migration from Basic to Key-Pair authentication
- Service accounts: Ensure proper user type classification (
TYPE=SERVICE)
Additional Resources
For detailed information on the migration plan and implementation:
Migration Recommendation
While Basic authentication is currently supported, migrating to Key-Pair authentication ensures your Snowflake connections remain secure and future-proof as Snowflake implements their deprecation timeline.
Troubleshooting Common Errors
| Error | Likely Cause | Fix |
|---|---|---|
Incorrect username or password |
The username or password is incorrect | Verify the credentials and ensure the user exists with SHOW USERS in Snowflake |
No active warehouse selected |
The user does not have a default warehouse or the warehouse specified in the connection form does not exist | Verify the warehouse name and run ALTER USER <user> SET DEFAULT_WAREHOUSE = <warehouse> |
Insufficient privileges to operate on schema |
The role lacks USAGE on the target schema |
Run GRANT USAGE ON SCHEMA <database>.<schema> TO ROLE <role> |
Object does not exist or not authorized |
The role lacks SELECT on the target table or the table does not exist |
Run GRANT SELECT ON ALL TABLES IN SCHEMA <database>.<schema> TO ROLE <role> |
Warehouse is suspended |
The warehouse is suspended and AUTO_RESUME is not enabled |
Resume the warehouse with ALTER WAREHOUSE <warehouse> RESUME or enable AUTO_RESUME |
Private key provided is invalid |
The private key file is malformed or the passphrase is incorrect (Key-Pair auth) | Verify the private key format (PKCS#8 PEM) and the passphrase |
Detailed Troubleshooting Notes
Authentication Errors
The error Incorrect username or password or Private key provided is invalid indicates that the credentials are incorrect.
Common causes:
- Incorrect password: the password does not match the one set for the user.
- Account identifier wrong: the Snowflake host format must be
<account>.<region>.snowflakecomputing.com. An incorrect account identifier will fail to connect. - Key-Pair format: the private key must be in PKCS#8 PEM format. DER or PKCS#1 formats are not supported.
- Passphrase mismatch: if the private key is encrypted, the passphrase provided does not match.
Note
Snowflake is migrating service accounts to Key-Pair authentication. If using basic authentication with a TYPE=SERVICE user, consider migrating to Key-Pair before Snowflake deprecates basic auth for service users.
Permission Errors
The error Insufficient privileges or Object does not exist or not authorized means the role authenticated successfully but lacks the necessary grants.
Common causes:
- Wrong role: the user's current role does not have the required privileges. Verify the role with
SELECT CURRENT_ROLE(). - Missing
USAGEon warehouse: the role cannot execute queries without warehouse access. - Missing
USAGEon database/schema: the role cannot browse objects in the database or schema. - Future grants not set: new tables created after the initial grant are not automatically accessible. Use
GRANT SELECT ON FUTURE TABLES IN SCHEMAto fix this.
Connection Errors
The error No active warehouse selected or Warehouse is suspended indicates a compute resource issue.
Common causes:
- Warehouse does not exist: the warehouse name in the connection form was misspelled or the warehouse was dropped.
- Warehouse suspended: the warehouse is suspended and
AUTO_RESUME = FALSE. Resume it manually or enable auto-resume. - No default warehouse: the user does not have a default warehouse assigned with
ALTER USER ... SET DEFAULT_WAREHOUSE.
Tip
Start by confirming credentials are valid (authentication errors), then verify role privileges (permission errors), and finally check warehouse availability (connection errors).
Identifying Qualytics in Snowflake
Qualytics tags every Snowflake JDBC connection with application=Qualytics. The tag appears in Snowflake's QUERY_HISTORY, LOGIN_HISTORY, and Snowsight monitoring under the Client Application column, making it easy to filter and analyze Qualytics activity in your account. No configuration is required on your side.
Add a Source Datastore
A source datastore is a storage location Qualytics connects to so it can profile, scan, and monitor data. Adding Snowflake as a source lets Qualytics query it through the Snowflake JDBC driver and run quality operations on the tables it discovers.
Before you start, set up the role and warehouse described in Warehouse & Role Configuration.
Field reference
The Add Datastore page shows the sections below when Snowflake is selected. When reusing an existing connection, the Connection Properties and Secrets Management sections come already filled in and read-only: Qualytics has already validated those credentials, so you fill in only the Datastores Extraction and the Datastore Properties. To change a saved connection's credentials, edit the connection through the Manage Connections page; edits there apply to every datastore that reuses the connection.
Connection Properties
These fields define the Snowflake account Qualytics connects to and the role and warehouse it uses. They belong to the connection: when reusing an existing connection, they come already filled in and read-only.
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Connection Name | Text | A label for the saved connection (e.g., acme_snowflake_reporting), so other datastores can reuse it later. |
|
| Host | Text | The Snowflake account URL, in the form <account>.<region>.snowflakecomputing.com. |
|
| Role | Text | The Snowflake role Qualytics runs every query with. It has to be granted to the user. | |
| Warehouse | Text | The virtual warehouse that runs the queries. |
Authentication
Choose how Qualytics authenticates to Snowflake. Setting Type changes the credential fields shown below it, so pick the tab that matches your choice. These fields also belong to the connection: already filled in and read-only when reusing one.
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Type | Option | Set to Basic, which is the default (BASIC in the API). |
|
| User | Text | The Snowflake user Qualytics connects as. | |
| Password | Text | The password for that user. |
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Type | Option | Set to Keypair (KEYPAIR in the API). |
|
| User | Text | The Snowflake user the key pair is registered to. | |
| Private Key | File | The private key file for that user. Upload it rather than pasting it. | |
| Private Key Password | Text | The passphrase that protects the private key. Leave it empty if the key is not encrypted. |
Secrets Management
This group is optional: use it only if you want Qualytics to pull credentials from a secrets manager instead of typing them into the form. Turn on HashiCorp Vault to show the fields below. Despite the label, any secrets manager that exposes a compatible REST API works, not only HashiCorp Vault; see Secrets Management. It also belongs to the connection: read-only when reusing an existing connection.
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Login URL | Text | The Vault endpoint Qualytics uses to authenticate (e.g., https://vault.example.com/v1/auth/approle/login). |
|
| Credentials Payload | Text | A JSON body containing the credentials Vault expects (e.g., {"role_id":"...","secret_id":"..."}). |
|
| Token JSONPath | Text | The JSONPath that extracts the client token from Vault's response. Defaults to $.auth.client_token. |
|
| Secret URL | Text | The Vault path where the secret is stored (e.g., https://vault.example.com/v1/secret/data/snowflake). |
|
| Token Header Name | Text | The HTTP header name used to send the token. Defaults to X-Vault-Token. |
|
| Data JSONPath | Text | The JSONPath that extracts the secret payload from Vault's response. Defaults to $.data. |
Datastores Extraction
Pick the database and the schema or schemas Qualytics should read from. You fill these in on both flows.
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Database | Option | The database to read from. Click the refresh icon to load the databases the role can see. | |
| Schema | Option | One or more schemas inside the selected database. Each schema you pick becomes its own Qualytics datastore. The field shows public as a hint, but nothing is selected for you. |
One datastore per schema
Selecting more than one schema creates one source datastore per schema, named from the Name Template. See Multi-Schema Source Datastore Creation for details.
What the role can see
The list only shows what the Role on the connection has been granted. A missing database or schema usually means the role lacks USAGE on it.
Datastore Properties
Common fields for every source datastore, shown below the Datastores Extraction section. You fill these in on both flows.
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Name Template | Text | Defines the naming pattern for each source datastore being created. Use {{schema}} as a placeholder that gets replaced with the actual schema name (e.g., snow_{{schema}} becomes snow_sales). Left empty, the datastore is named from the connection name and the schema. |
|
| Group | Option | Organizes your datastores under a shared group in the navigation tree. Select an existing group or create a new one with the Add New Group toggle. | |
| Teams | Option | Select one or more teams to associate with this source datastore. | |
| Initiate Sync | Checkbox | Automatically sync the datastore to detect containers and fields after creation. |
Steps
There are two ways to set up the connection: reuse a connection you already saved (Existing Connection) or create a new one from scratch (New Connection). The tabs below walk through each option; pick the one you want to follow. Each field is described in the Field reference above.
Step 1: Navigate to the Source Datastores page.
Step 2: Click the Add Source Datastore button at the top-right corner.
Step 3: The Add Datastore page opens.
Step 4: Select New Connection next to the Search field.
Step 5: Select Snowflake from the connector grid. Use the search field to filter connectors by name.
Step 6: Fill in the Connection Properties: the Connection Name, Host, Role, and Warehouse, then the Authentication fields for the Type you choose.
Step 7: Optionally, expand Secrets Management to retrieve credentials from a secrets manager.
Step 8: Fill in the Datastores Extraction fields (Database and Schema) and the Datastore Properties.
Step 9: Click Test connection. A success message confirms that the connection has been verified.
Info
The Finish and Next buttons stay disabled until the connection test passes on the current values. If the test fails, see Troubleshooting Common Errors.
Step 10: Click Finish to create the datastore.
Tip
To link an enrichment datastore so Qualytics can store anomalies and metadata from the first operation, click Next instead of Finish. See Add Enrichment Datastore below.
Step 11: A success dialog confirms that your datastore has been added. Click Go to your datastore to open its page.
Step 1: Navigate to the Source Datastores page.
Step 2: Click the Add Source Datastore button at the top-right corner.
Step 3: The Add Datastore page opens.
Step 4: Select Existing Connection next to the Search field.
Step 5: Select the saved Snowflake connection from the grid. Use the search field to filter connections by name. The Connection Properties and Secrets Management sections come already filled in and read-only.
Start a new connection from this one
To use the selected connection as a starting point for a brand-new connection instead, click the Duplicate as a new connection button on the selected connection. The form switches to New Connection mode with the connection's settings already filled in for you to adjust.
Step 6: Fill in the Datastores Extraction fields (Database and Schema) and the Datastore Properties. These are the only fields left to fill in.
Step 7: Click Test connection. A success message confirms that the connection has been verified.
Info
The Finish and Next buttons stay disabled until the connection test passes on the current values. If the test fails, see Troubleshooting Common Errors.
Step 8: Click Finish to create the datastore.
Tip
To link an enrichment datastore so Qualytics can store anomalies and metadata from the first operation, click Next instead of Finish. See Add Enrichment Datastore below.
Step 9: A success dialog confirms that your datastore has been added. Click Go to your datastore to open its page.
Add Enrichment Datastore
An enrichment datastore is where Qualytics writes what it finds: anomalies, remediation tables, and record enrichment. Snowflake is supported for this role, so the same instance can hold both the data you monitor and the results.
Field reference
The Enrichment Datastore step shows the sections below when Snowflake is selected. When reusing an existing connection, the Connection Properties and Secrets Management sections come already filled in and read-only.
Connection Properties
These fields define the Snowflake account Qualytics connects to and the role and warehouse it uses. They are the same fields as on the source datastore flow, repeated here so this section stands on its own.
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Connection Name | Text | A label for the saved connection (e.g., acme_snowflake_enrichment), so other datastores can reuse it later. |
|
| Host | Text | The Snowflake account URL, in the form <account>.<region>.snowflakecomputing.com. |
|
| Role | Text | The Snowflake role Qualytics runs every query with. It has to be granted to the user. | |
| Warehouse | Text | The virtual warehouse that runs the queries. |
Authentication
Choose how Qualytics authenticates to Snowflake. Setting Type changes the credential fields shown below it, so pick the tab that matches your choice. These fields also belong to the connection: already filled in and read-only when reusing one. They are the same fields as on the source datastore flow, repeated here so this section stands on its own.
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Type | Option | Set to Basic, which is the default (BASIC in the API). |
|
| User | Text | The Snowflake user Qualytics connects as. | |
| Password | Text | The password for that user. |
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Type | Option | Set to Keypair (KEYPAIR in the API). |
|
| User | Text | The Snowflake user the key pair is registered to. | |
| Private Key | File | The private key file for that user. Upload it rather than pasting it. | |
| Private Key Password | Text | The passphrase that protects the private key. Leave it empty if the key is not encrypted. |
Secrets Management
This group is optional: use it only if you want Qualytics to pull credentials from a secrets manager instead of typing them into the form. Turn on HashiCorp Vault to show the fields below. Despite the label, any secrets manager that exposes a compatible REST API works, not only HashiCorp Vault; see Secrets Management. It also belongs to the connection: read-only when reusing an existing connection.
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Login URL | Text | The Vault endpoint Qualytics uses to authenticate (e.g., https://vault.example.com/v1/auth/approle/login). |
|
| Credentials Payload | Text | A JSON body containing the credentials Vault expects (e.g., {"role_id":"...","secret_id":"..."}). |
|
| Token JSONPath | Text | The JSONPath that extracts the client token from Vault's response. Defaults to $.auth.client_token. |
|
| Secret URL | Text | The Vault path where the secret is stored (e.g., https://vault.example.com/v1/secret/data/snowflake). |
|
| Token Header Name | Text | The HTTP header name used to send the token. Defaults to X-Vault-Token. |
|
| Data JSONPath | Text | The JSONPath that extracts the secret payload from Vault's response. Defaults to $.data. |
Enrichment Extraction
Where Qualytics writes the enrichment tables.
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Database | Option | The database Qualytics writes the enrichment tables into. Pick exactly one. | |
| Schema | Option | The schema inside that database where the enrichment tables are created. Make sure the role has write access to it. |
Warning
The account used for an enrichment datastore needs read and write access, while a source datastore needs only read access.
Enrichment Properties
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Name | Text | The name of the new enrichment datastore. | |
| Teams | Option | Select one or more teams to associate with the enrichment datastore. |
Table prefix
Qualytics generates a Prefix from the source datastore's name and adds it to every table it writes, so several source datastores can share one enrichment target without colliding. An information banner at the bottom of the step previews the resulting table names.
Advanced Options
Collapsed by default. Expand it to change how anomalous source records are replicated.
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Remediation Strategy | Choice | Controls whether and how anomalous source tables are replicated to the enrichment datastore. None does not replicate them and is the default, Append adds the anomalous records after each scan, and Overwrite keeps only the records from the latest scan. |
Steps
A Snowflake enrichment datastore can be created from two places: as the second step of creating a source datastore, or on its own from the Enrichment Datastores page. Either way you choose between creating a connection from scratch (New Connection) or reusing a saved one (Existing Connection). The tabs below cover both entry points for each option; each field is described in the Field reference above.
Linking one that already exists
Both entry points also let you pick an enrichment datastore you created earlier instead of creating one. Nothing there is specific to Snowflake, since you only select it from a list, so see Link Enrichment on Datastore Creation or Link Enrichment Datastore for those flows.
Step 1: Open the Enrichment Datastore form, from either entry point:
- While creating a source datastore: click Next at the bottom of the Add Datastore page once the source connection test has passed. The Enrichment Datastore step opens.
- On its own: navigate to the Enrichment Datastores page and click the Add Enrichment Datastore button at the top-right corner. The Enrichment Datastore page opens.
Step 2: Select New Connection next to the Search field.
Step 3: Select Snowflake from the connector grid. Only connectors that can host an enrichment datastore are listed.
Same connector as the source
When you arrive from a Snowflake source datastore, Snowflake comes already selected, with the connection fields already filled in from the source connection. Click the selected card to change it.
Step 4: Fill in the Connection Properties: the Connection Name, Host, Role, and Warehouse, then the Authentication fields for the Type you choose.
Step 5: Optionally, expand Secrets Management to retrieve credentials from a secrets manager.
Step 6: Fill in the Enrichment Extraction fields (Database and Schema) and the Enrichment Properties (Name and Teams).
Step 7: When you arrived from a source datastore, review the Prefix preview at the bottom of the step and, if needed, change the Remediation Strategy under Advanced Options. Both relate to the source datastore being linked, so they do not apply when creating the enrichment datastore on its own.
Step 8: Click Test connection. A success message confirms that the connection has been verified.
Info
The button that completes the step stays disabled until the required fields are filled in and the connection test passes on the current values. If the test fails, see Troubleshooting Common Errors.
Step 9: Complete the step: click Finish when you arrived from a source datastore, which creates both datastores and links them, or Create when creating the enrichment datastore on its own.
Step 10: A success dialog confirms the result. Click Go to your datastore to open the source datastore, or Go to your enrichment datastore when you created it on its own.
This option appears only when at least one saved connection can host an enrichment datastore.
Step 1: Open the Enrichment Datastore form, from either entry point:
- While creating a source datastore: click Next at the bottom of the Add Datastore page once the source connection test has passed. The Enrichment Datastore step opens.
- On its own: navigate to the Enrichment Datastores page and click the Add Enrichment Datastore button at the top-right corner. The Enrichment Datastore page opens.
Step 2: Select Existing Connection next to the Search field.
Step 3: Select the saved Snowflake connection from the grid. The Connection Properties and Secrets Management sections come already filled in and read-only.
Start a new connection from this one
To use the selected connection as a starting point for a brand-new connection instead, click the Duplicate as a new connection button on the selected connection.
Step 4: Fill in the Enrichment Extraction fields (Database and Schema) and the Enrichment Properties (Name and Teams).
Step 5: When you arrived from a source datastore, review the Prefix preview at the bottom of the step and, if needed, change the Remediation Strategy under Advanced Options. Both relate to the source datastore being linked, so they do not apply when creating the enrichment datastore on its own.
Step 6: Click Test connection. A success message confirms that the connection has been verified.
Info
The button that completes the step stays disabled until the required fields are filled in and the connection test passes on the current values. If the test fails, see Troubleshooting Common Errors.
Step 7: Complete the step: click Finish when you arrived from a source datastore, which creates both datastores and links them, or Create when creating the enrichment datastore on its own.
Step 8: A success dialog confirms the result. Click Go to your datastore to open the source datastore, or Go to your enrichment datastore when you created it on its own.
API Payload Examples
This section provides detailed examples of API payloads to guide you through the process of creating and managing datastores using Qualytics API. Each example includes endpoint details, sample payloads, and instructions on how to replace placeholder values with actual data relevant to your setup.
Creating a Source Datastore
This section provides sample payloads for creating a Snowflake datastore. Replace the placeholder values with actual data relevant to your setup.
Endpoint: /api/datastores (post)
{
"name": "your_datastore_name",
"teams": ["Public"],
"database": "snowflake_database",
"schema": "snowflake_schema",
"enrichment_only": false,
"trigger_sync": true,
"connection": {
"name": "your_connection_name",
"type": "snowflake",
"host": "snowflake_host",
"username": "snowflake_username",
"password": "snowflake_password",
"passphrase": "key_passphrase",
"parameters": {
"role": "snowflake_read_role",
"warehouse": "qualytics_wh",
"authentication_type": "KEYPAIR"
}
}
}
Note
If the authentication_type parameter is removed, BASIC authentication will be used by default.
# Step 1: Create a Connection
qualytics connections create \
--type snowflake \
--name "your_connection_name" \
--host ${SNOWFLAKE_HOST} \
--username ${SNOWFLAKE_USER} \
--password ${SNOWFLAKE_PASSWORD} \
--parameters '{"role": "qualytics_role", "warehouse": "qualytics_wh"}'
# Step 2: Create a Source Datastore
qualytics datastores create \
--name "your_datastore_name" \
--connection-name "your_connection_name" \
--database your_database \
--schema your_schema
Creating an Enrichment Datastore
This section provides sample payloads for creating an enrichment datastore. Replace the placeholder values with actual data relevant to your setup.
Endpoint: /api/datastores (post)
{
"name": "your_datastore_name",
"teams": ["Public"],
"database": "snowflake_database",
"schema": "snowflake_schema",
"enrichment_only": true,
"connection": {
"name": "your_connection_name",
"type": "snowflake",
"host": "snowflake_host",
"username": "snowflake_username",
"password": "snowflake_password",
"parameters": {
"role": "snowflake_readwrite_role",
"warehouse": "qualytics_wh"
}
}
}
# Step 1: Create a Connection
qualytics connections create \
--type snowflake \
--name "your_connection_name" \
--host ${SNOWFLAKE_HOST} \
--username ${SNOWFLAKE_USER} \
--password ${SNOWFLAKE_PASSWORD} \
--parameters '{"role": "qualytics_role", "warehouse": "qualytics_wh"}'
# Step 2: Create an Enrichment Datastore
qualytics datastores create \
--name "your_datastore_name" \
--connection-name "your_connection_name" \
--database your_database \
--schema your_enrichment_schema \
--enrichment-only
Link an Enrichment Datastore to a Source Datastore
Use the provided endpoint to link an enrichment datastore to a source datastore:
Endpoint Details: /api/datastores/{datastore-id}/enrichment/{enrichment-id} (patch)