【问题标题】:Amazon DynamoDB Json support while querying and scanning查询和扫描时支持 Amazon DynamoDB Json
【发布时间】:2016-06-14 01:19:16
【问题描述】:

在痛苦的一天试图弄清楚我们是否应该使用 DynamoDB 来存储 Json 文档(与 mongo 相比)并阅读了几乎所有的 AWS 文档和在线示例之后,我决定在这里提出我的问题。

我们的是一个 Spring Boot Java 应用程序,我们使用的是 aws-dynamodb sdk 插件。我们的应用程序必须管理数千个 Json 文档并能够根据各种条件进行检索。

例如,假设这是 JSon 文档 -

{ 
"serial":"123123",
"feed":{
      "ABC":{
          "queue": "ABC",
          "active": true
            },
       "XYZ" : {
           "queue":"XYZ",
           "active": false
 }
}

这些是我的问题

  1. 我可以将整个 Json 文档作为字符串属性存储在 Dynamo 表中,并且仍然能够根据 Json 中某些属性的值检索记录吗?如何? 例如,我想获取所有激活了 feed ABC 的项目。

  2. 此解决方案的可扩展性如何?

我知道我可以在 Mongo 中轻松做到这一点,但无法让它在 dynamo 中工作。

【问题讨论】:

    标签: mongodb spring-boot amazon-dynamodb


    【解决方案1】:

    首先,如果您不使用DynamoDBMapper 与 DynamoDB 通信,则应考虑使用它而不是低级 API,因为它提供了更方便的高级抽象。

    现在,回答你的问题:

    • 与其将其存储为字符串,不如考虑使用 Map。有关支持的数据类型的更多信息,请参见 here。至于搜索,有two waysQuery(需要在其中提供所需记录的主键)和Scan。对于您的示例(即“所有激活 ABC 提要的项目”),您必须执行 Scan,因为您不知道主键。
    • DynamoDB 具有高度可扩展性。 Querying 很有效,但看起来你会更多 Scaning。后者有其局限性,因为它实际上会遍历每条记录,但应该适合您,因为您只有几千条记录。不过先进行性能测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多