DestinationsWarehousesSnowflake

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

  1. Enter your Snowflake Username and Password

Key Pair

  1. Generate an RSA key pair for Snowflake authentication
  2. Assign the public key to your Snowflake user: ALTER USER my_user SET RSA_PUBLIC_KEY='...'
  3. Paste the Private Key (PEM format) in SignalSmith
  4. Optionally enter the Passphrase if the private key is encrypted

Configuration

FieldTypeRequiredDescription
AccountTextYesSnowflake account identifier (e.g., xy12345.us-east-1)
WarehouseTextYesSnowflake compute warehouse (e.g., COMPUTE_WH)
DatabaseTextYesSnowflake database name
SchemaTextNoDefault schema (optional)
RoleTextNoSnowflake role (optional)

Target Settings

FieldTypeRequiredDescription
Target SchemaTextYesThe schema to write to (e.g., PUBLIC)
Target TableTextYesThe 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:

  1. Data is loaded into a temporary staging table
  2. A MERGE statement is executed against the target table
  3. 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.