Можно ли вставить набор объектов в DynamoDB за один раз - Java - PullRequest
0 голосов
/ 11 сентября 2018

Я могу вставить объект (аннотированный @DynamoDBTable) в DynamoDB, используя следующий код

@Autowired
private SdnInformationRepository sdnInformationRepository;

SdnInformation inf = new SdnInformation();
inf.setFirstName("firstname");
inf.setLastName("lastname");
sdnInformationRepository.save(inf);

Вот мой репозиторий

public interface SdnInformationRepository extends 
CrudRepository<SdnInformation, String> { 
}

и моя модель

@DynamoDBTable(tableName = "SdnList")
public class SdnInformation {

@DynamoDBHashKey(attributeName = "Id")
@DynamoDBAutoGeneratedKey
private String id;

private String firstName;

private String lastName;

public String getFirstName() {
    return firstName;
}

public void setFirstName(String firstName) {
    this.firstName = firstName;
}

public String getLastName() {
    return lastName;
}

public void setLastName(String lastName) {
    this.lastName = lastName;
}

}

Здесь все отлично работает.Я хочу знать, можно ли сразу вставить объекты List / Set из SdnInformation?Если я вставлю огромное количество таких объектов по отдельности, это займет слишком много времени.Поэтому я хочу что-то вроде

Set<SdnInformation> listToInsert = new HashSet<SdnInformation>();
... some code to fill my set with thousands of objects ...
sdnInformationRepository.save(listToInsert);

1 Ответ

0 голосов
/ 12 сентября 2018

DynamoDB не поддерживает вставку нескольких элементов одновременно.Пакетирование нескольких запросов (до 25) возможно, но они по-прежнему считаются отдельными запросами в «Динамо» (т. Е. Некоторые могут преуспеть, а некоторые потерпеть неудачу).

Конечно, на высоком уровне, мапперможет притвориться, что он вставляет список элементов, но под ним все еще будут отдельные операции.

Обновление (на основе комментария)

Если вы хотите получить скоростьВы можете распараллелить вставки.Пока у вас есть доступная емкость записи, вы можете значительно улучшить скорость.Но это может стать дорогим быстро.И есть ограничение 1000 вставок / сек на раздел.

...