使用Dynamodb的多租户,已过滤记录列表和热分区

时间:2018-10-25 20:34:17

标签: amazon-dynamodb amazon-dynamodb-index dynamodb-utilization

我正在尝试构建具有简单要求的应用程序:

  • 有几百或几千个租户,90%的负载来自几个租户
  • 他们发布的记录在一段时间后永远不会更新(属于日志)
  • 我需要获取一个租户的最近一千条记录的列表(但将所有记录保留在数据库中)
  • 或具有其唯一UUID的记录,对于大小约为0.5-2 KB的所有记录,将有数百万条记录,

我选择DynamoDb是因为这些是非常基本的要求,很好的无服务器/ lambda集成,我的负载很低而且似乎可以实现。

我现在阅读时,RCU / WCU均匀分布出现了问题。可能的结构如下:

ID (main partition key)
tenant (GSI partition key)
time (GSI sort key)

但是据我了解,WCU的容量是按分区平均分配的,所以当我有 100个WCU 用于GSI时, 1000 个租户曾经发布过任何内容, 10 个最活跃的租户现在每个都使用〜10 WCU,这远远不够,因为每1000个分配100个WCU。所以1个租户在活动或退出时将获得0.1 WCU我的资源很久以前。

然后有一个按ID过滤的问题:如果我要按ID用WCU / RCU 100 1kk 记录存储在数据库中,那么所有索引会收到全部100个RCU / WCU?我发现有关incrementing keys的信息,我认为它适用于UUID。

我是否为此任务选择了错误的数据库?

originally asked on AWS forum

0 个答案:

没有答案