我正在为某些专业人士开发一个自由职业平台。我考虑利用 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
查询”过滤器来避免