Live CDC replication

Migrate DynamoDB to
PlanetScale

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

Start migrating free →Read the docs

DynamoDB Streams CDC

Hook into DynamoDB Streams for real-time change data capture. Every Put, Update, and Delete event flows to the SQL target with low latency.

Streams-native

Schema Inference

DynamoDB tables have no fixed schema per item. NoSQLSync samples items across partitions to infer the union schema, detecting all attributes and types.

Smart inference

GSI & LSI Support

Global and Local Secondary Indexes are analyzed and mapped to SQL indexes. Partition keys become primary keys; sort keys become composite keys.

Index mapping

Type Mapping

DynamoDB's S/N/B/BOOL/L/M/NULL types auto-map to SQL: String → TEXT, Number → NUMERIC, Binary → BYTEA, Lists → JSONB, Maps → JSONB.

Full type coverage

Throughput Management

Configurable RCU/WCU limits prevent source throttling. Pause and resume migration to stay within provisioned capacity.

RCU-aware

Zero Downtime Cutover

Streams CDC keeps SQL current while DynamoDB stays authoritative. Check the record counts, then cut over on your own schedule.

Safe cutover
How it works

Three steps to PlanetScale

1
Connect your DynamoDB
Paste your DynamoDB 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 DynamoDB types to PlanetScale 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: DynamoDBPlanetScale

PlanetScale speaks the MySQL wire protocol. Connect it as a MySQL target using your PlanetScale connection string — every MySQL type mapping below applies unchanged.

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

How do you handle sparse DynamoDB items?

NoSQLSync infers a union schema. Attributes present in only some items become nullable columns. You control whether missing values become NULL or a default value.

What about DynamoDB's eventual consistency?

CDC via DynamoDB Streams guarantees ordered, at-least-once delivery. NoSQLSync deduplicates events so a replayed Stream record never produces a duplicate row in the target.

Can I filter specific DynamoDB items?

Yes. Filter by partition key prefix, sort key range, or with a scan filter expression. Only matching items are migrated.

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 DynamoDB

See the full DynamoDB migration guide →

DynamoDBPostgreSQLDynamoDBMySQLDynamoDBBigQueryDynamoDBSnowflakeDynamoDBRedshiftDynamoDBClickHouseDynamoDBSQL ServerDynamoDBMariaDBDynamoDBSupabaseDynamoDBNeon

Ready to migrate to PlanetScale?

Connect your DynamoDB and PlanetScale instances. No credit card required.

Start free migration →View pricing