Question: How to import data from S3 to DynamoDB?

Answered by Rafal Wilinski
Last updated: October 23rd, 2026
Answer
Use DynamoDB's Import from S3 feature to load CSV, DynamoDB JSON or Amazon Ion into a new table. The managed import does not load into an existing table and does not consume that new table's write capacity.
- Put the input files in S3 under a dedicated prefix. Choose a supported format and compression: uncompressed, GZIP or ZSTD.
- Start an import from the DynamoDB console or
ImportTableAPI, specifying the bucket, prefix, format and target table definition. - Define the new table's primary key and any GSIs, then check that every source item has correctly typed key attributes. LSIs are not supported by this import feature.
- Monitor the import status and error details. Validate item counts and sample records before switching application traffic.
Plain application JSON is not automatically DynamoDB JSON; use the JSON converter to understand the typed representation. Duplicate primary keys can overwrite one another during import, so reconcile the input rather than assuming each source record creates a distinct item.
For an existing table, read and transform the files in an application or ETL job and write them through the normal APIs, with capacity and retry handling. Dynobase's S3 import workflow helps configure supported imports.
Import charges depend on uncompressed source data processed, including records that fail validation. S3 and related charges can also apply.
Source: AWS Import from S3.
Other Common DynamoDB FAQ (with Answers)
- Is DynamoDB serverless?
- Is DynamoDB open source?
- What are the differences between DynamoDB and MySQL?
- Will I be charged for an inactive DynamoDB table?
- Is a DynamoDB table Region-specific?
- Does DynamoDB support atomic updates?
- Can you make a DynamoDB table case-insensitive?
- What are the key differences between DynamoDB and Neo4j?
- Should you make a new DynamoDB client for each request?
- Can DynamoDB have duplicates?
- How do you mock DynamoDB in a test?
- Can I use a UUID as a DynamoDB partition key?
- What is an access pattern in DynamoDB?
- Can DynamoDB have nested objects?
- How do you parallelize requests in DynamoDB?
Dynobase is a Professional GUI Client for DynamoDB
Start your 7-day free trial today
Product Features
DynamoDB Tools
- SSH GUI Client
- Chat With Cloud
- MongoDB GUI Client
- AWS Cost Monitoring
- DynamoDB Query Builder
- DynamoDB Code Examples
- DynamoDB Node.js Queries
- DynamoDB JSON Converter
- DynamoDB UUID Generator
- DynamoDB Local Admin GUI
- DynamoDB Pricing Calculator
- DynamoDB Single-Table Design
- Best DynamoDB GUI Clients
- Dynobase vs DynoTable