Что будет оптимальнее и стандартнее? Дублируете данные в таблицах DynamoDB или делаете несколько запросов API для их получения? - PullRequest
0 голосов
/ 07 августа 2020

Мне нужно немного понять, как оценить следующий дизайн базы данных DynamoDB.

У меня есть две таблицы, TableA и TableB, которые имеют одинаковый ключ раздела и две изолированные службы ServiceA и ServiceB. ServiceA обрабатывает запросы CRUD API для TableA и ServiceB для TableB.

Когда выполняется запрос GET, ServiceA требует не только возврата данных из TableA, но и одного столбца из TableB. Для этого у меня есть два варианта:

  1. Дублирование данных: сохранить этот единственный столбец TableB в TableA ( ключ раздела тот же ).
  • Плюсы: только один запрос DynamoDB API, и я смогу вернуть данные.
  • Минусы: используйте потоки, чтобы данные всегда обновлялись в таблицах.
  • Плюсы: потоки DynamoDB будут обновлять данные асинхронно в бэкэнде.
Сделайте два запроса API как для TableA, так и для TableB.
  • Плюсы: нет дублирующих данных и накладных расходов на их обслуживание.
  • Минусы: всего два запроса DynamoDB API (1-1) для каждой таблицы, комбинирование и возврат.

Какой путь более стандартный и оптимальный? Я не могу объединить обе таблицы, поэтому должен ли я дублировать этот единственный столбец или мне следует взять на себя накладные расходы по выполнению двух запросов API.

...