NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

  • 2014-11-02
  • 本文字数:1621 字

    阅读完需:约 5 分钟

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

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

AWS SDK__ 包含了这种新型面向文档支持的实现,并且在实现中利用到了一些 __DynamoDB__ 的新数据类型。对文档的支持(目前可使用的有:Java.NETRuby__ 的 __SDK,以及基于浏览器的 __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 )关注我们,并与我们的编辑和其他读者朋友交流。

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2014-11-02 13:222075

评论

发布
暂无评论
发现更多内容

等保测评包过是真的吗?安全吗?

行云管家

等保 等级保护 等保测评

程序员「求生宝典」!AI大发展下的程序员求生指南,干货满满

Openlab_cosmoplat

六步带你体验EDS交换数据全流程

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 7 月 PK 榜

何为低代码?何为高代码?

互联网工科生

软件开发 低代码 JNPF 高代码

大型民营集团如何构建全面预算管理体系?

用友BIP

全面预算

识别led显示屏扫描方式及常见分类指南

Dylan

分类 识别 扫描 LED显示屏

探索学习Hypermesh的有效方法

智造软件

CAE CAE软件 Hypermesh 结构分析软件 学习教程

Debian11系统编译安装Nginx教程。

百度搜索:蓝易云

nginx 云计算 Linux 运维 Debian

DevOps | 产研协同效能提升之评审、审批流、质量卡点

laofo

DevOps 研发效能 持续集成 持续交付

一文了解什么是ISO 9001认证,以及在静态分析和代码质量领域有哪些通过此认证的工具

龙智—DevSecOps解决方案

代码扫描 静态代码分析 代码分析

数智底座成竞争焦点,用友能否再创辉煌?

用友BIP

数智底座

亚马逊云科技与英矽智能合作,利用人工智能技术加速新药研发

Lily

今年值得学习的五种最吸金的编程语言

这我可不懂

Python JavaScript 编程语言

如何通过三级缓存解决 Spring 循环依赖

江南一点雨

Java spring

微信朋友圈广告代理 朋友圈广告 信息流广告加盟

陈老师讲创业

信息流 微信朋友圈广告代理

大模型时代,科技企业入局能源行业需要新范本

TE智库

新能源 特斯联

一文了解JNPF低代码开发平台

高端章鱼哥

低代码 低代码开发 JNPF

AI成为“老师傅”,1份图谱揭露资产故障真因

用友BIP

AI

Debian11系统编译安装PHP教程。

百度搜索:蓝易云

php 云计算 Linux 运维 Debian

IPQ6010 and IPQ6018 what's the difference?|802.11AX WIFI6 Solution|DR6018

wallyslilly

什么是DevOps监控以及如何在组织中实施?

互联网工科生

DevOps 运维工具

灵活预算,畅享高性能!月付香港主机助你建设理想网站!

一只扑棱蛾子

香港主机

补齐OLAP引擎短板!ByteHouse 是如何实现流批一体的?

字节跳动数据平台

数据库 大数据 云原生 数仓 企业号 7 月 PK 榜

浅谈生成式人工智能

天翼云开发者社区

人工智能

为什么强调数智底座能力?

用友BIP

数智底座

用友BIP:助力企业数智化转型,实现数智化国产替代

用友BIP

国产替代

Perforce Helix Core新版本推出资源压力感知功能,提升服务器可用性,助力大规模开发

龙智—DevSecOps解决方案

版本控制 版本控制系统

Amazon提升了DynamoDB NoSQL数据库对JSON的支持_亚马逊云科技_Richard Seroter_InfoQ精选文章