【问题标题】:DynamoDB Modeling Multiple Query ElementsDynamoDB 建模多个查询元素
【发布时间】:2021-11-22 18:03:36
【问题描述】:

背景:我有关系数据库背景,从来没有为 DynamoDB 构建过任何不只是用于快速写入和很少读取的东西。我正在尝试通过将我的一个帮助台应用程序从 MySQL 迁移到 DynamoDB 来学习 DynamoDB 模式。

从数据存储的角度来看,该应用程序是一个相当简单的应用程序。用户提交请求,该请求会生成 1 个或多个票证。

设置:我有一些屏幕,人们可以在其中看到初始请求以及该请求的票证和搜索视图,允许支持查询票证的一堆属性(用户的姓氏、票证的状态、工单用例、用户电话号码、用户部门)。 SQL 数据库中的这种设计非常简单,但在 Dynamo 中,我真的被抛出一个关于如何构造主/排序键和二级索引的循环(如果需要)。

我为请求创建了一个集合,为工单创建了一个集合。各个请求有一组属于它的票证 ID。票项具有存储请求 ID 的属性,以便我可以通过这种方式进行搜索。但让我感到困惑的是,如何在不进行全面扫描的情况下结合对工单/请求属性的搜索?

我阅读了有关复合键的信息,并且可能创建了一个类似于:## 的复合排序键,这样我就可以直接搜索每个字段,而无需知道主键(票证 ID)。

问题:如何设计需要查询大量不同属性值而不依赖主键的 dynamo 集合/表?

【问题讨论】:

    标签: amazon-dynamodb


    【解决方案1】:

    这通常是 DynamoDB 不擅长的事情,并不是说绝对做不到。 DynamoDB 的优势和速度来自于拥有众所周知的访问模式并为这些模式设计架构。一般来说,如果您不知道您的用户将搜索什么,或者有许多不同的可能查询,最好查看 RDS 或本机 SQL DB 之类的东西。话虽如此,解决此问题的一个可能方向是为每个字段创建多个列表并复制数据。这都可以在同一张表中完成。

    【讨论】:

    • 要查询的字段太多了,我需要尝试在圆孔中安装一个方形钉。我想我对 Dynamo 的哪些用例现在会更好有了更好的了解。
    猜你喜欢
    • 1970-01-01
    • 2011-03-16
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    • 2014-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多