Sf
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
_changestable - 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_idpipelines/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
| Item | Requirement |
|---|---|
| Account | Any Snowflake edition, any cloud region |
| Role | A dedicated role with USAGE on the warehouse and database |
| Schema privileges | CREATE TABLE, CREATE STAGE, INSERT, UPDATE |
| Authentication | Key-pair (recommended) or OAuth |
| Network policy | Allow Synchronoid egress IPs for your region |
| Warehouse | Any 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
VARIANTand 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 →Related docs
Keep reading
Connect Snowflake to Synchronoid
Synchronoid is in private beta. Tell us about your data and we will get you a workspace.