Amazon dynamodb Dynamodb按照无sql设计查询所有记录
我知道用dynamodb编写查询,但我还是新手。现在是一个项目,而不是 除了简单地创建一个带有分区键和排序键的表之外,我还设计了 表的无sql数据模型数据结构。因此,我实施了 列出/添加/更新/删除dynamodb查询 我的问题是如何查询所有记录,例如查询所有产品。对于我的应用程序的管理面板,我需要为每种类型的实体显示一种实体类型的所有记录 我知道查询所有记录基本上都是在以前的 然而,我张贴这个问题,这样做没有扫描操作;如何考虑适当/完整的nosql设计。具体地说,我之所以这样做是因为我目前正在使用分区键的静态值 我遵循了单表设计(在任何情况下,建议大多数设计良好的应用程序只使用一个表)。作为此链接的一部分,建议在此链接中对排序键使用静态值,该值将成为(反向查找)索引的主键。例如,允许查询所有“产品” 我的申请,将有“类别”。它还将创建“调查”,每个调查都属于一个类别。对于管理面板,我需要显示所有类别和所有调查 我目前所做的:Amazon dynamodb Dynamodb按照无sql设计查询所有记录,amazon-dynamodb,dynamodb-queries,Amazon Dynamodb,Dynamodb Queries,我知道用dynamodb编写查询,但我还是新手。现在是一个项目,而不是 除了简单地创建一个带有分区键和排序键的表之外,我还设计了 表的无sql数据模型数据结构。因此,我实施了 列出/添加/更新/删除dynamodb查询 我的问题是如何查询所有记录,例如查询所有产品。对于我的应用程序的管理面板,我需要为每种类型的实体显示一种实体类型的所有记录 我知道查询所有记录基本上都是在以前的 然而,我张贴这个问题,这样做没有扫描操作;如何考虑适当/完整的nosql设计。具体地说,我之所以这样做是因为我目前正在
一) 表格设计:
表:tbl_调查
分区键:tbl_pk_surv
排序键:tbl_sk_surv
一个“数据”属性:数据属性 我用tbl_sk_surv作为分区键,data_attr作为Sortkey创建了一个GSI 二) 例如,对于类别,类别记录如下所示:
tbl|u pk|u surv | tbl|u sk|u surv |数据|属性|类别|名称|状态
Cat-1VqNAF3Vi1 |管理类| 1565673999 | Cat1 | 1
Cat-QUTQHQwd42 |行政类| 1565950613 | Cat2 | 1
我正在用“ADMIN_CATEGORY”作为GSI哈希键(tbl_sk_surv)的值查询GSI
请让我知道如何才能做到这一点。一般来说,请提供有关nosql数据建模的指导
我遵循了以下nosql设计文档更新: 通过进一步的搜索,我发现下面的问题与我的问题相似。但我的要求更具体,因为我使用的是GSI。无论哪种方式,请引导:
您的设计看起来只是正确的 据我所知
- 单桌设计适合您
- 您可以将category和survey都作为hash_键的值
- GSI将允许您根据类型(类别或调查)进行查询
如果你能详细列出你所有的用例和数据,它将使你能够更好地回答同样的问题你的设计看起来只是正确的 据我所知
- 单桌设计适合您
- 您可以将category和survey都作为hash_键的值
- GSI将允许您根据类型(类别或调查)进行查询
如果你能详细列出你的所有用例和数据,它将能够更好地回答同样的问题。我想,到今天,从你的问题开始5个月,你已经是一名dynamodb建模专家了:)我将为未来的访问者提供我的观点,以寻找相同的问题,并作为我自己的练习 1-第一步(当然,在获得所有用例之后)是设计ERM,这将非常有用。 2-列出您的所有访问模式,在对数据库建模之前,首先了解您希望从数据中获得什么是非常重要的。 3-然后你可以决定你的物品和GSI的PK和SK(如果需要的话) 您可以说SK是您的GSI PK,并按如下方式查询GSI:
GSI的“PK=ADMIN_CATEGORY”(PK=ADMIN_CATEGORY)我想今天,从你的问题开始5个月后,你已经是dynamodb建模专家了:)我将为未来的访问者提供我的观点,以寻求相同的问题,并作为我自己的练习 1-第一步(当然,在获得所有用例之后)是设计ERM,这将非常有用。 2-列出您的所有访问模式,在对数据库建模之前,首先了解您希望从数据中获得什么是非常重要的。 3-然后你可以决定你的物品和GSI的PK和SK(如果需要的话) 您可以说SK是您的GSI PK,并按如下方式查询GSI: 来自GSI的“PK=管理类别”