Я разрабатываю платформу фриланса для определенных профессионалов. Я думал об использовании AWS DynamoDB для регистрации активности пользователей (например, публикации вакансии, редактирования вакансии и т. Д.).
Поля будут
user_id | ip_address | timestamp | data
Я бы запросил DynamoDB для получения следующей информации:
И информация должна быть сохранена и доступна долгое время (навсегда?).
Насколько хорош DynamoDB для такого случая использования?
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
фильтр `` Запрос`