使用 DynamoDB 记录用户活动

使用 DynamoDB 记录用户活动

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

字段将是

user_id | ip_address | timestamp | data

我将向 DynamoDB 查询以下信息:

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

并且这些信息必须被保存并可长期(永远?)访问。

对于这种用例,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查询”过滤器来避免

相关内容