Snowflake Reliability
Connecting Snowflake to ADOC helps you monitor your data infrastructure for performance and reliability. Once connected, ADOC can:
- Monitor the health of your Snowflake schemas and datasets
- Track data quality and freshness across tables
- Generate alerts and diagnostics when reliability issues arise
Prerequisites
Before connecting Snowflake to ADOC, you need to set up Snowflake so ADOC can securely monitor your data for quality, performance, and cost. This setup ensures the right users and roles exist, and that they have the permissions needed to access only what’s necessary.
Users and Roles Overview
Before we start, here’s a quick overview of the users and roles that will be created:
| Role/User | Purpose | 
|---|---|
| AD_DATA_RELIABILITY_ROLE | Read-only role for monitoring your business data | 
| adoc_user | Authenticates into ADOC to analyze schema, freshness, and data quality | 
ADOC needs access to your actual data — not to change it, but to analyze it for things like freshness, schema drift, and data quality. This part sets up a read-only role and user that ADOC uses to scan your data safely.
Who Should Perform These Steps?
- Snowflake Admins: Set up users, roles, and grants
- Cloud/Network Admins: Configure PrivateLink and DNS
- Data Owners: Choose databases and tables to monitor
- ADOC Users: Complete setup in the ADOC UI
CREATE ROLE IF NOT EXISTS AD_DATA_RELIABILITY_ROLE COMMENT = 'Used by ADOC to monitor data health and quality.';GRANT USAGE ON WAREHOUSE <your_warehouse_name> TO ROLE AD_DATA_RELIABILITY_ROLE;GRANT USAGE ON DATABASE <your_database> TO ROLE AD_DATA_RELIABILITY_ROLE;GRANT USAGE ON SCHEMA <your_database>.<your_schema> TO ROLE AD_DATA_RELIABILITY_ROLE;GRANT SELECT ON ALL TABLES IN SCHEMA <your_database>.<your_schema> TO ROLE AD_DATA_RELIABILITY_ROLE;CREATE USER IF NOT EXISTS adoc_user DEFAULT_ROLE = AD_DATA_RELIABILITY_ROLE;ALTER USER adoc_user SET PASSWORD = '<your_secure_password>';GRANT ROLE AD_DATA_RELIABILITY_ROLE TO USER adoc_user;- Create a Custom Role
This role limits access to just what's needed for monitoring. Using a separate role improves security and auditing.
- Allow Warehouse Usage
ADOC runs lightweight queries to check data freshness, row counts, and run profiling jobs. It needs a Snowflake warehouse to do this.
- Grant Access to Your Data
ADOC does not write to your tables — it only needs SELECT access to:
- Profile column statistics
- Validate data quality rules
- Detect schema drift
- Repeat these grants for each database and schema you want ADOC to observe.
- Create and Configure a Monitoring User
This user is used by ADOC to authenticate and run observability jobs. The user only inherits the read-only permissions from the role you just created.
Add Snowflake as a Data Source
Step 1: Start Setup
- In the ADOC UI, click Register from the left menu. 
- Click Add Data Source. 
- Select Snowflake. 
- On the Basic Details page: - Enter a name for this data source.
- (Optional) Add a description.
- Choose your Data Plane or click Setup Data Plane to create one.
- You must enable at least one or both of the following to continue:- Compute Observability
- Data Reliability Monitoring
 
 
- Click Next. 
Step 2: Add Connection Details
- Enter the Snowflake URL (e.g., https://<account>.snowflakecomputing.com) 
- Provide the following Snowflake credentials: - Username
- Password
- Role (e.g., AD_COMPUTE_MONITOR)
 
- Select your Data Plane Engine: - Spark (for external compute)
- Pushdown (for in-Snowflake processing)
 
- (Optional) Enable OAuth: If using OAuth, toggle Enable OAuth and provide: - Authorization Endpoint
- Token Endpoint
- Client ID / Client Secret
- (Optional) Enable PKCE
 
- (Optional for Pushdown): Configure Global Storage. If Pushdown is selected, you can optionally toggle Configure Global Storage in Snowflake and enter: - Stage Name
- Stage File Format (e.g., PARQUET, CSV)
 
- Click Test Connection. If the connection is successful, you'll see a “Connected” message. If not, check the credentials and try again. 
- Click Next. 
Optimizing Data Partitioning
To tune performance for large datasets, you can adjust Snowflake's default parallelism using this environment variable in your ADOC Data Plane configuration:
SNOWFLAKE_PARTITION_SIZE_IN_MB=10| Field | Description | 
|---|---|
| Default Snowflake Partition | 100 MB | 
| ADOC Default | 2000 MB | 
| Use Case | Lower the value to increase parallelism for large datasets | 
Setting Up PrivateLink (Optional)
You can connect Snowflake to ADOC securely over AWS PrivateLink for improved network isolation.
Prerequisites:
- AWS account with necessary permissions
- VPC in us-west-2
- Snowflake account ready
Step 1: Authorize PrivateLink Access
Why Use PrivateLink?
AWS PrivateLink allows your Snowflake data to connect with ADOC services over a secure, private network path—without traversing the public internet. This enhances data security, reduces latency, and improves performance.
Share your AWS account ID with the Acceldata support team. Acceldata will use this ID to authorize your account for PrivateLink connectivity.
Step 2: Create VPC Endpoints
In the AWS Management Console:
- Navigate to VPC.
- In the navigation pane, choose Endpoints.
- Select Create Endpoint.
- Create the following two endpoints:
| Service Name | Endpoint | 
|---|---|
| ADOC Control Plane | com.amazonaws.vpce.us-west-2.vpce-svc-091c001843d33bbaa | 
| Secure Relay | com.amazonaws.vpce.us-west-2.vpce-svc-02830f09899d40f01 | 
Step 3: Configure DNS Using Route 53
In Amazon Route 53:
- Navigate to the Hosted Zones section for your domain.
- Add the following A records:
| Record Name | Type | Value | 
|---|---|---|
| <tenant>.acceldata.app | A | IP address of the ADOC Control Plane VPC endpoint. Replace <tenant> with your tenant subdomain. | 
| dataplane.acceldata.app | A | IP address of the Secure Relay VPC endpoint. Use the IP address assigned to each endpoint in your VPC. | 
Troubleshooting
| Issue | Possible Cause | Resolution | 
|---|---|---|
| Stage creation fails | Role doesn’t have ownership privileges | Log in as ACCOUNTADMIN, check the monitoring database, run SHOW STAGES, and use GRANT OWNERSHIP to fix role access | 
| OAuth fails | User role/namespace not set | Ensure the Snowflake user does not have ACCOUNTADMIN role; re-authenticate via ADOC | 
| Connection test fails | Invalid credentials, missing grants, or wrong role | Double-check Snowflake URL, credentials, warehouse, and role permissions | 
What’s Next
After you’ve connected Snowflake:
- Visit the Reliability tab to see data quality scores and crawler stats
- Schedule profiling jobs and schema checks
- Get real-time alerts for query spikes, delays, or data freshness issues
- Explore Pipelines to analyze data movement and transformation patterns
