Import and export

Import

Load JSON, CSV, or TSV into a table through a five-step wizard that maps fields, validates types, and writes in batches.

The import wizard loads JSON, CSV, or TSV into the table a query tab is bound to. Use it to seed a table, to restore a DynamoDB JSON export, or to move a spreadsheet of records into DynamoDB without writing a script.

The import wizard on its Data Source step with the editor holding a JSON template

To start, click Import in the query tab’s action bar. The wizard is a modal with a step rail under the title, Data Source, Mapping, Validate, Settings, and Import, and a footer holding Back plus one primary action per step.

See it in action

1. Choose the data

Drop a file onto the drop zone, or type or paste into the editor beside it. The editor is seeded with a template derived from the table’s schema, so a fresh JSON buffer already carries the key attributes.

The format switch is a tab strip in the editor header, with JSON, CSV, and TSV, plus a Format action that tidies the buffer.

Warning: Switching format replaces the editor contents with that format’s template, discarding what was there. Switch format before you paste, not after.

2. Map the fields

Dynomatic auto-matches each incoming field to a destination attribute. For each row you can search the destination list, create a new attribute, choose the DynamoDB datatype, or switch the field off with its ignore toggle. Key and required attributes carry chips, a sample value shows what the field actually holds, and a progress counter gates Next until every required field is mapped.

The Mapping step with incoming fields matched to destination attributes

If Dynomatic only knows the table’s key fields, because no query or scan has run against it yet, the step offers Scan for fields. That runs one schema capture with the default settings and pulls the observed top-level attributes and their dominant types into the destination list.

The datatype you choose drives the wire format, so a value that should land as a number rather than a string is settled here.

3. Validate

Every cell is checked for coercion against its target type. The results grid is virtualized, sortable, and searchable, with failing rows and columns highlighted. Map and List values show as a one-line JSON summary, with the full JSON on hover.

An error panel under the grid lists each failing row with its field and message, showing the first 25 and then a count of the rest. Next stays inert, with the reason spelled out, until the errors are resolved.

4. Set how it writes

Choose how a collision with an existing item is handled, overwrite or merge, and pick the merge strategy when you choose merge. Then set concurrency, which is 1 to 100 parallel writes, and batch size, which is 1 to 25 items per batch. A summary chip restates the item count, the field count, and the destination table.

The primary action is Start import.

5. Watch it run

The Import step starts on arrival. A progress bar tracks written and failed items against the total, over Written, Errors, and Remaining tiles. A live Errors table lists every rejected batch with its batch id, item count, first and last key, message, and error code, showing the first 100 rows and then a hint to copy the rest.

Stop import halts the run. Batches already dispatched still finish, the counts are kept, and the summary reads “Import stopped” with Back, which returns you to Settings to adjust and start again, and Done.

When the run ends the summary reads “Import complete” or “Import finished with errors” over Written and Failed tiles, with Copy errors putting the full error list on the clipboard as JSON.

Note: While an import is running the dialog cannot be dismissed. There is no close button, Escape and outside clicks are ignored, and Back and Close are inert with the reason shown. When the wizard is idle it closes like any other dialog.

Round-tripping an export

A DynamoDB JSON export imports back without loss. The wizard decides once per file whether the file is DynamoDB JSON, meaning every value in every row is a typed attribute whose value has that tag’s shape, and then writes the rows as they are, including a sparse row that lacks some attributes. A file that mixes shapes is treated as plain throughout. A marshalled numeric key is validated by its literal text, so large and high-precision numbers pass unchanged.

See Export for writing the file in the first place.

Things to know

  • Template variables in the data resolve against the pinned environment tier. See Template variables.
  • A JSON import of a vector attribute round-trips as a DynamoDB list.
  • A CSV cell holding a JSON array lands as a string unless you change that field’s datatype on the Mapping step.
  • Import does not check vector dimension counts. DynamoDB rejects a mismatch through the normal error path.
  • On the free plan an import is clamped to the first 25 rows, with an upgrade banner on the Validate step.

Last updated on