DynamoDB 建模多个查询元素
DynamoDB Modeling Multiple Query Elements
背景: 我有关系数据库背景,并且从来没有为 DynamoDB 构建任何东西,而不仅仅是用于快速写入和很少读取。我正在尝试通过将我的一个帮助台应用程序从 MySQL 迁移到 DynamoDB 来学习 DynamoDB 模式。
从数据存储的角度来看,该应用程序相当简单。用户提交请求,该请求生成 1 个或多个票证。
设置: 我有屏幕,人们可以在其中看到初始请求和该请求的工单和搜索视图,这些视图允许支持查询工单的一系列属性(用户的姓氏) ,工单状态,工单用例,phone 用户数量,用户部门)。 SQL 数据库中的这种设计非常简单,但在 Dynamo 中,我真的被抛出了一个关于如何构建 primary/sort 键和二级索引(如果需要)的循环。
我创建了一个请求集合和一个票证集合。各个请求都有属于它的票证 ID 数组。票证项目有一个存储请求 ID 的属性,以便我可以那样搜索。但我一直挂断的是,如何在不进行全面扫描的情况下结合搜索 ticket/request 的属性?
我阅读了有关复合键的信息,并可能创建了一个类似于以下内容的复合排序键:## 这样我就可以直接搜索每个字段而无需知道主键(工单 ID)。
问题:如何设计需要查询大量不同属性值而不依赖主键的发电机collections/tables?
这通常是DynamoDB不擅长的,不是说绝对做不到。 DynamoDB 的优势和速度来自于众所周知的访问模式和为这些模式设计架构。一般来说,如果您不知道您的用户将搜索什么,或者有许多不同的可能查询,最好查看 RDS 或本机 SQL 数据库之类的东西。也就是说,解决这个问题的一个可能方向是为每个字段创建多个列表并复制数据。这一切都可以在同一个 table.
中完成
背景: 我有关系数据库背景,并且从来没有为 DynamoDB 构建任何东西,而不仅仅是用于快速写入和很少读取。我正在尝试通过将我的一个帮助台应用程序从 MySQL 迁移到 DynamoDB 来学习 DynamoDB 模式。
从数据存储的角度来看,该应用程序相当简单。用户提交请求,该请求生成 1 个或多个票证。
设置: 我有屏幕,人们可以在其中看到初始请求和该请求的工单和搜索视图,这些视图允许支持查询工单的一系列属性(用户的姓氏) ,工单状态,工单用例,phone 用户数量,用户部门)。 SQL 数据库中的这种设计非常简单,但在 Dynamo 中,我真的被抛出了一个关于如何构建 primary/sort 键和二级索引(如果需要)的循环。
我创建了一个请求集合和一个票证集合。各个请求都有属于它的票证 ID 数组。票证项目有一个存储请求 ID 的属性,以便我可以那样搜索。但我一直挂断的是,如何在不进行全面扫描的情况下结合搜索 ticket/request 的属性?
我阅读了有关复合键的信息,并可能创建了一个类似于以下内容的复合排序键:## 这样我就可以直接搜索每个字段而无需知道主键(工单 ID)。
问题:如何设计需要查询大量不同属性值而不依赖主键的发电机collections/tables?
这通常是DynamoDB不擅长的,不是说绝对做不到。 DynamoDB 的优势和速度来自于众所周知的访问模式和为这些模式设计架构。一般来说,如果您不知道您的用户将搜索什么,或者有许多不同的可能查询,最好查看 RDS 或本机 SQL 数据库之类的东西。也就是说,解决这个问题的一个可能方向是为每个字段创建多个列表并复制数据。这一切都可以在同一个 table.
中完成