Snowflake Integration
Connect Qarion to your Snowflake data warehouse to sync metadata, run quality checks, and discover lineage.
Prerequisites
Before connecting, ensure you have a Snowflake account with appropriate access, a service account or user credentials, and that network access and IP whitelisting are configured to allow Qarion to connect.
Creating the Connection
Step 1: Add Source System
Navigate to Source Systems, click Add Source System, and select Snowflake as the platform type.
Step 2: Connection Details
Enter your Snowflake connection information, including the Account Identifier (e.g., xy12345.us-east-1), the Warehouse for running queries (e.g., COMPUTE_WH), the default Database to sync, the optional default Schema, and the Role available to the connection.
Step 3: Authentication
Choose your authentication method. You can use standard Username/Password, configure Key Pair authentication by generating an RSA key and configuring the user in Snowflake, or usage OAuth through your identity provider.
Step 4: Test Connection
Click Test Connection to verify network connectivity, authentication validity, and proper access to the specified warehouse.
Recommended Setup
Create a Dedicated Role
We recommend creating a QARION_ROLE with usage privileges on your warehouse, database, and all schemas, as well as select access to all current and future tables.
Create a Service User
Create a dedicated qarion_service user with the QARION_ROLE and your default warehouse, rather than using a personal account.
Syncing Metadata
Initial Sync
After connecting, click Sync Now and select the databases or schemas to include. The system will then import metadata for all accessible objects.
What Gets Synced
Qarion synchronizes Databases and Schemas you have access to. It imports Tables and Views (including row counts), along with Columns (names, types, nullability, comments) and constraints for Primary and Foreign Keys.
Sync Scheduling
You can configure automatic syncs by setting a Frequency (daily, weekly, custom) and a Time, preferably during off-peak hours. You can also define the Scope as full or incremental.
Quality Checks
Supported Check Types
Qarion supports standard checks like Freshness (checking MAX(updated_at)), Row Count, Uniqueness (checking for duplicates), and Custom SQL validations.
Performance Tips
To optimize performance, use a dedicated warehouse for checks and schedule them during off-peak times. For very large tables, consider using approximate counts or sampling.
Lineage Discovery
Automatic Lineage
Qarion automatically discovers lineage by parsing View definitions (DDL) and analyzing Query history (if access is granted).
Enabling Query History Access
To enable query history analysis, grant IMPORTED PRIVILEGES on the SNOWFLAKE database to your QARION_ROLE.
Troubleshooting
Connection Errors
If you see "Login request timed out", checks network connectivity and your account identifier. for "Invalid credentials", verify your username, password, and role assignment. "Warehouse not found" usually means the role lacks proper usage grants or the warehouse is suspended.
Sync Issues
Missing tables usually result from missing SELECT grants or exclusion from the sync scope. Slow syncs can be improved by using a smaller warehouse for metadata queries, excluding unused schemas, or scheduling during quiet periods.
Best Practices
Security
Use Key Pair authentication for production environments and rotate credentials quarterly. Always monitor connection activity for anomalies.
Performance
Use a dedicated X-Small warehouse with a short auto-suspend setting (e.g., 60 seconds). Schedule heavy sync operations during off-peak hours to avoid contention.
Permissions
Follow the principle of least privilege: grant only SELECT access (no write permissions), limit the role to specific schemas, and use Future Grants to handle new objects automatically.
Related Documentation
- Source Systems — General management
- Quality Checks — Check configuration
- Data Lineage — Lineage features