Snowflake
Write data back to a Snowflake table. Use SignalSmith to materialize model results, audience memberships, or enriched data directly into Snowflake.
Prerequisites
- A Snowflake account
- A Snowflake user with CREATE TABLE and INSERT/UPDATE/DELETE privileges on the target schema
- A Snowflake warehouse for compute
Authentication
Snowflake supports two authentication methods:
Username & Password
- Enter your Snowflake Username and Password
Key Pair
- Generate an RSA key pair for Snowflake authentication
- Assign the public key to your Snowflake user:
ALTER USER my_user SET RSA_PUBLIC_KEY='...' - Paste the Private Key (PEM format) in SignalSmith
- Optionally enter the Passphrase if the private key is encrypted
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| Account | Text | Yes | Snowflake account identifier (e.g., xy12345.us-east-1) |
| Warehouse | Text | Yes | Snowflake compute warehouse (e.g., COMPUTE_WH) |
| Database | Text | Yes | Snowflake database name |
| Schema | Text | No | Default schema (optional) |
| Role | Text | No | Snowflake role (optional) |
Target Settings
| Field | Type | Required | Description |
|---|---|---|---|
| Target Schema | Text | Yes | The schema to write to (e.g., PUBLIC) |
| Target Table | Text | Yes | The target table name |
Supported Operations
Sync Modes: Upsert, Insert, Update, Mirror
Audience Sync Modes: Add, Remove, Mirror, Upsert
Features
- Field Mapping: Yes
- Schema Introspection: Yes — SignalSmith reads column metadata from Snowflake’s INFORMATION_SCHEMA
How It Works
SignalSmith uses staging tables and SQL MERGE statements for efficient data writing:
- Data is loaded into a temporary staging table
- A MERGE statement is executed against the target table
- The staging table is dropped after the sync completes
For Mirror mode, an additional DELETE is performed for records in the target that are not in the staging table.
Troubleshooting
Connection failed
Verify the account identifier includes the region (e.g., xy12345.us-east-1). Check that the warehouse is not suspended.
Insufficient privileges
The Snowflake user needs USAGE on the warehouse and database, and CREATE TABLE / INSERT / UPDATE / DELETE privileges on the target schema.
Table does not exist
SignalSmith creates the target table automatically on the first sync if it does not exist. Ensure the user has CREATE TABLE privileges.
Warehouse suspended
If the warehouse is set to auto-suspend, it may need to resume before queries can run. This can add latency to the first sync run.