Вопрос: Использование DynamoDB для регистрации активности пользователя


Я разрабатываю фрилансинговую платформу для определенных профессионалов. Я думал об использовании AWS DynamoDB для регистрации активности пользователя (например, размещение задания, редактирование задания и т. Д.).

Поля были бы

user_id | ip_address | timestamp | data

Я бы запросил DynamoDB для получения следующей информации:

  1. Журнал активности определенного пользователя.
  2. Журнал всех действий пользователя, выполняемых в определенный день.

И информация должна быть сохранена и доступна в течение длительного времени (навсегда?).

Насколько хорош был бы DynamoDB для такого рода использования?


5
2017-09-05 13:59


Источник




Ответы:


DynamoDB предназначен для высокопроизводительного поиска. Он внутренне использует SSD-накопитель, так что стоимость хранения DynamoDB может быть немного дороже для хранения данных «навсегда» при переходе на большие объемы.

Это говорит о том, что ваш случай использования идеально подходит для DynamoDB. Если вам нужно только то, что вы сказали, я бы рекомендовал эту схему:

  • hash_key = <user_id>:YYYY-MM-DD
  • range_key = full_ISO_8601_timestamp
  • ip_address
  • data

ISO_8601 всегда хорошая идея, если вам нужно сортировать даты.

Я предлагаю добавить дату в user_id чтобы упростить запросы и сохранить логически сгруппированные элементы, но он будет усложнять более сложные запросы. Этого можно избежать, используя BETWEEN фильтр `` `Query`


7
2017-09-05 14:30