使用DynamoDBlogging用户活动

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

领域将是

user_id | ip_address | timestamp | data

我将查询DynamoDB的以下信息:

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

这些信息将不得不被保存和访问很长一段时间(永远?)。

DynamoDB对于这种用例有多好?

DynamoDB旨在用于高性能检索。 它在内部使用SSD驱动器,以便在大量使用时,DynamoDB的存储价格对于“永远”的数据存储可能有点贵。

这就是说,你的用例看起来非常适合DynamoDB。 如果你只需要你说的话,我会推荐这个模式:

  • hash_key = <user_id>:YYYY-MM-DD
  • range_key = full_ISO_8601_timestamp
  • ip_address
  • data

如果您需要对date进行sorting,ISO_8601总是一个好主意。

我build议追加到user_id的date,使查询更容易,保持东西在逻辑上分组,但会复杂化更高级的查询。 这可以通过使用“`Query`的BETWEENfilter来避免