在复杂条件下扫描桌子的最佳做法是什么?

时间:2016-10-19 22:49:04

标签: amazon-dynamodb

我将有一个包含数据的表格(~1 十亿项目)。表项具有N个属性。其中一个属性是 UserID 。它将是一个分区键。我必须支持N个属性的数据过滤。但过滤只能在UserID中进行。

我们的想法是使用复合键创建全局二级索引: UserIdAttribute1 UserIdAttribute2 UserIdAttribute1Attribute2 。因此我们可以运行"查询"在特定的指数上。请注意我们必须组合使用" UserIdAttribute1Attribute2",因为 Attribute1 Attribute2 两者可以在过滤器中选择。

有两个问题:

  1. 您可以为每个表定义最多5个全局二级索引。
  2. 您可以将最多20个属性投影到表的所有本地和全局二级索引中。
  3. 因此,没有足够的索引来覆盖所有过滤器(即使我只有4个属性)并且我想将/只需要的属性放入/索引 - 所有索引的20个属性 < / strong>还不够。

    请分享任何想法如何排序过滤问题。

    谢谢你的任何想法。

1 个答案:

答案 0 :(得分:0)

通过将Lambda附加到DynamoDB表的流并将创建,更新和删除写入RDS / Redshift,我将在RDS或Redshift中维护表的最终一致的物化视图。 RDS / Redshift启用任意索引创建和查找。