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
| Format | Rules |
|---|---|
| JSON | An 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. |
| CSV | Comma-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. |
{"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 2 — Map columns
A preview of the first five rows sits above the mapping grid, which has one line per column.
- 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
| Type | Cast rule |
|---|---|
| Auto | true/false become booleans, null becomes null, numeric text becomes a number, JSON objects and arrays are parsed, everything else stays a string |
| String | Kept as text |
| Number | Converted with Number(); non-numeric text is kept as a string |
| Boolean | true, 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
- Watch the progress bar
The label counts “Importing… x / N” and the stats show Imported, Total and Errors.
- Review errors
Up to ten batch errors are listed, for example a validation error when a row lacks the partition key.
- Finish
Abort stops before the next chunk; Done closes the wizard and refreshes the grid.
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 }
]