Skip to content
adapters.io

MySQL to Snowflake replication that loads MySQL data into Snowflake on a schedule

The MySQL to Snowflake replication from Adapters loads MySQL tables into Snowflake on an incremental schedule, mapping MySQL types to Snowflake types and merging on the primary key so analysts query production data in the warehouse without a read replica or a hand-built pipeline. Field mapping takes about a minute and no code is required.

No credit card required.

Field mapping auto-plugged · tap a port to rewire

5 sample records ready

Last updated August 2026

What running MySQL to Snowflake by hand costs you

  • Analysts querying the production MySQL replica slow down the application at exactly the wrong moment, usually month end.
  • Hand-rolled load scripts re-import the same rows after a retry and every revenue number quietly doubles.
  • MySQL DATETIME columns carry no timezone, so reports land hours off once the data sits next to UTC warehouse tables.

The field mapping, out of the box

These cables are pre-wired when you pick the pair. Rewire any of them, or add your own, in the same visual data mapping tool you use for every adapter.

Input / MYSQL

orders.id
ORDERS.ID
customers.email
CUSTOMERS.EMAIL
customers.full_name
CUSTOMERS.NAME
orders.total_amount
ORDERS.TOTAL_USD
orders.updated_at
ORDERS.CREATED_AT_UTC
orders.status
ORDERS.STATUS

Transforms included

Incremental runs use a MySQL updated_at watermark with a short lookback so late edits are caught; DECIMAL keeps its precision as Snowflake NUMBER, TINYINT(1) becomes BOOLEAN, unsigned BIGINT widens so ids survive, DATETIME and TIMESTAMP normalize to TIMESTAMP_TZ in UTC, JSON columns land as VARIANT so nested payloads stay queryable, identifiers fold to Snowflake uppercase, and loads MERGE on the primary key so a replayed batch updates instead of duplicating.

How it goes live

Three steps, minutes end to end, covered by flat data integration pricing from $49 a month.

STEP 01

Pick the pair

Connect MySQL and Snowflake with scoped credentials. About a minute each.

STEP 02

Confirm the mapping

The cables above are pre-wired. Adjust any field, preview the transform on sample records, done.

STEP 03

Schedule the sync

Hourly down to every minute, with retries, alerting, and a full log on every run.

Prefer to understand the moving parts first? Our long-form guide to replicating MySQL to Snowflake covers the field-by-field detail, the failure cases, and what changes at volume.

Try it in the live demo Preloads MYSQL → SNOWFLAKE with sample records

MySQL to Snowflake sync: common questions

How do I replicate MySQL to Snowflake?

Backfill each table once from a read replica, then keep it current with incremental loads. Pick the change mechanism first: a reliable updated-at watermark is simple and sufficient for most tables, while binlog CDC catches hard deletes and rows updated without touching the timestamp. Land changes in a staging table and MERGE into the target on the primary key.

What is the MySQL to Snowflake data type mapping?

INT and BIGINT become NUMBER(38,0), DECIMAL becomes NUMBER with the same precision and scale, VARCHAR and TEXT become VARCHAR, and BLOB becomes BINARY. The ones to decide by hand are TINYINT(1), which MySQL uses for booleans and which should become BOOLEAN, unsigned BIGINT, which needs NUMBER(20,0) to hold its full range, DATETIME, which becomes TIMESTAMP_NTZ, TIMESTAMP, which becomes TIMESTAMP_TZ, and JSON, which becomes VARIANT.

Do you need CDC to sync MySQL to Snowflake?

Only if deletes matter or your rows change without updating a timestamp. A watermark on updated_at is simpler to run, has no binlog retention to manage, and covers most reporting tables. Choose CDC when the warehouse copy has to match the source exactly, including rows that were removed.

How do you avoid duplicate rows in Snowflake?

Never INSERT straight into the target. Load each batch into a staging table, deduplicate within the batch by primary key keeping the latest version, then MERGE into the target. That makes the whole load idempotent, so a retried or replayed run produces the same table rather than a second copy of every row.

How does the MySQL to Snowflake sync work?

The MySQL to Snowflake replication from Adapters loads MySQL tables into Snowflake on an incremental schedule, mapping MySQL types to Snowflake types and merging on the primary key so analysts query production data in the warehouse without a read replica or a hand-built pipeline. Field mapping takes about a minute and no code is required.

Is there a prebuilt MySQL connector for Snowflake?

Yes. This MySQL to Snowflake connector ships prebuilt: the field mapping is wired the moment you pick the pair, transforms are included, and the first sync can run within minutes. No code or engineering sprint required.

How much does the MySQL Snowflake integration cost?

Pricing is flat and monthly: Starter at $49, Growth at $149, Scale at $399. Every plan includes this pair, visual field mapping, and per-record logs. There are no per-task or per-row fees, so the bill stays the same as volume grows.

How often can Adapters sync MySQL to Snowflake?

Hourly on Starter, every 5 minutes on Growth, and down to every minute on Scale. Failed records retry automatically with backoff, and alerting plus a full per-record log come standard on every run.

Do I need to write code to connect MySQL and Snowflake?

No. Fields are auto-mapped the moment you pick the pair, and you can rewire any mapping visually before the first sync. Incremental runs use a MySQL updated_at watermark with a short lookback so late edits are caught; DECIMAL keeps its precision as Snowflake NUMBER, TINYINT(1) becomes BOOLEAN, unsigned BIGINT widens so ids survive, DATETIME and TIMESTAMP normalize to TIMESTAMP_TZ in UTC, JSON columns land as VARIANT so nested payloads stay queryable, identifiers fold to Snowflake uppercase, and loads MERGE on the primary key so a replayed batch updates instead of duplicating.

More pairs from the API connector library

stripe quickbooks integration shopify netsuite integration salesforce hubspot integration airtable google sheets sync postgres to snowflake sync shopify quickbooks integration salesforce netsuite integration paypal quickbooks integration square quickbooks integration stripe netsuite integration hubspot quickbooks integration quickbooks to xero migration shopify xero integration salesforce to snowflake integration square netsuite integration hubspot xero integration salesforce to bigquery integration postgres to bigquery netsuite to snowflake integration quickbooks to bigquery integration stripe to snowflake integration shopify to snowflake integration quickbooks to snowflake integration hubspot to snowflake integration netsuite to bigquery integration stripe to bigquery integration shopify to bigquery integration paypal to snowflake integration square to snowflake integration square to bigquery integration netsuite to postgres integration salesforce to postgres integration xero to snowflake integration hubspot to bigquery integration xero to bigquery integration paypal to bigquery integration stripe to postgres integration snowflake to bigquery migration shopify to postgres integration hubspot to postgres integration bigquery to snowflake migration quickbooks to postgres integration xero to postgres integration square to postgres integration paypal to postgres integration snowflake to postgres mysql to postgres migration redshift to snowflake migration mysql to bigquery sql server to snowflake sql server to postgresql migration

Browse the full api connector library, or request a pair you do not see.

MySQL and Snowflake, finally in agreement

Map the pair once and let it sync on schedule. Flat price from $49 a month, no per-task fees.

Try the live demo

No credit card required.