Я пытаюсь вставить данные файла CSV в DynamodB, но я могу записать только 1537 записей в мою таблицу DynamodB.
Кодирование
try {
S3EventNotificationRecord record = s3event.getRecords().get(0);
String srcBucket = record.getS3().getBucket().getName();
String srcKey = record.getS3().getObject().getKey().replace('+', ' ');
srcKey = URLDecoder.decode(srcKey, "UTF-8");
AmazonS3 s3Client = new AmazonS3Client();
S3Object s3Object = s3Client.getObject(new GetObjectRequest(srcBucket, srcKey));
statusReport.setFileSize(s3Object.getObjectMetadata().getContentLength());
BufferedReader br = new BufferedReader(new InputStreamReader(s3Object.getObjectContent()));
CSVReader reader = new CSVReader(br);
AmazonDynamoDB dynamoDBClient = new AmazonDynamoDBClient();
dynamoDBClient.setRegion(AWS_REGION);
DynamoDB dynamoDB = new DynamoDB(dynamoDBClient);
TableWriteItems energyDataTableWriteItems = new TableWriteItems(DYNAMO_TABLE_NAME);
List<Item> itemList = new ArrayList<Item>();
String[] nextLine;
while ((nextLine = reader.readNext()) != null) {
Item newItem = helper.parseIt(nextLine);
itemList.add(newItem);
}
for (List<Item> partition : Lists.partition(itemList, 25)) {
energyDataTableWriteItems.withItemsToPut(partition);
BatchWriteItemOutcome outcome = dynamoDB.batchWriteItem(energyDataTableWriteItems);
do {
Map<String, List<WriteRequest>> unprocessedItems = outcome.getUnprocessedItems();
if (outcome.getUnprocessedItems().size() > 0) {
logger.log("Retrieving the unprocessed " + String.valueOf(outcome.getUnprocessedItems().size())
+ " items.");
outcome = dynamoDB.batchWriteItemUnprocessed(unprocessedItems);
}
} while (outcome.getUnprocessedItems().size() > 0);*/
}
logger.log("Load finish in " + String.valueOf(System.currentTimeMillis() - startTime) + "ms");
reader.close();
br.close();
s3Object.close();
statusReport.setStatus(true);
} catch (Exception ex) {
logger.log(ex.getMessage());
}
statusReport.setExecutiongTime(System.currentTimeMillis() - startTime);
return statusReport;
}
Могу я узнать причину, по которой он так себя ведет. Я пробовал использовать более 5 таблиц, но получаю тот же результат.