Live CDC replication

Migrate Cosmos DB to
MySQL

Migrate Cosmos DB to MySQL with live CDC replication, automatic schema mapping, and zero downtime. Production-ready in minutes, not weeks.

Start migrating free →Read the docs

Change Feed CDC

Tail the Cosmos DB change feed for inserts and updates in near real time. No Kafka or Debezium to operate — the feed is read directly through the Cosmos SDK.

Native change feed

Real Database & Container Hierarchy

Cosmos DB has genuine databases and containers, unlike some NoSQL sources — NoSQLSync lists your actual databases and containers instead of a single placeholder.

No guesswork

Schema Discovery

Cosmos items within a container can carry different fields. NoSQLSync samples items to build a complete schema covering every observed field.

Union schema

Type Coercion Engine

Cosmos JSON types map cleanly to SQL: string → TEXT, number → INTEGER/DOUBLE, boolean → BOOLEAN, array/object → JSONB.

Auto type mapping

Incremental Sync

Migrate historical data in bulk via cross-partition query, then keep new writes in sync via the change feed. Works with containers of any size.

Bulk + streaming

Honest CDC Scope

The change feed's default mode surfaces inserts and updates, not deletes. Run a fresh full sync to reconcile deletions — stated plainly rather than left undocumented.

No dual-write, no fabricated features
How it works

Three steps to MySQL

1
Connect your Cosmos DB
Paste your Cosmos DB connection string. NoSQLSync detects all collections/tables and samples documents/items to infer the full schema — including nested structures.
2
Review the schema & map columns
Our auto-mapper converts Cosmos DB types to MySQL types. Review and adjust: rename columns, change types, flatten nested structures, or use JSON/JSONB for flexible fields.
3
Launch migration & monitor
Click launch. Watch records flow in real time with throughput charts, latency metrics, and error alerts. Enable live CDC to keep your SQL target in sync until cutover.

Type mapping: Cosmos DB → MySQL

ObjectId / String IDCHAR(36) / VARCHAR(255)Identifier as string-based primary key
StringVARCHAR(n) / TEXT / LONGTEXTConfigurable length limits
Number / IntegerINT / BIGINTNumeric types
Double / DecimalDOUBLE / DECIMALFloating point or fixed precision
Date / TimestampDATETIME / TIMESTAMPDate/time columns
BooleanTINYINT(1)MySQL boolean convention
Array / ListJSONMySQL native JSON type
Object / Map / Nested docJSONFlexible schema fields as JSON
Binary / BytesBLOB / MEDIUMBLOBBinary data support
Null / MissingNULLNullable columns

Frequently asked questions

Does Cosmos DB CDC capture deletes?

Not currently. Cosmos DB's default change feed mode (the one NoSQLSync uses) surfaces inserts and updates only — deletes require a separate "all versions and deletes" mode with continuous backups enabled on the account. Run a fresh full sync to reconcile any deletions in the meantime.

Which Cosmos DB API does this support?

The Core (SQL) API — the native Cosmos document API, using the change feed and cross-partition queries described above. Cosmos DB for MongoDB API is a separate wire-protocol compatibility layer with its own change-stream behavior, and isn't covered by this connector.

Can I migrate only specific containers?

Yes. Choose which database and container to migrate — NoSQLSync lists your real Cosmos databases and containers, not a placeholder. Each container becomes a separate SQL table.

How long does a migration take?

A typical 100 GB dataset migrates in under 2 hours with bulk mode. With CDC enabled, ongoing writes sync in real time. Total time depends on data volume and network throughput.

Is my data secure during migration?

Yes. All data is encrypted in transit (TLS 1.3) and at rest (AES-256). Database credentials use short-lived tokens. Migration workers run in an isolated environment and never store data after the job completes.

Can I roll back if something goes wrong?

Yes. NoSQLSync only reads from your source — it is never modified, and CDC keeps running until you stop it. If you hit a problem after cutover, point your application's connection string back at the source.

Other migration paths from Cosmos DB

See the full Cosmos DB migration guide →

Cosmos DB → PostgreSQLCosmos DB → BigQueryCosmos DB → SnowflakeCosmos DB → RedshiftCosmos DB → ClickHouseCosmos DB → SQL ServerCosmos DB → MariaDBCosmos DB → SupabaseCosmos DB → NeonCosmos DB → PlanetScale

Ready to migrate to MySQL?

Connect your Cosmos DB and MySQL instances. No credit card required.

Start free migration →View pricing