BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Amazon提升了DynamoDB NoSQL数据库对JSON的支持

| 作者 Richard Seroter 关注 5 他的粉丝 ,译者 潘瑾瑜 关注 0 他的粉丝 发布于 2014年11月3日. 估计阅读时间: 5 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

上周,Amazon Web Service团队对他们的DynamoDB NoSQL数据库服务进行了更新。这次更新改善了DynamoDB对JSON的支持,提高了DynamoDB的可扩展性,并且增加了免费用量。开发者现在不仅拥有25GB的免费存储空间,还可以使用AWS SDK对较大的JSON文档进行存储、索引、查询和更新。

AWS发表了一篇博文,表明了他们对DynamoDB的想法——传统上是一个面向键-值的NoSQL存储,现在具有了类似MongoDB的,面向文档存储的功能。

AWS SDK包含了这种新型面向文档支持的实现,并且在实现中利用到了一些DynamoDB的新数据类型。对文档的支持(目前可使用的有:Java.NETRubySDK,以及基于浏览器的JavaScript SDK的一个扩展)简化了一些操作,如将JSON数据或者本地语言对象映射成DynamoDB原生数据类型,以及支持基于文档结构的查询。

通过这次更新,DynamoDB已经是一个完整的面向文档的存储。通过使用AWS SDK,开发者可以容易地将JSON文档存储在DynamoDB表中,并保留原文档的复杂结构和可能的嵌套形状。通过构建一层非常薄的转化层,新的数据类型也可以用于存储其他结构化的格式,如HTML或者XML

不同语言的AWS SDK实现这种新能力的方式是不一样的。应该注意的是,AWS只使用JSON作为一个传输协议,并不会将数据本身存储为JSON文档Java SDK支持直接将JSON格式的字符串加载成一条DynamoDB数据库记录,而.NET SDK要求开发者使用(更新过的)对象模型来构建一个文档。除了为对象模型提供Number、String和Binary数据类型,AWS还引入了新的面向文档的数据类型:List和Map。List是一个“有序的集合,类似于一个JSON数组”。Map是一个“无序的、名字-值对的集合,类似于一个JSON对象”。

一篇博文中,AWS CTO Werner Vogels追溯了DynamoDB的历史,并承认缺乏JSON的支持对开发者所产生的影响。

DynamoDB从一开始就支持存储JSON文档,但是除了存储和获取这两个操作之外再要进行其他的文档操作是非常困难的。开发者无法直接访问一个JSON文档中深度嵌套的属性,而缺少深度嵌套属性的可见性将剥夺开发者使用DynamoDB一些特殊能力的机会。

迄今为止,若想要存储和查询JSON,开发者有两个选择:a)快速开发的法子是将无法识别的JSON数据块直接插入DynamoDB中;或者b)JSON对象分解成属性,而这要求额外的编程工作和一些事先的考虑。

DynamoDB新提供的JSON能力不仅可用于存储文档,也可用于查询文档。尽管用户可以通过AWS UI控制台查看JSON文档,但开发者更感兴趣的是通过SDK获取及更新整个或部分文档的能力。AWS将文档大小的限制从64KB扩大到400KB,并且放松了比例的限制,用户在单一操作中对“capacity units”的量不仅可以做翻倍或者减半的操作,还可以做其他比例的变更操作。Amazon也增加了DyamoDB可免费使用的容量:相比过去100MB存储空间和10个读capacity units,DynamoDB用户现在可以免费获得25GB的存储空间和25个读/写capacity units。根据AWS的说明,这已足够用于“运行一个支持15,000位用户的手机游戏,或者运行一个日展现500,000次的广告技术平台”。

开发者对JSON友好的应用服务的需求在不断地增加,这次AWS的更新很可能是一个响应。如GigaOm所报道的,这是一个从成熟的服务(如MongoDB)以及Google和Microsoft新提供的服务手中夺取势头的机会。也许是对这些正在解决大规模问题的NoSQL产品进行了仔细调研,Vogels宣称“现在,开发者不必在优化了扩展性和优化了灵活性的数据存储之间进行选择了。”

查看英文原文:Amazon Boosts JSON Support in DynamoDB NoSQL Database


感谢杨赛对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT