How do I resolve the error "Exception in thread "main" java.lang.RuntimeException: Read throughput should not be less than 1" when moving data from DynamoDB to S3?

Last updated: 2021-02-26

I created an AWS Data Pipeline to export data from Amazon DynamoDB to Amazon Simple Storage Service (Amazon S3). When I try to export the data, I get the "Exception in thread "main" java.lang.RuntimeException: Read throughput should not be less than 1" error.

Resolution

If you are creating a new pipeline to export data from DynamoDB table, create a pipeline using the Export DynamoDB table to S3 Data Pipeline template. For more information on creating the pipeline, see Part two: Export data from DynamoDB.

If you are using an existing pipeline to export data from DynamoDB to S3, then you must use the latest EMR-DynamoDB connector for the pipeline. You might get the error when you export data with an older version of the EMR-DynamoDB connector. Be sure that the Amazon EMR version for the DynamoDB table is 5.24.0 or later. DynamoDB tables configured for On-Demand Capacity are supported only when using Amazon EMR release version 5.24.0 or later. For more information, see Export Data from DynamoDB - Before you begin

To update your existing pipeline to use the latest EMR-DynamoDB connector and Amazon EMR version 5.24.0 or later, do the following:

1.    Open the AWS Data Pipeline console.

2.    Select the pipeline, and then choose Actions.

3.    Choose Edit.

4.    Choose EmrActivity in the left pane.

5.    Expand the Activities pane, and then find the EmrActivity object.

6.    In the Step field, enter the following JAR name:

s3://dynamodb-dpl-#{myDDBRegion}/emr-ddb-storage-handler/4.11.0/emr-dynamodb-tools-4.11.0-SNAPSHOT-jar-with-dependencies.jar

7.    Choose EmrCluster in the left pane.

8.    Expand the Resources pane.

9.    For Release Label, enter emr-5.24.0 or any of the later EMR release versions.

10.    Choose Save.