如何在dynamodb中使用低基数分区键

问题描述 投票:0回答:1

我面临以下问题:

我需要建立一个包含许多属性的表:status、user_id、attribute_1、attribute_2 ... attribute_n

我需要执行仅按状态过滤的大量查询,但此属性的基数较低(只有两个值:启用和禁用),但是,为了执行这些查询,我需要使用 satus 作为分区键

第二种选择是使用user_id,但是如果不建立二级索引,我就无法按状态进行查询

解决这个问题的最佳方法是什么?建立低基数的二级索引有何影响?

提前谢谢您。

我考虑过的选项:

  • 建立二级索引

  • 使用扫描(已废弃)

  • 使用低基数分区键

amazon-web-services amazon-dynamodb
1个回答
0
投票

您需要根据您计划拥有的访问模式而不是数据结构来设计表。 DynamoDB 可以轻松存储复杂的数据属性。

如果需要访问特定用户在特定状态下的所有记录,则需要定义键和二级索引来满足此要求。在数据和访问键中包含时间戳字段总是好的,允许您根据时间进行过滤或排序。

因此,根据您的描述,您应该将用户 ID 和时间戳作为表的键以及状态的二级索引。

© www.soinside.com 2019 - 2024. All rights reserved.