DynamoOps
Operations and insights

Importing data

Load JSON, CSV or Excel files into any table through a three-step wizard with preview, per-column type mapping, renaming, batch sizing and live progress.

Supported files

FormatRules
JSONAn array of objects (a single object is treated as one row). Columns are the union of keys across the first 200 rows. Nested objects and arrays are kept as maps and lists.
CSVComma-separated, UTF-8, first line as headers, double-quote quoting with doubled quotes for escaping. Blank lines are skipped.
Excel (.xlsx, .xls)Row 1 as headers. Numbers and booleans are preserved and formula cells use their computed result. Multi-sheet workbooks show a sheet picker. Parsed by the embedded backend; files up to 100 MB.
Plain JSON, not DynamoDB JSON
Typed attribute maps such as {"S": "value"} are not interpreted; they would be imported as nested maps. Export from DynamoOps produces plain JSON that imports back cleanly.

Step 1 — Choose a file

Click ⬆ Import. Drop a file onto the zone or browse for it. A chip confirms the file name with the detected row and column counts. Choose the Target table, which defaults to the open table, pick a Sheet if the workbook has several, then click Next →.

Step 1: the file chip shows the detected rows and columns.

Step 2 — Map columns

A preview of the first five rows sits above the mapping grid, which has one line per column.

Step 2: preview, per-column mapping and write options.
Includecheckbox
Untick to leave the column out of the import.
Type in DynamoDBselect
Auto, String, Number, Boolean, JSON (parse) or Skip. DynamoOps pre-selects Number or Boolean when more than 90% of the sampled values look like one.
Rename totext
Write the column under a different attribute name. Use this to map file headers onto the table’s key attribute names.

Below the grid, three options control the write:

  • Skip empty / null values (default on) drops empty, null and undefined attributes from each item.
  • Batch size per request (default 500, range 25 to 5000) is how many rows are sent to the backend per request; the backend splits them into DynamoDB batches of 25.
  • Overwrite existing items reflects the write semantics: every row is written with a Put, so an item with the same key is replaced.

Click Import. The footer confirms “N rows → table”.

How values are cast

TypeCast rule
Autotrue/false become booleans, null becomes null, numeric text becomes a number, JSON objects and arrays are parsed, everything else stays a string
StringKept as text
NumberConverted with Number(); non-numeric text is kept as a string
Booleantrue, 1 and yes become true; anything else false
JSON (parse)Parsed as JSON; invalid JSON is kept as the raw string

Step 3 — Progress and errors

Step 3: a finished import with no errors.
  1. Watch the progress bar

    The label counts “Importing… x / N” and the stats show Imported, Total and Errors.

  2. Review errors

    Up to ten batch errors are listed, for example a validation error when a row lacks the partition key.

  3. Finish

    Abort stops before the next chunk; Done closes the wizard and refreshes the grid.

Keys are required in the data
Every row must contain the table’s partition key (and sort key) under the exact attribute names and types. Use Rename to for the names and the type selector for the types. A row that violates this fails its DynamoDB batch of 25 and the whole chunk is reported as errors. Unprocessed items from throttling are counted but not retried; re-import the failed rows after the burst subsides.

Consumed write capacity is reported to Cost Analytics.

Example files

[
  { "userId": "usr_001", "email": "alice@example.com", "active": true, "plan": { "name": "pro", "seats": 3 } },
  { "userId": "usr_002", "email": "bob@example.com",   "active": false }
]

Related