DynamoDB Import and Export

Import and export move DynamoDB data between tables and Amazon S3 without any custom code. Export writes a copy of your table into S3 files. Import reads files from S3 and builds a new table. Neither feature consumes the read or write capacity of your tables.

The Moving Day Picture

A family moving to a new home packs belongings into labeled boxes, ships the boxes, and unpacks them at the destination. Export packs your table into boxes (files in S3). Import unpacks boxes into a fresh table. The old table keeps running while the packing happens.

Export to Amazon S3

Export creates a snapshot of table data in an S3 bucket. Two requirements apply: the table needs point-in-time recovery turned on, and the bucket must allow DynamoDB to write files.

Export Options

  • Full export: copies the complete table as of a chosen second within the recovery window.
  • Incremental export: copies only the changes made between two points in time.

Export Formats

FormatDescription
DynamoDB JSONJSON lines that include DynamoDB type markers such as S and N
Amazon IonA typed text and binary format from Amazon
aws dynamodb export-table-to-point-in-time \
  --table-arn arn:aws:dynamodb:ap-south-1:123456789012:table/Orders \
  --s3-bucket my-export-bucket \
  --export-format DYNAMODB_JSON

Import from Amazon S3

Import loads data from S3 into a new table. DynamoDB creates the table as part of the import. The feature does not write into an existing table.

Supported Source Formats

  • CSV
  • DynamoDB JSON
  • Amazon Ion

Source files may be uncompressed, GZIP, or ZSTD compressed. During setup, you define the key schema and capacity mode of the new table. You can also add secondary indexes at creation time.

aws dynamodb import-table \
  --s3-bucket-source S3Bucket=my-import-bucket,S3KeyPrefix=students/ \
  --input-format CSV \
  --table-creation-parameters file://table-definition.json

Diagram: Export and Import Flow

EXPORT
DynamoDB table (PITR on) ──► S3 bucket (files) ──► Athena, Glue, analytics tools

IMPORT
S3 bucket (CSV / JSON / Ion) ──► New DynamoDB table

Export vs Backup

FeatureBackup and RestoreExport to S3
ResultRestores into a DynamoDB tableGives open-format files
Main useDisaster recoveryAnalytics, archiving, sharing
Read capacity usedNoneNone
Readable outside DynamoDBNoYes

Common Uses

  • Analytics: Query exported files with Amazon Athena using SQL.
  • Archiving: Keep old data cheaply in S3 for compliance needs.
  • Migration: Move data between AWS accounts or Regions.
  • Seed data: Load test data from a CSV file into a development table.
  • Data sharing: Give another team a copy without granting table access.

Planning a Large Export or Import

Large tables take time to export or import, because DynamoDB processes the data in the background. Start the job during a quiet period, and track its status on the Exports or Imports page in the console. An export job reports the number of items and the size of the files it wrote. An import job reports processed rows, imported items, and errors. Compare these counts with your source data to confirm that nothing went missing.

Plan the S3 layout before you begin. Use a clear prefix for each table and date, such as orders/2026-06-01/. A tidy layout helps analysts find the right files and keeps old exports easy to delete under a lifecycle rule.

Practical Tips

  • Check that CSV headers match your key attribute names before import.
  • Review the import error log in CloudWatch Logs when rows fail.
  • Encrypt the destination bucket and restrict its access.
  • Schedule regular exports for long-term archives.
  • Remember that S3 storage and import charges apply. Check current AWS pricing.

Summary

  • Export copies table data into S3 files and needs point-in-time recovery.
  • Import builds a new table from CSV, DynamoDB JSON, or Ion files.
  • Neither feature uses table read or write capacity.
  • Exports suit analytics and archives, while backups suit recovery.