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