Замедление происходит из-за того, что каждая вставка должна выполнить полный обход HTTP в динамо.
10 тыс. Элементов за 5 минут - около 30 мс на элемент, что ожидается от HTTP-отключения.
Вы можете использовать пакетное обновление, документы здесь
В документах у вас есть BatchWriteItemInput
, что занимает map[string][]*WriteRequest
.
type BatchWriteItemInput struct {
// ... trimmed
RequestItems map[string][]*WriteRequest
...
}
Модель WriteRequest
немного странная, поскольку она используется как для операций Delete
, так и Put
, просто игнорируйте поле DeleteRequest *DeleteRequest
.
Важно отметить, что существуют некоторые ограничения для пакетной операции:
- Вы не можете изменить один и тот же элемент более одного раза в пакетном запросе
- В партии должно быть более 2 и менее 25 наименований
- Каждый элемент не может быть больше 400 КБ, а общая партия не может быть больше 16 МБ.