Дизайн таблицы DynamoDB: один атрибут с вложенным json или несколькими атрибутами - PullRequest
1 голос
/ 11 мая 2019

Читая документацию AWS DynamoDB, я увидел, что он не рекомендует создавать несколько таблиц.Но когда мы помещаем данные в формате json в таблицы DynamoDB, следует ли создавать атрибут со многими уровнями (например, 10) вложенного содержимого json или несколькими атрибутами с меньшим количеством уровней?Я думаю, что это в каждом конкретном случае.Но то, что я хотел бы знать, это общее правило при разработке таблиц DynamoDB.После прочтения документации AWS я все еще в замешательстве, поэтому я задаю вопрос здесь.Спасибо!

1 Ответ

0 голосов
/ 11 мая 2019

Несмотря на то, что нет никаких стандартных правил, лучший подход, который я вижу в качестве руководства, - это просмотреть;

  • Функции DynamoDB (ключи, индексы)
  • Пределы
  • Модель ценообразования

до проектирования таблиц. В вашем случае, компромисс в наличии атрибутов таков:

  • Возможность индексирования для эффективных запросов (Лучшая производительность, исключающая сканирование, Низкое использование IOPS, что приводит к снижению затрат).
  • Проецируйте только необходимые атрибуты.
  • Но ограничивает гибкость в моделировании.

С другой стороны, наличие вложенных атрибутов JSON позволяет;

  • Больше атрибутов и гибкости в структуре.
  • Больше к структуре документа, переходящей от природы Key-Value.
  • Но ограничивает эффективные запросы глубоко вложенных атрибутов.
  • Более дорого с точки зрения IOPS, поскольку весь вложенный атрибут должен быть извлечен даже для чтения вложенного атрибута (что также увеличивает стоимость).

Поскольку также возможно иметь ключи, примитивные атрибуты и вложенные атрибуты в одной таблице, было бы лучше использовать их в комбинации, в каждом конкретном случае скорее придерживаясь одной модели.

...