AWS DynamoDB установил исключение ограничения размера элемента для размера элемента менее 400 КБ - PullRequest
0 голосов
/ 20 сентября 2019

Предел AWS DynamoDB для вызова API с положенным элементом составляет 400 КБ.Я помещаю словарь Python, размер которого рассчитывается по методу sys.getsizeof().Даже когда метод возвращает значение менее 400000 байт, операция put item вызывает исключение:

An error occurred (ValidationException) when calling the PutItem operation: Item size has exceeded the maximum allowed size'

Есть ли что-то, чего мне не хватает в плане вычисления точного размера?

1 Ответ

0 голосов
/ 20 сентября 2019

Скорее всего, у вас есть один или несколько локальных вторичных индексов :

Объем пространства, используемого элементом индекса, представляет собой сумму следующего:

  • Размер в байтах первичного ключа базовой таблицы (ключ раздела и ключ сортировки)
  • Размер в байтах атрибута ключа индекса
  • Размер в байтах прогнозируемых атрибутов(если есть)
  • 100 байтов служебной информации на элемент индекса

И вместе с этим примечанием от DynamoDB ограничивает :

Для каждого локального вторичного индекса в таблице существует ограничение в 400 КБ на общую сумму следующих элементов:

  • Размер данных элемента в таблице.
  • Размер записи локального вторичного индекса, соответствующей этому элементу, включая его ключевые значения и прогнозируемые атрибуты.

Другими словами, вам нужно дополнить размер каждого элемента, так какPutItem требует достаточно места для элемента, и данных индекса, и тобщая сумма должна составлять менее 400 КБ.

...