Synchronoid is in private beta. New workspaces open in small batches every few weeks. Join the waitlist →

Snowflake

Load published data into Snowflake or read tables as sources.

Source Destination GA

Overview

What the Snowflake connector does

Use Snowflake as a destination for your published layer, or read existing tables as a source. Synchronoid loads data in batches through a stage, so large loads stay fast and cheap.

Loads are idempotent. Each run writes to a staging table and merges on your key, so replaying a run never creates duplicate rows.

Capabilities

  • Merge loads keyed on your primary key
  • Key-pair and OAuth authentication
  • Schema evolution: new columns are added automatically
  • Change history written to a companion _changes table
  • Table reads with incremental cursors
  • Warehouse size and auto-suspend are left under your control
  • Cost hints in Cost Insights for every load
Configuration

Set it up in minutes

Describe the connection in synchronoid.yaml or in Python. Both produce the same source, and credentials always come from secrets.

synchronoid.yaml
destinations:
  warehouse:
    connector: snowflake
    account: xy12345.eu-central-1
    warehouse: SYNC_WH
    database: ANALYTICS
    schema: PUBLISHED
    user: SYNCHRONOID
    private_key: ${secret:SNOWFLAKE_KEY}
    publish:
      - asset: companies_current
        table: COMPANIES
        merge_key: org_id
pipelines/snowflake.py
import synchronoid as sy

warehouse = sy.Destination(
    connector="snowflake",
    account="xy12345.eu-central-1",
    warehouse="SYNC_WH",
    database="ANALYTICS",
    schema="PUBLISHED",
    user="SYNCHRONOID",
    private_key=sy.Secret("SNOWFLAKE_KEY"),
)

warehouse.publish(companies_current, table="COMPANIES", merge_key="org_id")
Requirements

Permissions and prerequisites

ItemRequirement
AccountAny Snowflake edition, any cloud region
RoleA dedicated role with USAGE on the warehouse and database
Schema privilegesCREATE TABLE, CREATE STAGE, INSERT, UPDATE
AuthenticationKey-pair (recommended) or OAuth
Network policyAllow Synchronoid egress IPs for your region
WarehouseAny size; X-Small is enough for most merges
Tip. Create a dedicated, least-privilege account for Synchronoid. You can then revoke access in one step if you ever need to.
Limitations

Good to know before you start

  • Semi-structured columns are loaded as VARIANT and are not flattened.
  • Secondary keys are not enforced by Snowflake, so uniqueness relies on the merge key.
  • Reading very large tables needs a partition column to run in parallel.

Need something we don’t cover?

Tell us what you are missing. Feedback from beta users decides what we build next, and you can follow progress on the roadmap.

Request a feature →

Connect Snowflake to Synchronoid

Synchronoid is in private beta. Tell us about your data and we will get you a workspace.