【问题标题】:DynamoDB Support for JSON DocumentsDynamoDB 对 JSON 文档的支持
【发布时间】:2014-11-02 08:44:36
【问题描述】:

AWS DynamoDB 最近发布了对 JSON 文档的支持:http://aws.amazon.com/blogs/aws/dynamodb-update-json-and-more/

问题:

1) 如果我直接向服务发出请求,我该如何使用它?我是否只是将 M 值设置为整个 json 对象?

2) JSON 文档中可以包含索引吗? DynamoDB 能解决这个问题吗?

【问题讨论】:

    标签: json amazon-web-services amazon amazon-dynamodb


    【解决方案1】:

    正如您在问题中包含的链接中所述,对 JSON 的支持内置于许多 AWS 开发工具包中,而不是完全在 DynamoDB 中实现。例如,使用 DynamoDB 的新 MapList 类型,JSON 结构以可预测的方式映射到 DynamoDB 类型和结构。所以,不,您不会为整个 JSON 对象设置 M 值(除非这是您想要的最终结构)。

    索引继续使用标准访问模式可用,例如here

    您需要使用其中一个 SDK 或提供您自己的服务层来将 JSON 文档映射到 DynamoDB 项目。

    目前(2014 年 11 月),适用于 JavaScript 的 AWS-SDK(包括 NodeJS)没有对 JSON 数据的内置支持。但是,它可以通过 AWS-Labs 项目here 获得。您将在 that 代码中看到文档客户端代码附加到事件,以便可以格式化所有数据(从 JSON 到本机 DynamoDB):

    request.on("extractData", f.formatOutput);
    

    其中f 是他们的DynamoDBFormatter 的一个实例。

    【讨论】:

    • 不幸的是我不相信这篇文章很清楚。它仅引用了少数 SDK,但实际上并未引用 JSON 支持的实现方式。如果您使用不同的 SDK,这根本没有帮助。不幸的是,我使用 Node,因此我猜这不受支持。您能否提供 JSON 文档的示例以及 SDK 创建的对 DynamoDB 服务的相应请求?我相信它应该是 "Item": { "key": { "S": "keyValStr" }, "document": "M": { "attr": "val", "subObj": {} "subArray: [1] }
    • JavaScript SDK 添加了对 JSON 文档的支持:aws.amazon.com/releasenotes/SDK/JavaScript/1691866671551861
    • 太棒了,AWS-Labs 中的代码向我展示了如何通过转换为 AWS DynamoDb 格式来支持 JSON。我看到您在上面提到的发布说明说明 JSON 支持,但我在任何参考文档中都没有看到它。您能否提供代码的 sn-p 以使用此功能?他们只是说您可以做 AWS 实验室项目所做但没有内置支持的事情吗?
    • 我的印象是,labs 项目代表了官方 SDK 中的内容。只是还没有完成。其他 SDK 显然是先完成的。
    【解决方案2】:

    awslabs 项目看起来很有前途且功能齐全,但目前尚未发布到 npm(2014 年 12 月)。

    node-dynamodb

    看起来真不错,希望我早点找到它。

    之前我写了一个更简单的 JSON => DynamoDb 转换模块。

    dynamodb-marshaler

    【讨论】:

      猜你喜欢
      • 2017-06-20
      • 2017-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多