Snowflake
This section explains how to create, configure, and test a Snowflake data source in DataDios, including the different ways you can authenticate.
Steps to Create and Test a Snowflake Data Source
Step 1: Create a Data Source
- Navigate to the Data Sources tab in DataDios
- Click + CREATE DS
- From the list of available data source types, select Snowflake Database
Step 2: Choose an Authentication Method
Snowflake supports three ways to connect. Select one from the Auth Type dropdown — the connection form updates to show only the fields that method needs.
Password Authentication
The default method. Sign in with a standard Snowflake user and password.
- Username: Snowflake login name
- Password: Password for that user
Best for quick setup and manual exploration.
Azure OAuth
Authenticate through an Azure AD (Entra ID) application instead of a Snowflake password. DataDios requests a token from Azure and uses it to open the Snowflake session, refreshing it automatically when it expires.
- Tenant ID: Azure directory (tenant) ID
- Client ID: Application (client) ID of the registered Azure app
- Client Secret: Client secret generated for that app
- Scope: OAuth scope configured for the Snowflake integration
No Snowflake username or password is required with this method.
Key Pair Authentication
Authenticate with an RSA private key instead of a password — the recommended option for automated and scheduled workloads.
- Username: Snowflake login name the key is registered against
- PEM File: Upload your private key file (
.pem,.p8, or.key) - Passphrase: (Optional) Leave blank if the key is not encrypted
The matching public key must already be assigned to the Snowflake user (ALTER USER … SET RSA_PUBLIC_KEY = …) before testing the connection.
Step 3: Fill Common Connection Details
These fields apply to every authentication method:
-
Group: (Optional) Grouping for data sources
-
Account: Snowflake account identifier (e.g.,
xy12345orxy12345.us-east-1) -
Warehouse: Virtual warehouse used to run queries (default:
COMPUTE_WH) — required -
Database: (Optional) Restrict sync to specific databases; accepts a comma-separated list, or
*for all -
Schema: (Optional) Restrict sync to specific schemas; accepts a comma-separated list, or
*for all -
Object Types: (Optional) Limit which object types are fetched (e.g.,
BASE TABLE,VIEW,MATERIALIZED VIEW) -
Schedule Sync: Configure for metadata timeline synchronization (see Metadata Timeline)
-
Sync Batch Size: (Optional) Number of objects fetched per batch during sync
- JSON Structure
{
"group": "",
"auth_type": "password",
"username": "sf-admin",
"password": "Admin@123",
"account": "xy12345.us-east-1",
"warehouse": "COMPUTE_WH",
"database": "QUICKSTART",
"schema": "PUBLIC",
"object_types": ""
}
Step 4: Test Connection
- After entering the details, click Test Connection
- Ensure the connection is validated successfully
If the test fails because of the warehouse, run SHOW WAREHOUSES; in the Snowflake UI to confirm the name is correct and that your user can access it.
Step 5: Save Data Source
- If the test succeeds, click Create to save the data source
- You will be redirected to the Datasource Listing Page, where the Snowflake data source will appear
Step 6: Explore Data Source Items
-
Expand the Snowflake data source to view all items (databases, schemas, tables, views, etc.)
-
To view metadata about any item:
- Click the item name
- Click the three stacked lines icon to open the Object Metadata pop-up
-
You can also explore additional features in the Metadata Explorer:
-
Object Data
- View the actual data present in the selected table or view
-
Graphs
- Visualize dependencies and relationships across databases and schemas
-
Data Quality Rules
- Review applied data quality rules and scores
- For detailed information, refer to the Data Quality documentation
-
Connection Parameters
| Parameter | Required | Default | Description |
|---|---|---|---|
auth_type | Yes | password | Authentication method: password, azure_oauth, or key_pair |
account | Yes | — | Snowflake account identifier |
warehouse | Yes | COMPUTE_WH | Virtual warehouse used to run queries |
username | Yes (password, key pair) | — | Snowflake login name |
password | Yes (password) | — | Snowflake user password |
tenant_id | Yes (Azure OAuth) | — | Azure directory (tenant) ID |
client_id | Yes (Azure OAuth) | — | Azure application (client) ID |
client_secret | Yes (Azure OAuth) | — | Azure application client secret |
scope | Yes (Azure OAuth) | — | OAuth scope for the Snowflake integration |
pem_file | Yes (key pair) | — | Private key file upload (.pem, .p8, .key) |
passphrase | No | — | Passphrase for the private key; blank if unencrypted |
group | No | — | Grouping label for data sources |
database | No | — | Comma-separated database filter (* for all) |
schema | No | — | Comma-separated schema filter (* for all) |
object_types | No | — | Comma-separated object type filter (* for all) |
schedule_sync | No | — | Metadata sync frequency |
sync_batch_size | No | — | Objects fetched per batch during sync |
DataDios connects using the Snowflake user's default role, and the built-in SNOWFLAKE database and all INFORMATION_SCHEMA schemas are excluded from listings.
Best Practices
- Prefer Key Pair or Azure OAuth over password authentication for scheduled and automated workloads
- Use Secret Store for passwords and client secrets to avoid hardcoding credentials
- Always Test Connection before saving to ensure configuration is correct
- Scope Database and Schema to limit how much metadata is synced on large accounts
- Verify the Warehouse is running and accessible to the connecting user
For more details on configuring Snowflake with metadata sync, see the Metadata Timeline.