使用 DynamoDB 记录用户活动

kap*_*els 6 amazon-web-services amazon-dynamodb

我正在为某些专业人士开发一个自由职业平台。我正在考虑使用 AWS DynamoDB 来记录用户活动(例如发布工作、编辑工作等)。

字段将是

user_id | ip_address | timestamp | data

我将查询 DynamoDB 以获取以下信息:

  1. 某些用户活动的日志。
  2. 某一天执行的所有用户活动的日志。

并且信息必须被保存和访问很长一段时间(永远?)。

对于这种用例,DynamoDB 有多好?

yad*_*taf 8

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` 的过滤器来避免